Function at 0x1003d0f0
Capabilities:
Parse credit card information

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x408
push esi
push edi
lea edi, [ebp - 0x408]
mov ecx, 0x102
mov eax, 0xcccccccc
rep stosd dword es:[edi], eax
mov eax, dword [0x101f3540]
xor eax, ebp
mov dword [ebp - 4], eax
mov dword [ebp - 0x10], 0
mov eax, dword [ebp + 0x10]
mov dword [ebp - 8], eax
mov ecx, dword [ebp + 0x14]
mov dword [ebp - 0xc], ecx
mov edx, dword [ebp - 0xc]
and edx, 3
je 0x1003d200
mov eax, 1
imul ecx, eax, 0
mov edx, dword [ebp - 0xc]
movsx eax, byte [edx + ecx]
cmp eax, 0x25
jne 0x1003d154
jmp 0x1003d27f
mov ecx, 1
imul edx, ecx, 0
mov eax, dword [ebp - 0xc]
movsx ecx, byte [eax + edx]
test ecx, ecx
jne 0x1003d171
jmp 0x1003ffa2
cmp dword [ebp + 8], 0
je 0x1003d1d6
mov edx, dword [ebp - 8]
sub edx, dword [ebp + 0x10]
mov dword [ebp - 0x24], edx
mov eax, dword [ebp - 0x24]
add eax, 1
cmp eax, 0x200
jl 0x1003d1d6
mov ecx, dword [ebp - 0x10]
add ecx, dword [ebp - 0x24]
mov dword [ebp - 0x10], ecx
mov edx, dword [ebp + 8]
mov dword [ebp - 0x360], edx
mov esi, esp
mov eax, dword [ebp - 0x24]
push eax
mov ecx, dword [ebp + 0xc]
push ecx
mov edx, dword [ebp + 0x10]
push edx
call dword [ebp - 0x360]
add esp, 0xc
cmp esi, esp
call fcn.100f3210
mov dword [ebp + 0x10], eax
mov eax, dword [ebp + 0x10]
mov dword [ebp - 8], eax
cmp dword [ebp - 8], 0
jne 0x1003d1d6
jmp 0x1004000d
mov ecx, 1
imul edx, ecx, 0
mov eax, dword [ebp - 8]
mov ecx, dword [ebp - 0xc]
mov dl, byte [ecx + edx]
mov byte [eax], dl
mov eax, dword [ebp - 8]
add eax, 1
mov dword [ebp - 8], eax
mov ecx, dword [ebp - 0xc]
add ecx, 1
mov dword [ebp - 0xc], ecx
jmp 0x1003d12a
mov edx, dword [ebp - 0xc]
mov eax, dword [edx]
mov dword [ebp - 0x28], eax
mov ecx, dword [ebp - 0x28]
not ecx
and ecx, 0x80808080
mov dword [ebp - 0x2c], ecx
mov edx, dword [ebp - 0x28]
xor edx, 0x25252525
sub edx, 0x1010101
and edx, dword [ebp - 0x2c]
je 0x1003d22f
jmp 0x1003d136
mov eax, dword [ebp - 0x28]
sub eax, 0x1010101
and eax, dword [ebp - 0x2c]
je 0x1003d241
jmp 0x1003d154
cmp dword [ebp + 8], 0
je 0x1003d25e
mov ecx, dword [ebp - 8]
sub ecx, dword [ebp + 0x10]
mov edx, 0x200
sub edx, ecx
cmp edx, 4
jge 0x1003d25e
jmp 0x1003d136
mov eax, dword [ebp - 8]
mov ecx, dword [ebp - 0x28]
mov dword [eax], ecx
mov edx, dword [ebp - 8]
add edx, 4
mov dword [ebp - 8], edx
mov eax, dword [ebp - 0xc]
add eax, 4
mov dword [ebp - 0xc], eax
jmp 0x1003d200
mov ecx, dword [ebp - 0xc]
add ecx, 1
mov dword [ebp - 0xc], ecx
mov dword [ebp - 0x14], 0
mov dword [ebp - 0x18], 0xffffffff
mov dword [ebp - 0x20], 0
mov dword [ebp - 0x1c], 0
mov edx, 1
imul eax, edx, 0
mov ecx, dword [ebp - 0xc]
movsx edx, byte [ecx + eax]
mov dword [ebp - 0x364], edx
mov eax, dword [ebp - 0x364]
sub eax, 0x20
mov dword [ebp - 0x364], eax
cmp dword [ebp - 0x364], 0x3f
ja case.0x1003d2e2.1
mov ecx, dword [ebp - 0x364]
movzx edx, byte [ecx + 0x100400e0]
jmp dword [edx*4 + 0x100400bc]
mov eax, dword [ebp - 0x20]
or eax, 1
mov dword [ebp - 0x20], eax
mov ecx, dword [ebp - 0xc]
add ecx, 1
mov dword [ebp - 0xc], ecx
jmp 0x1003d2a4
mov edx, dword [ebp - 0x20]
or edx, 2
mov dword [ebp - 0x20], edx
mov eax, dword [ebp - 0xc]
add eax, 1
mov dword [ebp - 0xc], eax
jmp 0x1003d2a4
mov ecx, dword [ebp - 0x20]
or ecx, 4
mov dword [ebp - 0x20], ecx
mov edx, dword [ebp - 0xc]
add edx, 1
mov dword [ebp - 0xc], edx
jmp 0x1003d2a4
mov eax, dword [ebp - 0x20]
or eax, 8
mov dword [ebp - 0x20], eax
mov ecx, dword [ebp - 0xc]
add ecx, 1
mov dword [ebp - 0xc], ecx
jmp 0x1003d2a4
mov edx, dword [ebp - 0x20]
or edx, 0x40
mov dword [ebp - 0x20], edx
mov eax, dword [ebp - 0xc]
add eax, 1
mov dword [ebp - 0xc], eax
jmp 0x1003d2a4
mov ecx, dword [ebp - 0x20]
and ecx, 0x100
je 0x1003d387
mov edx, dword [ebp - 0x20]
and edx, 0x800
je 0x1003d379
mov eax, dword [ebp - 0x20]
or eax, 0x1000
mov dword [ebp - 0x20], eax
jmp 0x1003d385
mov ecx, dword [ebp - 0x20]
or ecx, 0x800
mov dword [ebp - 0x20], ecx
jmp 0x1003d393
mov edx, dword [ebp - 0x20]
or edx, 0x100
mov dword [ebp - 0x20], edx
mov eax, dword [ebp - 0xc]
add eax, 1
mov dword [ebp - 0xc], eax
jmp 0x1003d2a4
mov ecx, dword [ebp - 0x20]
or ecx, 0x400
mov dword [ebp - 0x20], ecx
mov edx, dword [ebp - 0xc]
add edx, 1
mov dword [ebp - 0xc], edx
jmp 0x1003d2a4
mov eax, dword [ebp - 0x20]
or eax, 0x10
mov dword [ebp - 0x20], eax
mov ecx, dword [ebp - 0xc]
add ecx, 1
mov dword [ebp - 0xc], ecx
jmp 0x1003d3da
jmp 0x1003d3da
mov edx, 1
imul eax, edx, 0
mov ecx, dword [ebp - 0xc]
movsx edx, byte [ecx + eax]
cmp edx, 0x2a
jne 0x1003d40b
mov eax, dword [ebp + 0x18]
add eax, 4
mov dword [ebp + 0x18], eax
mov ecx, dword [ebp + 0x18]
mov edx, dword [ecx - 4]
mov dword [ebp - 0x14], edx
mov eax, dword [ebp - 0xc]
add eax, 1
mov dword [ebp - 0xc], eax
jmp 0x1003d458
mov ecx, 1
imul edx, ecx, 0
mov eax, dword [ebp - 0xc]
movsx ecx, byte [eax + edx]
cmp ecx, 0x30
jl 0x1003d458
mov edx, 1
imul eax, edx, 0
mov ecx, dword [ebp - 0xc]
movsx edx, byte [ecx + eax]
cmp edx, 0x39
jg 0x1003d458
imul eax, dword [ebp - 0x14], 0xa
mov ecx, 1
imul edx, ecx, 0
mov ecx, dword [ebp - 0xc]
movsx edx, byte [ecx + edx]
lea eax, [eax + edx - 0x30]
mov dword [ebp - 0x14], eax
mov ecx, dword [ebp - 0xc]
add ecx, 1
mov dword [ebp - 0xc], ecx
jmp 0x1003d40b
mov edx, 1
imul eax, edx, 0
mov ecx, dword [ebp - 0xc]
movsx edx, byte [ecx + eax]
cmp edx, 0x2e
jne 0x1003d4fe
mov eax, dword [ebp - 0xc]
add eax, 1
mov dword [ebp - 0xc], eax
mov ecx, 1
imul edx, ecx, 0
mov eax, dword [ebp - 0xc]
movsx ecx, byte [eax + edx]
cmp ecx, 0x2a
jne 0x1003d4aa
mov edx, dword [ebp + 0x18]
add edx, 4
mov dword [ebp + 0x18], edx
mov eax, dword [ebp + 0x18]
mov ecx, dword [eax - 4]
mov dword [ebp - 0x18], ecx
mov edx, dword [ebp - 0xc]
add edx, 1
mov dword [ebp - 0xc], edx
jmp 0x1003d4fe
mov dword [ebp - 0x18], 0
mov eax, 1
imul ecx, eax, 0
mov edx, dword [ebp - 0xc]
movsx eax, byte [edx + ecx]
cmp eax, 0x30
jl 0x1003d4fe
mov ecx, 1
imul edx, ecx, 0
mov eax, dword [ebp - 0xc]
movsx ecx, byte [eax + edx]
cmp ecx, 0x39
jg 0x1003d4fe
imul edx, dword [ebp - 0x18], 0xa
mov eax, 1
imul ecx, eax, 0
mov eax, dword [ebp - 0xc]
movsx ecx, byte [eax + ecx]
lea edx, [edx + ecx - 0x30]
mov dword [ebp - 0x18], edx
mov eax, dword [ebp - 0xc]
add eax, 1
mov dword [ebp - 0xc], eax
jmp 0x1003d4b1
mov ecx, 1
imul edx, ecx, 0
mov eax, dword [ebp - 0xc]
movsx ecx, byte [eax + edx]
mov dword [ebp - 0x368], ecx
mov edx, dword [ebp - 0x368]
sub edx, 0x49
mov dword [ebp - 0x368], edx
cmp dword [ebp - 0x368], 0x31
ja case.0x1003d53c.1
mov eax, dword [ebp - 0x368]
movzx ecx, byte [eax + 0x1004013c]
jmp dword [ecx*4 + 0x10040120]
mov edx, dword [ebp - 0x20]
or edx, 0x200
mov dword [ebp - 0x20], edx
mov eax, dword [ebp - 0xc]
add eax, 1
mov dword [ebp - 0xc], eax
mov ecx, 1
imul edx, ecx, 0
mov eax, dword [ebp - 0xc]
movsx ecx, byte [eax + edx]
cmp ecx, 0x68
jne 0x1003d575
mov edx, dword [ebp - 0xc]
add edx, 1
mov dword [ebp - 0xc], edx
jmp case.0x1003d53c.1
mov eax, dword [ebp - 0x20]
mov dword [ebp - 0x20], eax
mov ecx, dword [ebp - 0xc]
add ecx, 1
mov dword [ebp - 0xc], ecx
mov edx, 1
imul eax, edx, 0
mov ecx, dword [ebp - 0xc]
movsx edx, byte [ecx + eax]
cmp edx, 0x6c
jne 0x1003d5af
mov eax, dword [ebp - 0x20]
or eax, 0x20
mov dword [ebp - 0x20], eax
mov ecx, dword [ebp - 0xc]
add ecx, 1
mov dword [ebp - 0xc], ecx
jmp case.0x1003d53c.1
mov edx, dword [ebp - 0x20]
mov dword [ebp - 0x20], edx
mov eax, dword [ebp - 0xc]
add eax, 1
mov dword [ebp - 0xc], eax
jmp case.0x1003d53c.1
mov ecx, dword [ebp - 0x20]
mov dword [ebp - 0x20], ecx
mov edx, dword [ebp - 0xc]
add edx, 1
mov dword [ebp - 0xc], edx
jmp case.0x1003d53c.1
mov eax, dword [ebp - 0x20]
mov dword [ebp - 0x20], eax
mov ecx, dword [ebp - 0xc]
add ecx, 1
mov dword [ebp - 0xc], ecx
jmp case.0x1003d53c.1
mov edx, 1
shl edx, 0
mov eax, dword [ebp - 0xc]
movsx ecx, byte [eax + edx]
cmp ecx, 0x36
jne 0x1003d628
mov edx, 1
shl edx, 1
mov eax, dword [ebp - 0xc]
movsx ecx, byte [eax + edx]
cmp ecx, 0x34
jne 0x1003d628
mov edx, dword [ebp - 0x20]
or edx, 0x20
mov dword [ebp - 0x20], edx
mov eax, dword [ebp - 0xc]
add eax, 3
mov dword [ebp - 0xc], eax
jmp case.0x1003d53c.1
mov ecx, 1
shl ecx, 0
mov edx, dword [ebp - 0xc]
movsx eax, byte [edx + ecx]
cmp eax, 0x33
jne 0x1003d65a
mov ecx, 1
shl ecx, 1
mov edx, dword [ebp - 0xc]
movsx eax, byte [edx + ecx]
cmp eax, 0x32
jne 0x1003d65a
mov ecx, dword [ebp - 0xc]
add ecx, 3
mov dword [ebp - 0xc], ecx
jmp case.0x1003d53c.1
mov edx, dword [ebp - 0x20]
mov dword [ebp - 0x20], edx
mov eax, dword [ebp - 0xc]
add eax, 1
mov dword [ebp - 0xc], eax
mov ecx, 1
imul edx, ecx, 0
mov eax, dword [ebp - 0xc]
movsx ecx, byte [eax + edx]
mov dword [ebp - 0x36c], ecx
mov edx, dword [ebp - 0x36c]
sub edx, 0x41
mov dword [ebp - 0x36c], edx
cmp dword [ebp - 0x36c], 0x37
ja case.0x1003d6a7.2
mov eax, dword [ebp - 0x36c]
movzx ecx, byte [eax + 0x100401a4]
jmp dword [ecx*4 + 0x10040170]
mov edx, dword [ebp + 0x18]
add edx, 4
mov dword [ebp + 0x18], edx
mov eax, dword [ebp + 0x18]
mov ecx, dword [eax - 4]
mov dword [ebp - 0x258], ecx
cmp dword [ebp - 0x258], 0
jne 0x1003d6d6
mov dword [ebp - 0x258], str.null
cmp dword [ebp - 0x18], 0
jl 0x1003d6e7
mov edx, dword [ebp - 0x18]
mov dword [ebp - 0x370], edx
jmp 0x1003d6f1
mov dword [ebp - 0x370], 0xffffffff
mov eax, dword [ebp - 0x370]
push eax
mov ecx, dword [ebp - 0x258]
push ecx
call fcn.10040a20
add esp, 8
mov dword [ebp - 0x264], eax
mov edx, 1
imul eax, edx, 0
mov dword [ebp - 0x328], eax
cmp dword [ebp - 0x328], 8
jae 0x1003d726
jmp 0x1003d72c
call fcn.100f3f80
nop
mov ecx, dword [ebp - 0x328]
mov byte [ebp + ecx - 0x240], 0
mov edx, 1
imul eax, edx, 0
mov dword [ebp - 0x32c], eax
cmp dword [ebp - 0x32c], 8
jae 0x1003d753
jmp 0x1003d759
call fcn.100f3f80
nop
mov ecx, dword [ebp - 0x32c]
mov byte [ebp + ecx - 0x250], 0
mov dword [ebp - 0x18], 0
mov dword [ebp - 0x290], 0
mov dword [ebp - 0x270], 0
jmp 0x1003f24d
lea edx, [ebp - 0x31]
mov dword [ebp - 0x258], edx
mov eax, dword [ebp + 0x18]
add eax, 4
mov dword [ebp + 0x18], eax
mov ecx, dword [ebp - 0x258]
mov edx, dword [ebp + 0x18]
mov al, byte [edx - 4]
mov byte [ecx], al
mov dword [ebp - 0x264], 1
mov ecx, 1
imul edx, ecx, 0
mov dword [ebp - 0x330], edx
cmp dword [ebp - 0x330], 8
jae 0x1003d7cf
jmp 0x1003d7d5
call fcn.100f3f80
nop
mov eax, dword [ebp - 0x330]
mov byte [ebp + eax - 0x240], 0
mov ecx, 1
imul edx, ecx, 0
mov dword [ebp - 0x334], edx
cmp dword [ebp - 0x334], 8
jae 0x1003d7fc
jmp 0x1003d802
call fcn.100f3f80
nop
mov eax, dword [ebp - 0x334]
mov byte [ebp + eax - 0x250], 0
mov dword [ebp - 0x18], 0
mov dword [ebp - 0x290], 0
mov dword [ebp - 0x270], 0
jmp 0x1003f24d
mov ecx, dword [ebp + 0x18]
add ecx, 4
mov dword [ebp + 0x18], ecx
mov edx, dword [ebp + 0x18]
mov eax, dword [edx - 4]
mov dword [ebp - 0x2a4], eax
mov ecx, dword [ebp - 8]
sub ecx, dword [ebp + 0x10]
add ecx, dword [ebp - 0x10]
mov edx, dword [ebp - 0x2a4]
mov dword [edx], ecx
jmp 0x1003ff94
mov eax, 1
imul ecx, eax, 0
mov edx, dword [ebp - 0xc]
movsx eax, byte [edx + ecx]
cmp eax, 0x41
jne 0x1003d880
mov dword [ebp - 0x374], str.0123456789ABCDEFXP
jmp 0x1003d88a
mov dword [ebp - 0x374], str.0123456789abcdefxp
mov ecx, dword [ebp - 0x374]
mov dword [ebp - 0x25c], ecx
mov edx, dword [ebp + 0x18]
add edx, 8
mov dword [ebp + 0x18], edx
mov eax, dword [ebp + 0x18]
movsd xmm0, qword [eax - 8]
movsd qword [ebp - 0x288], xmm0
cmp dword [ebp - 0x18], 0xffffffff
jne 0x1003d8bc
mov dword [ebp - 0x18], 6
sub esp, 8
movsd xmm0, qword [ebp - 0x288]
movsd qword [esp], xmm0
lea ecx, [ebp - 0x290]
push ecx
lea edx, [ebp - 0x27c]
push edx
call fcn.100408b0
add esp, 0x10
test eax, eax
je 0x1003d8f1
mov eax, dword [ebp - 0x20]
or eax, 0x80
mov dword [ebp - 0x20], eax
lea ecx, [ebp - 0x1f0]
mov dword [ebp - 0x258], ecx
lea edx, [ebp - 0x240]
push edx
mov eax, dword [ebp - 0x20]
push eax
call fcn.10040990
add esp, 8
cmp dword [ebp - 0x290], 0xfffffc01
jne 0x1003d94e
mov ecx, dword [ebp - 0x27c]
or ecx, dword [ebp - 0x278]
je 0x1003d936
mov dword [ebp - 0x378], 0xfffffc02
jmp 0x1003d940
mov dword [ebp - 0x378], 0
mov edx, dword [ebp - 0x378]
mov dword [ebp - 0x290], edx
jmp 0x1003d96c
mov eax, dword [ebp - 0x27c]
mov ecx, dword [ebp - 0x278]
or ecx, 0x100000
mov dword [ebp - 0x27c], eax
mov dword [ebp - 0x278], ecx
mov eax, dword [ebp - 0x27c]
mov edx, dword [ebp - 0x278]
mov cl, 8
call fcn.100f44b0
mov dword [ebp - 0x27c], eax
mov dword [ebp - 0x278], edx
cmp dword [ebp - 0x18], 0xf
jge 0x1003d9bb
mov ecx, dword [ebp - 0x18]
shl ecx, 2
xor eax, eax
mov edx, 0x8000000
call fcn.100f45f0
add eax, dword [ebp - 0x27c]
adc edx, dword [ebp - 0x278]
mov dword [ebp - 0x27c], eax
mov dword [ebp - 0x278], edx
mov edx, 1
imul eax, edx, 0
movsx ecx, byte [ebp + eax - 0x240]
mov byte [ebp + ecx - 0x23f], 0x30
mov edx, 1
imul eax, edx, 0
movsx ecx, byte [ebp + eax - 0x240]
mov byte [ebp + ecx - 0x23e], 0x78
mov edx, 1
imul eax, edx, 0
movsx ecx, byte [ebp + eax - 0x240]
add ecx, 2
mov edx, 1
imul eax, edx, 0
mov byte [ebp + eax - 0x240], cl
mov eax, dword [ebp - 0x27c]
mov edx, dword [ebp - 0x278]
mov cl, 0x3c
call fcn.100f45f0
and eax, 0xf
and edx, 0
push 0
push 1
push edx
push eax
call fcn.100f43b0
mov ecx, dword [ebp - 0x258]
mov edx, dword [ebp - 0x25c]
mov al, byte [edx + eax]
mov byte [ecx], al
mov ecx, dword [ebp - 0x258]
add ecx, 1
mov dword [ebp - 0x258], ecx
mov eax, dword [ebp - 0x27c]
mov edx, dword [ebp - 0x278]
mov cl, 4
call fcn.100f44b0
mov dword [ebp - 0x27c], eax
mov dword [ebp - 0x278], edx
cmp dword [ebp - 0x18], 0
je 0x1003da92
mov edx, dword [ebp - 0x258]
mov al, byte [0x101f3010]
mov byte [edx], al
mov ecx, dword [ebp - 0x258]
add ecx, 1
mov dword [ebp - 0x258], ecx
mov edx, dword [ebp - 0x258]
mov dword [ebp - 0x29c], edx
mov eax, dword [ebp - 0x18]
mov dword [ebp - 0x26c], eax
cmp dword [ebp - 0x26c], 0xd
jbe 0x1003daba
mov dword [ebp - 0x26c], 0xd
mov ecx, dword [ebp - 0x18]
cmp ecx, dword [ebp - 0x26c]
jle 0x1003dad1
mov edx, dword [ebp - 0x18]
sub edx, dword [ebp - 0x26c]
mov dword [ebp - 0x1c], edx
mov dword [ebp - 0x18], 0
mov eax, dword [ebp - 0x26c]
mov dword [ebp - 0x37c], eax
mov ecx, dword [ebp - 0x26c]
sub ecx, 1
mov dword [ebp - 0x26c], ecx
cmp dword [ebp - 0x37c], 0
je 0x1003db64
mov eax, dword [ebp - 0x27c]
mov edx, dword [ebp - 0x278]
mov cl, 0x3c
call fcn.100f45f0
and eax, 0xf
and edx, 0
push 0
push 1
push edx
push eax
call fcn.100f43b0
mov edx, dword [ebp - 0x258]
mov ecx, dword [ebp - 0x25c]
mov al, byte [ecx + eax]
mov byte [edx], al
mov ecx, dword [ebp - 0x258]
add ecx, 1
mov dword [ebp - 0x258], ecx
mov eax, dword [ebp - 0x27c]
mov edx, dword [ebp - 0x278]
mov cl, 4
call fcn.100f44b0
mov dword [ebp - 0x27c], eax
mov dword [ebp - 0x278], edx
jmp 0x1003dad8
mov edx, 1
imul eax, edx, 0x11
mov ecx, 1
shl ecx, 0
mov edx, dword [ebp - 0x25c]
mov al, byte [edx + eax]
mov byte [ebp + ecx - 0x250], al
cmp dword [ebp - 0x290], 0
jge 0x1003dbac
mov ecx, 1
shl ecx, 1
mov byte [ebp + ecx - 0x250], 0x2d
mov edx, dword [ebp - 0x290]
neg edx
mov dword [ebp - 0x290], edx
jmp 0x1003dbbb
mov eax, 1
shl eax, 1
mov byte [ebp + eax - 0x250], 0x2b
cmp dword [ebp - 0x290], 0x3e8
jl 0x1003dbd3
mov dword [ebp - 0x380], 6
jmp 0x1003dc1f
cmp dword [ebp - 0x290], 0x64
jl 0x1003dbe8
mov dword [ebp - 0x384], 5
jmp 0x1003dc13
cmp dword [ebp - 0x290], 0xa
jl 0x1003dbfd
mov dword [ebp - 0x388], 4
jmp 0x1003dc07
mov dword [ebp - 0x388], 3
mov ecx, dword [ebp - 0x388]
mov dword [ebp - 0x384], ecx
mov edx, dword [ebp - 0x384]
mov dword [ebp - 0x380], edx
mov eax, dword [ebp - 0x380]
mov dword [ebp - 0x26c], eax
mov ecx, 1
imul edx, ecx, 0
mov al, byte [ebp - 0x26c]
mov byte [ebp + edx - 0x250], al
mov eax, dword [ebp - 0x290]
cdq
mov ecx, 0xa
idiv ecx
add edx, 0x30
mov eax, dword [ebp - 0x26c]
mov byte [ebp + eax - 0x250], dl
cmp dword [ebp - 0x26c], 3
ja 0x1003dc69
jmp 0x1003dc8e
mov ecx, dword [ebp - 0x26c]
sub ecx, 1
mov dword [ebp - 0x26c], ecx
mov eax, dword [ebp - 0x290]
cdq
mov ecx, 0xa
idiv ecx
mov dword [ebp - 0x290], eax
jmp 0x1003dc40
mov edx, dword [ebp - 0x258]
sub edx, dword [ebp - 0x29c]
mov dword [ebp - 0x290], edx
lea eax, [ebp - 0x1f0]
mov ecx, dword [ebp - 0x258]
sub ecx, eax
mov dword [ebp - 0x264], ecx
lea edx, [ebp - 0x1f0]
mov dword [ebp - 0x258], edx
mov dword [ebp - 0x270], 0x3000001
jmp 0x1003f24d
mov eax, 1
imul ecx, eax, 0
mov edx, dword [ebp - 0xc]
movsx eax, byte [edx + ecx]
cmp eax, 0x47
jne 0x1003dcf4
mov dword [ebp - 0x38c], str.0123456789ABCDEFXP
jmp 0x1003dcfe
mov dword [ebp - 0x38c], str.0123456789abcdefxp
mov ecx, dword [ebp - 0x38c]
mov dword [ebp - 0x25c], ecx
mov edx, dword [ebp + 0x18]
add edx, 8
mov dword [ebp + 0x18], edx
mov eax, dword [ebp + 0x18]
movsd xmm0, qword [eax - 8]
movsd qword [ebp - 0x288], xmm0
cmp dword [ebp - 0x18], 0xffffffff
jne 0x1003dd32
mov dword [ebp - 0x18], 6
jmp 0x1003dd3f
cmp dword [ebp - 0x18], 0
jne 0x1003dd3f
mov dword [ebp - 0x18], 1
mov ecx, dword [ebp - 0x18]
sub ecx, 1
or ecx, 0x80000000
push ecx
sub esp, 8
movsd xmm0, qword [ebp - 0x288]
movsd qword [esp], xmm0
lea edx, [ebp - 0x290]
push edx
lea eax, [ebp - 0x230]
push eax
lea ecx, [ebp - 0x264]
push ecx
lea edx, [ebp - 0x29c]
push edx
call fcn.10040200
add esp, 0x1c
test eax, eax
je 0x1003dd8f
mov eax, dword [ebp - 0x20]
or eax, 0x80
mov dword [ebp - 0x20], eax
mov ecx, dword [ebp - 0x18]
mov dword [ebp - 0x26c], ecx
mov edx, dword [ebp - 0x264]
cmp edx, dword [ebp - 0x18]
jbe 0x1003ddac
mov eax, dword [ebp - 0x18]
mov dword [ebp - 0x264], eax
cmp dword [ebp - 0x264], 1
jbe 0x1003ddea
cmp dword [ebp - 0x18], 0
je 0x1003ddea
mov ecx, dword [ebp - 0x29c]
add ecx, dword [ebp - 0x264]
movsx edx, byte [ecx - 1]
cmp edx, 0x30
jne 0x1003ddea
mov eax, dword [ebp - 0x18]
sub eax, 1
mov dword [ebp - 0x18], eax
mov ecx, dword [ebp - 0x264]
sub ecx, 1
mov dword [ebp - 0x264], ecx
jmp 0x1003ddac
cmp dword [ebp - 0x290], 0xfffffffc
jle 0x1003de01
mov edx, dword [ebp - 0x290]
cmp edx, dword [ebp - 0x26c]
jle 0x1003de33
mov eax, dword [ebp - 0x18]
cmp eax, dword [ebp - 0x264]
jle 0x1003de1a
mov ecx, dword [ebp - 0x264]
sub ecx, 1
mov dword [ebp - 0x18], ecx
jmp 0x1003de29
cmp dword [ebp - 0x18], 0
je 0x1003de29
mov edx, dword [ebp - 0x18]
sub edx, 1
mov dword [ebp - 0x18], edx
jmp 0x1003df5a
cmp dword [ebp - 0x290], 0
jle 0x1003de73
mov eax, dword [ebp - 0x290]
cmp eax, dword [ebp - 0x264]
jge 0x1003de5e
mov ecx, dword [ebp - 0x264]
sub ecx, dword [ebp - 0x290]
mov dword [ebp - 0x390], ecx
jmp 0x1003de68
mov dword [ebp - 0x390], 0
mov edx, dword [ebp - 0x390]
mov dword [ebp - 0x18], edx
jmp 0x1003dea6
mov eax, dword [ebp - 0x18]
cmp eax, dword [ebp - 0x264]
jle 0x1003de8c
mov ecx, dword [ebp - 0x264]
mov dword [ebp - 0x394], ecx
jmp 0x1003de95
mov edx, dword [ebp - 0x18]
mov dword [ebp - 0x394], edx
mov eax, dword [ebp - 0x290]
neg eax
add eax, dword [ebp - 0x394]
mov dword [ebp - 0x18], eax
jmp 0x1003e2ad
mov ecx, 1
imul edx, ecx, 0
mov eax, dword [ebp - 0xc]
movsx ecx, byte [eax + edx]
cmp ecx, 0x45
jne 0x1003ded0
mov dword [ebp - 0x398], str.0123456789ABCDEFXP
jmp 0x1003deda
mov dword [ebp - 0x398], str.0123456789abcdefxp
mov edx, dword [ebp - 0x398]
mov dword [ebp - 0x25c], edx
mov eax, dword [ebp + 0x18]
add eax, 8
mov dword [ebp + 0x18], eax
mov ecx, dword [ebp + 0x18]
movsd xmm0, qword [ecx - 8]
movsd qword [ebp - 0x288], xmm0
cmp dword [ebp - 0x18], 0xffffffff
jne 0x1003df0c
mov dword [ebp - 0x18], 6
mov edx, dword [ebp - 0x18]
or edx, 0x80000000
push edx
sub esp, 8
movsd xmm0, qword [ebp - 0x288]
movsd qword [esp], xmm0
lea eax, [ebp - 0x290]
push eax
lea ecx, [ebp - 0x230]
push ecx
lea edx, [ebp - 0x264]
push edx
lea eax, [ebp - 0x29c]
push eax
call fcn.10040200
add esp, 0x1c
test eax, eax
je 0x1003df5a
mov ecx, dword [ebp - 0x20]
or ecx, 0x80
mov dword [ebp - 0x20], ecx
mov edx, 1
imul eax, edx, 0
mov dword [ebp - 0x338], eax
cmp dword [ebp - 0x338], 8
jae 0x1003df73
jmp 0x1003df79
call fcn.100f3f80
nop
mov ecx, dword [ebp - 0x338]
mov byte [ebp + ecx - 0x250], 0
lea edx, [ebp - 0x240]
push edx
mov eax, dword [ebp - 0x20]
push eax
call fcn.10040990
add esp, 8
cmp dword [ebp - 0x290], 0x7000
jne 0x1003dfcd
mov ecx, dword [ebp - 0x29c]
mov dword [ebp - 0x258], ecx
mov dword [ebp - 0x270], 0
mov dword [ebp - 0x18], 0
jmp 0x1003f24d
lea edx, [ebp - 0x1f0]
mov dword [ebp - 0x258], edx
mov eax, 1
imul ecx, eax, 0
mov edx, dword [ebp - 0x258]
mov eax, dword [ebp - 0x29c]
mov cl, byte [eax + ecx]
mov byte [edx], cl
mov edx, dword [ebp - 0x258]
add edx, 1
mov dword [ebp - 0x258], edx
cmp dword [ebp - 0x18], 0
je 0x1003e024
mov eax, dword [ebp - 0x258]
mov cl, byte [0x101f3010]
mov byte [eax], cl
mov edx, dword [ebp - 0x258]
add edx, 1
mov dword [ebp - 0x258], edx
mov eax, dword [ebp - 0x264]
sub eax, 1
cmp eax, dword [ebp - 0x18]
jbe 0x1003e03e
mov ecx, dword [ebp - 0x18]
add ecx, 1
mov dword [ebp - 0x264], ecx
mov dword [ebp - 0x26c], 1
jmp 0x1003e059
mov edx, dword [ebp - 0x26c]
add edx, 1
mov dword [ebp - 0x26c], edx
mov eax, dword [ebp - 0x26c]
cmp eax, dword [ebp - 0x264]
jae 0x1003e08e
mov ecx, dword [ebp - 0x29c]
add ecx, dword [ebp - 0x26c]
mov edx, dword [ebp - 0x258]
mov al, byte [ecx]
mov byte [edx], al
mov ecx, dword [ebp - 0x258]
add ecx, 1
mov dword [ebp - 0x258], ecx
jmp 0x1003e04a
mov edx, dword [ebp - 0x264]
sub edx, 1
mov eax, dword [ebp - 0x18]
sub eax, edx
mov dword [ebp - 0x1c], eax
mov dword [ebp - 0x18], 0
mov ecx, 1
imul edx, ecx, 0xe
mov eax, 1
shl eax, 0
mov ecx, dword [ebp - 0x25c]
mov dl, byte [ecx + edx]
mov byte [ebp + eax - 0x250], dl
mov eax, dword [ebp - 0x290]
sub eax, 1
mov dword [ebp - 0x290], eax
jns 0x1003e0f6
mov ecx, 1
shl ecx, 1
mov byte [ebp + ecx - 0x250], 0x2d
mov edx, dword [ebp - 0x290]
neg edx
mov dword [ebp - 0x290], edx
jmp 0x1003e105
mov eax, 1
shl eax, 1
mov byte [ebp + eax - 0x250], 0x2b
cmp dword [ebp - 0x290], 0x64
jl 0x1003e11a
mov dword [ebp - 0x39c], 5
jmp 0x1003e124
mov dword [ebp - 0x39c], 4
mov ecx, dword [ebp - 0x39c]
mov dword [ebp - 0x26c], ecx
mov edx, 1
imul eax, edx, 0
mov cl, byte [ebp - 0x26c]
mov byte [ebp + eax - 0x250], cl
mov eax, dword [ebp - 0x290]
cdq
mov ecx, 0xa
idiv ecx
add edx, 0x30
mov eax, dword [ebp - 0x26c]
mov byte [ebp + eax - 0x250], dl
cmp dword [ebp - 0x26c], 3
ja 0x1003e16e
jmp 0x1003e193
mov ecx, dword [ebp - 0x26c]
sub ecx, 1
mov dword [ebp - 0x26c], ecx
mov eax, dword [ebp - 0x290]
cdq
mov ecx, 0xa
idiv ecx
mov dword [ebp - 0x290], eax
jmp 0x1003e145
mov dword [ebp - 0x270], 0x3000001
jmp 0x1003e97c
mov edx, dword [ebp + 0x18]
add edx, 8
mov dword [ebp + 0x18], edx
mov eax, dword [ebp + 0x18]
movsd xmm0, qword [eax - 8]
movsd qword [ebp - 0x288], xmm0
mov ecx, dword [ebp - 0x20]
and ecx, 0x100
je 0x1003e259
movsd xmm0, qword [0x101a8738]
movsd qword [ebp - 0x2ac], xmm0
mov edx, dword [ebp - 0x20]
and edx, 0x800
je 0x1003e1fa
movsd xmm0, qword [0x101a8740]
movsd qword [ebp - 0x2ac], xmm0
cmp dword [ebp - 0x20], 0x4000000
jae 0x1003e259
movsd xmm0, qword [ebp - 0x2ac]
comisd xmm0, xmmword [ebp - 0x288]
jbe 0x1003e234
movsd xmm0, qword [ebp - 0x2ac]
xorps xmm0, xmmword [0x101a87e0]
movsd xmm1, qword [ebp - 0x288]
comisd xmm1, xmm0
jbe 0x1003e234
jmp 0x1003e259
movsd xmm0, qword [ebp - 0x288]
divsd xmm0, qword [ebp - 0x2ac]
movsd qword [ebp - 0x288], xmm0
mov eax, dword [ebp - 0x20]
add eax, 0x1000000
mov dword [ebp - 0x20], eax
jmp 0x1003e1fa
cmp dword [ebp - 0x18], 0xffffffff
jne 0x1003e266
mov dword [ebp - 0x18], 6
mov ecx, dword [ebp - 0x18]
push ecx
sub esp, 8
movsd xmm0, qword [ebp - 0x288]
movsd qword [esp], xmm0
lea edx, [ebp - 0x290]
push edx
lea eax, [ebp - 0x230]
push eax
lea ecx, [ebp - 0x264]
push ecx
lea edx, [ebp - 0x29c]
push edx
call fcn.10040200
add esp, 0x1c
test eax, eax
je 0x1003e2ad
mov eax, dword [ebp - 0x20]
or eax, 0x80
mov dword [ebp - 0x20], eax
mov ecx, 1
imul edx, ecx, 0
mov dword [ebp - 0x33c], edx
cmp dword [ebp - 0x33c], 8
jae 0x1003e2c6
jmp 0x1003e2cc
call fcn.100f3f80
nop
mov eax, dword [ebp - 0x33c]
mov byte [ebp + eax - 0x250], 0
lea ecx, [ebp - 0x240]
push ecx
mov edx, dword [ebp - 0x20]
push edx
call fcn.10040990
add esp, 8
cmp dword [ebp - 0x290], 0x7000
jne 0x1003e320
mov eax, dword [ebp - 0x29c]
mov dword [ebp - 0x258], eax
mov dword [ebp - 0x270], 0
mov dword [ebp - 0x18], 0
jmp 0x1003f24d
lea ecx, [ebp - 0x1f0]
mov dword [ebp - 0x258], ecx
cmp dword [ebp - 0x290], 0
jg 0x1003e4eb
mov edx, dword [ebp - 0x258]
mov byte [edx], 0x30
mov eax, dword [ebp - 0x258]
add eax, 1
mov dword [ebp - 0x258], eax
cmp dword [ebp - 0x18], 0
je 0x1003e374
mov ecx, dword [ebp - 0x258]
mov dl, byte [0x101f3010]
mov byte [ecx], dl
mov eax, dword [ebp - 0x258]
add eax, 1
mov dword [ebp - 0x258], eax
mov ecx, dword [ebp - 0x290]
neg ecx
mov dword [ebp - 0x26c], ecx
mov edx, dword [ebp - 0x26c]
cmp edx, dword [ebp - 0x18]
jle 0x1003e396
mov eax, dword [ebp - 0x18]
mov dword [ebp - 0x26c], eax
mov ecx, dword [ebp - 0x26c]
mov dword [ebp - 0x2b0], ecx
cmp dword [ebp - 0x2b0], 0
je 0x1003e3e1
mov edx, dword [ebp - 0x258]
and edx, 3
jne 0x1003e3b8
jmp 0x1003e3e1
mov eax, dword [ebp - 0x258]
mov byte [eax], 0x30
mov ecx, dword [ebp - 0x258]
add ecx, 1
mov dword [ebp - 0x258], ecx
mov edx, dword [ebp - 0x2b0]
sub edx, 1
mov dword [ebp - 0x2b0], edx
jmp 0x1003e3a2
cmp dword [ebp - 0x2b0], 4
jl 0x1003e416
mov eax, dword [ebp - 0x258]
mov dword [eax], 0x30303030
mov ecx, dword [ebp - 0x258]
add ecx, 4
mov dword [ebp - 0x258], ecx
mov edx, dword [ebp - 0x2b0]
sub edx, 4
mov dword [ebp - 0x2b0], edx
jmp 0x1003e3e1
cmp dword [ebp - 0x2b0], 0
je 0x1003e448
mov eax, dword [ebp - 0x258]
mov byte [eax], 0x30
mov ecx, dword [ebp - 0x258]
add ecx, 1
mov dword [ebp - 0x258], ecx
mov edx, dword [ebp - 0x2b0]
sub edx, 1
mov dword [ebp - 0x2b0], edx
jmp 0x1003e416
mov eax, dword [ebp - 0x264]
add eax, dword [ebp - 0x26c]
cmp eax, dword [ebp - 0x18]
jle 0x1003e468
mov ecx, dword [ebp - 0x18]
sub ecx, dword [ebp - 0x26c]
mov dword [ebp - 0x264], ecx
mov edx, dword [ebp - 0x264]
mov dword [ebp - 0x2b0], edx
cmp dword [ebp - 0x2b0], 0
je 0x1003e4c8
mov eax, dword [ebp - 0x29c]
mov cl, byte [eax]
mov byte [ebp - 0x39d], cl
mov edx, dword [ebp - 0x29c]
add edx, 1
mov dword [ebp - 0x29c], edx
mov eax, dword [ebp - 0x258]
mov cl, byte [ebp - 0x39d]
mov byte [eax], cl
mov edx, dword [ebp - 0x258]
add edx, 1
mov dword [ebp - 0x258], edx
mov eax, dword [ebp - 0x2b0]
sub eax, 1
mov dword [ebp - 0x2b0], eax
jmp 0x1003e474
mov ecx, dword [ebp - 0x26c]
add ecx, dword [ebp - 0x264]
mov edx, dword [ebp - 0x18]
sub edx, ecx
mov dword [ebp - 0x1c], edx
mov dword [ebp - 0x270], 0x3000001
jmp 0x1003e884
mov eax, dword [ebp - 0x20]
and eax, 0x40
je 0x1003e50f
mov eax, 0x258
sub eax, dword [ebp - 0x290]
xor edx, edx
mov ecx, 3
div ecx
mov dword [ebp - 0x3a4], edx
jmp 0x1003e519
mov dword [ebp - 0x3a4], 0
mov edx, dword [ebp - 0x3a4]
mov dword [ebp - 0x270], edx
mov eax, dword [ebp - 0x290]
cmp eax, dword [ebp - 0x264]
jb 0x1003e735
mov dword [ebp - 0x26c], 0
mov ecx, dword [ebp - 0x20]
and ecx, 0x40
je 0x1003e58a
mov edx, dword [ebp - 0x270]
add edx, 1
mov dword [ebp - 0x270], edx
cmp dword [ebp - 0x270], 4
jne 0x1003e58a
mov dword [ebp - 0x270], 0
mov eax, dword [ebp - 0x258]
mov cl, byte [0x101f3011]
mov byte [eax], cl
mov edx, dword [ebp - 0x258]
add edx, 1
mov dword [ebp - 0x258], edx
jmp 0x1003e5ce
mov eax, dword [ebp - 0x29c]
add eax, dword [ebp - 0x26c]
mov ecx, dword [ebp - 0x258]
mov dl, byte [eax]
mov byte [ecx], dl
mov eax, dword [ebp - 0x258]
add eax, 1
mov dword [ebp - 0x258], eax
mov ecx, dword [ebp - 0x26c]
add ecx, 1
mov dword [ebp - 0x26c], ecx
mov edx, dword [ebp - 0x26c]
cmp edx, dword [ebp - 0x264]
jb 0x1003e5ce
jmp 0x1003e5d3
jmp 0x1003e541
mov eax, dword [ebp - 0x26c]
cmp eax, dword [ebp - 0x290]
jae 0x1003e6ee
mov ecx, dword [ebp - 0x290]
sub ecx, dword [ebp - 0x26c]
mov dword [ebp - 0x26c], ecx
mov edx, dword [ebp - 0x20]
and edx, 0x40
jne 0x1003e673
cmp dword [ebp - 0x26c], 0
je 0x1003e63e
mov eax, dword [ebp - 0x258]
and eax, 3
jne 0x1003e615
jmp 0x1003e63e
mov ecx, dword [ebp - 0x258]
mov byte [ecx], 0x30
mov edx, dword [ebp - 0x258]
add edx, 1
mov dword [ebp - 0x258], edx
mov eax, dword [ebp - 0x26c]
sub eax, 1
mov dword [ebp - 0x26c], eax
jmp 0x1003e5ff
cmp dword [ebp - 0x26c], 4
jb 0x1003e673
mov ecx, dword [ebp - 0x258]
mov dword [ecx], 0x30303030
mov edx, dword [ebp - 0x258]
add edx, 4
mov dword [ebp - 0x258], edx
mov eax, dword [ebp - 0x26c]
sub eax, 4
mov dword [ebp - 0x26c], eax
jmp 0x1003e63e
cmp dword [ebp - 0x26c], 0
je 0x1003e6ee
mov ecx, dword [ebp - 0x20]
and ecx, 0x40
je 0x1003e6c5
mov edx, dword [ebp - 0x270]
add edx, 1
mov dword [ebp - 0x270], edx
cmp dword [ebp - 0x270], 4
jne 0x1003e6c5
mov dword [ebp - 0x270], 0
mov eax, dword [ebp - 0x258]
mov cl, byte [0x101f3011]
mov byte [eax], cl
mov edx, dword [ebp - 0x258]
add edx, 1
mov dword [ebp - 0x258], edx
jmp 0x1003e6ec
mov eax, dword [ebp - 0x258]
mov byte [eax], 0x30
mov ecx, dword [ebp - 0x258]
add ecx, 1
mov dword [ebp - 0x258], ecx
mov edx, dword [ebp - 0x26c]
sub edx, 1
mov dword [ebp - 0x26c], edx
jmp 0x1003e673
lea eax, [ebp - 0x1f0]
mov ecx, dword [ebp - 0x258]
sub ecx, eax
add ecx, 0x3000000
mov dword [ebp - 0x270], ecx
cmp dword [ebp - 0x18], 0
je 0x1003e730
mov edx, dword [ebp - 0x258]
mov al, byte [0x101f3010]
mov byte [edx], al
mov ecx, dword [ebp - 0x258]
add ecx, 1
mov dword [ebp - 0x258], ecx
mov edx, dword [ebp - 0x18]
mov dword [ebp - 0x1c], edx
jmp 0x1003e884
mov dword [ebp - 0x26c], 0
mov eax, dword [ebp - 0x20]
and eax, 0x40
je 0x1003e787
mov ecx, dword [ebp - 0x270]
add ecx, 1
mov dword [ebp - 0x270], ecx
cmp dword [ebp - 0x270], 4
jne 0x1003e787
mov dword [ebp - 0x270], 0
mov edx, dword [ebp - 0x258]
mov al, byte [0x101f3011]
mov byte [edx], al
mov ecx, dword [ebp - 0x258]
add ecx, 1
mov dword [ebp - 0x258], ecx
jmp 0x1003e7cb
mov edx, dword [ebp - 0x29c]
add edx, dword [ebp - 0x26c]
mov eax, dword [ebp - 0x258]
mov cl, byte [edx]
mov byte [eax], cl
mov edx, dword [ebp - 0x258]
add edx, 1
mov dword [ebp - 0x258], edx
mov eax, dword [ebp - 0x26c]
add eax, 1
mov dword [ebp - 0x26c], eax
mov ecx, dword [ebp - 0x26c]
cmp ecx, dword [ebp - 0x290]
jb 0x1003e7cb
jmp 0x1003e7d0
jmp 0x1003e73f
lea edx, [ebp - 0x1f0]
mov eax, dword [ebp - 0x258]
sub eax, edx
add eax, 0x3000000
mov dword [ebp - 0x270], eax
cmp dword [ebp - 0x18], 0
je 0x1003e80c
mov ecx, dword [ebp - 0x258]
mov dl, byte [0x101f3010]
mov byte [ecx], dl
mov eax, dword [ebp - 0x258]
add eax, 1
mov dword [ebp - 0x258], eax
mov ecx, dword [ebp - 0x264]
sub ecx, dword [ebp - 0x290]
cmp ecx, dword [ebp - 0x18]
jbe 0x1003e82c
mov edx, dword [ebp - 0x18]
add edx, dword [ebp - 0x290]
mov dword [ebp - 0x264], edx
mov eax, dword [ebp - 0x26c]
cmp eax, dword [ebp - 0x264]
jae 0x1003e870
mov ecx, dword [ebp - 0x29c]
add ecx, dword [ebp - 0x26c]
mov edx, dword [ebp - 0x258]
mov al, byte [ecx]
mov byte [edx], al
mov ecx, dword [ebp - 0x258]
add ecx, 1
mov dword [ebp - 0x258], ecx
mov edx, dword [ebp - 0x26c]
add edx, 1
mov dword [ebp - 0x26c], edx
jmp 0x1003e82c
mov eax, dword [ebp - 0x264]
sub eax, dword [ebp - 0x290]
mov ecx, dword [ebp - 0x18]
sub ecx, eax
mov dword [ebp - 0x1c], ecx
mov dword [ebp - 0x18], 0
mov edx, dword [ebp - 0x20]
and edx, 0x100
je 0x1003e97c
mov byte [ebp - 0x2b1], 1
mov eax, dword [ebp - 0x20]
and eax, 0x400
je 0x1003e8b2
mov byte [ebp - 0x2b1], 0
mov ecx, 1
imul edx, ecx, 0
mov al, byte [ebp - 0x2b1]
mov byte [ebp + edx - 0x250], al
mov ecx, 1
shl ecx, 0
mov byte [ebp + ecx - 0x250], 0x20
mov edx, dword [ebp - 0x20]
shr edx, 0x18
test edx, edx
je 0x1003e97c
mov eax, dword [ebp - 0x20]
and eax, 0x800
je 0x1003e90b
mov ecx, dword [ebp - 0x20]
shr ecx, 0x18
movsx edx, byte [ebp - 0x2b1]
mov al, byte [ecx + str._KMGT]
mov byte [ebp + edx - 0x24f], al
jmp 0x1003e925
mov ecx, dword [ebp - 0x20]
shr ecx, 0x18
movsx edx, byte [ebp - 0x2b1]
mov al, byte [ecx + str._kMGT]
mov byte [ebp + edx - 0x24f], al
mov cl, byte [ebp - 0x2b1]
add cl, 1
mov byte [ebp - 0x2b1], cl
mov edx, dword [ebp - 0x20]
and edx, 0x800
je 0x1003e967
mov eax, dword [ebp - 0x20]
and eax, 0x1000
jne 0x1003e967
movsx ecx, byte [ebp - 0x2b1]
mov byte [ebp + ecx - 0x24f], 0x69
mov dl, byte [ebp - 0x2b1]
add dl, 1
mov byte [ebp - 0x2b1], dl
mov eax, 1
imul ecx, eax, 0
mov dl, byte [ebp - 0x2b1]
mov byte [ebp + ecx - 0x250], dl
lea eax, [ebp - 0x1f0]
mov ecx, dword [ebp - 0x258]
sub ecx, eax
mov dword [ebp - 0x264], ecx
lea edx, [ebp - 0x1f0]
mov dword [ebp - 0x258], edx
jmp 0x1003f24d
mov eax, 1
imul ecx, eax, 0
mov edx, dword [ebp - 0xc]
movsx eax, byte [edx + ecx]
cmp eax, 0x42
jne 0x1003e9c6
mov dword [ebp - 0x3a8], str.0123456789ABCDEFXP
jmp 0x1003e9d0
mov dword [ebp - 0x3a8], str.0123456789abcdefxp
mov ecx, dword [ebp - 0x3a8]
mov dword [ebp - 0x25c], ecx
mov edx, 1
imul eax, edx, 0
mov dword [ebp - 0x340], eax
cmp dword [ebp - 0x340], 8
jae 0x1003e9f5
jmp 0x1003e9fb
call fcn.100f3f80
nop
mov ecx, dword [ebp - 0x340]
mov byte [ebp + ecx - 0x240], 0
mov edx, dword [ebp - 0x20]
and edx, 8
je 0x1003ea50
mov eax, 1
imul ecx, eax, 0
mov byte [ebp + ecx - 0x240], 2
mov edx, 1
shl edx, 0
mov byte [ebp + edx - 0x240], 0x30
mov eax, 1
imul ecx, eax, 0xb
mov edx, 1
shl edx, 1
mov eax, dword [ebp - 0x25c]
mov cl, byte [eax + ecx]
mov byte [ebp + edx - 0x240], cl
mov dword [ebp - 0x264], 0x180
jmp 0x1003eba1
mov dword [ebp - 0x25c], str.0123456789ABCDEFXP
mov edx, 1
imul eax, edx, 0
mov dword [ebp - 0x344], eax
cmp dword [ebp - 0x344], 8
jae 0x1003ea87
jmp 0x1003ea8d
call fcn.100f3f80
nop
mov ecx, dword [ebp - 0x344]
mov byte [ebp + ecx - 0x240], 0
mov edx, dword [ebp - 0x20]
and edx, 8
je 0x1003eac3
mov eax, 1
imul ecx, eax, 0
mov byte [ebp + ecx - 0x240], 1
mov edx, 1
shl edx, 0
mov byte [ebp + edx - 0x240], 0x30
mov dword [ebp - 0x264], 0x330
jmp 0x1003eba1
mov eax, dword [ebp - 0x20]
mov dword [ebp - 0x20], eax
mov dword [ebp - 0x18], 8
mov ecx, dword [ebp - 0x20]
and ecx, 0xffffffef
mov dword [ebp - 0x20], ecx
mov edx, 1
imul eax, edx, 0
mov ecx, dword [ebp - 0xc]
movsx edx, byte [ecx + eax]
cmp edx, 0x58
jne 0x1003eb0d
mov dword [ebp - 0x3ac], str.0123456789ABCDEFXP
jmp 0x1003eb17
mov dword [ebp - 0x3ac], str.0123456789abcdefxp
mov eax, dword [ebp - 0x3ac]
mov dword [ebp - 0x25c], eax
mov dword [ebp - 0x264], 0x440
mov ecx, 1
imul edx, ecx, 0
mov dword [ebp - 0x348], edx
cmp dword [ebp - 0x348], 8
jae 0x1003eb46
jmp 0x1003eb4c
call fcn.100f3f80
nop
mov eax, dword [ebp - 0x348]
mov byte [ebp + eax - 0x240], 0
mov ecx, dword [ebp - 0x20]
and ecx, 8
je 0x1003eba1
mov edx, 1
imul eax, edx, 0
mov byte [ebp + eax - 0x240], 2
mov ecx, 1
shl ecx, 0
mov byte [ebp + ecx - 0x240], 0x30
mov edx, 1
shl edx, 4
mov eax, 1
shl eax, 1
mov ecx, dword [ebp - 0x25c]
mov dl, byte [ecx + edx]
mov byte [ebp + eax - 0x240], dl
mov eax, dword [ebp - 0x20]
and eax, 0x20
je 0x1003ebc9
mov ecx, dword [ebp + 0x18]
add ecx, 8
mov dword [ebp + 0x18], ecx
mov edx, dword [ebp + 0x18]
mov eax, dword [edx - 8]
mov ecx, dword [edx - 4]
mov dword [ebp - 0x27c], eax
mov dword [ebp - 0x278], ecx
jmp 0x1003ebe6
mov edx, dword [ebp + 0x18]
add edx, 4
mov dword [ebp + 0x18], edx
mov eax, dword [ebp + 0x18]
mov ecx, dword [eax - 4]
xor edx, edx
mov dword [ebp - 0x27c], ecx
mov dword [ebp - 0x278], edx
lea eax, [ebp - 0x30]
mov dword [ebp - 0x258], eax
mov dword [ebp - 0x290], 0
mov ecx, 1
imul edx, ecx, 0
mov dword [ebp - 0x34c], edx
cmp dword [ebp - 0x34c], 8
jae 0x1003ec12
jmp 0x1003ec18
call fcn.100f3f80
nop
mov eax, dword [ebp - 0x34c]
mov byte [ebp + eax - 0x250], 0
mov ecx, dword [ebp - 0x27c]
or ecx, dword [ebp - 0x278]
jne 0x1003ec85
mov edx, 1
imul eax, edx, 0
mov dword [ebp - 0x350], eax
cmp dword [ebp - 0x350], 8
jae 0x1003ec4d
jmp 0x1003ec53
call fcn.100f3f80
nop
mov ecx, dword [ebp - 0x350]
mov byte [ebp + ecx - 0x240], 0
cmp dword [ebp - 0x18], 0
jne 0x1003ec85
mov dword [ebp - 0x264], 0
mov dword [ebp - 0x270], 0
jmp 0x1003f24d
mov edx, dword [ebp - 0x258]
sub edx, 1
mov dword [ebp - 0x258], edx
mov ecx, dword [ebp - 0x264]
shr ecx, 8
mov eax, 1
shl eax, cl
sub eax, 1
cdq
and eax, dword [ebp - 0x27c]
and edx, dword [ebp - 0x278]
push 0
push 1
push edx
push eax
call fcn.100f43b0
mov ecx, dword [ebp - 0x258]
mov edx, dword [ebp - 0x25c]
mov al, byte [edx + eax]
mov byte [ecx], al
mov ecx, dword [ebp - 0x264]
shr ecx, 8
mov eax, dword [ebp - 0x27c]
mov edx, dword [ebp - 0x278]
call fcn.100f45f0
mov dword [ebp - 0x27c], eax
mov dword [ebp - 0x278], edx
mov ecx, dword [ebp - 0x27c]
or ecx, dword [ebp - 0x278]
jne 0x1003ed14
lea edx, [ebp - 0x30]
sub edx, dword [ebp - 0x258]
cmp edx, dword [ebp - 0x18]
jl 0x1003ed14
jmp 0x1003ed75
mov eax, dword [ebp - 0x20]
and eax, 0x40
je 0x1003ed70
mov ecx, dword [ebp - 0x264]
add ecx, 1
mov dword [ebp - 0x264], ecx
mov edx, dword [ebp - 0x264]
and edx, 0xf
mov eax, dword [ebp - 0x264]
shr eax, 4
and eax, 0xf
cmp edx, eax
jne 0x1003ed70
mov ecx, dword [ebp - 0x264]
and ecx, 0xfffffff0
mov dword [ebp - 0x264], ecx
mov edx, dword [ebp - 0x258]
sub edx, 1
mov dword [ebp - 0x258], edx
mov eax, dword [ebp - 0x258]
mov cl, byte [0x101f3011]
mov byte [eax], cl
jmp 0x1003ec85
lea edx, [ebp - 0x30]
sub edx, dword [ebp - 0x258]
mov eax, dword [ebp - 0x264]
shr eax, 4
and eax, 0xf
shl eax, 0x18
add edx, eax
mov dword [ebp - 0x270], edx
lea ecx, [ebp - 0x30]
sub ecx, dword [ebp - 0x258]
mov dword [ebp - 0x264], ecx
jmp 0x1003f24d
mov edx, dword [ebp - 0x20]
and edx, 0x20
je 0x1003ee44
mov eax, dword [ebp + 0x18]
add eax, 8
mov dword [ebp + 0x18], eax
mov ecx, dword [ebp + 0x18]
mov edx, dword [ecx - 8]
mov eax, dword [ecx - 4]
mov dword [ebp - 0x2bc], edx
mov dword [ebp - 0x2b8], eax
mov ecx, dword [ebp - 0x2bc]
mov edx, dword [ebp - 0x2b8]
mov dword [ebp - 0x27c], ecx
mov dword [ebp - 0x278], edx
mov eax, 1
imul ecx, eax, 0
mov edx, dword [ebp - 0xc]
movsx eax, byte [edx + ecx]
cmp eax, 0x75
je 0x1003ee42
cmp dword [ebp - 0x2b8], 0
jg 0x1003ee42
jl 0x1003ee18
cmp dword [ebp - 0x2bc], 0
jae 0x1003ee42
mov ecx, dword [ebp - 0x2bc]
neg ecx
mov edx, dword [ebp - 0x2b8]
adc edx, 0
neg edx
mov dword [ebp - 0x27c], ecx
mov dword [ebp - 0x278], edx
mov eax, dword [ebp - 0x20]
or eax, 0x80
mov dword [ebp - 0x20], eax
jmp 0x1003eeab
mov ecx, dword [ebp + 0x18]
add ecx, 4
mov dword [ebp + 0x18], ecx
mov edx, dword [ebp + 0x18]
mov eax, dword [edx - 4]
mov dword [ebp - 0x2c0], eax
mov ecx, dword [ebp - 0x2c0]
xor edx, edx
mov dword [ebp - 0x27c], ecx
mov dword [ebp - 0x278], edx
mov eax, 1
imul ecx, eax, 0
mov edx, dword [ebp - 0xc]
movsx eax, byte [edx + ecx]
cmp eax, 0x75
je 0x1003eeab
cmp dword [ebp - 0x2c0], 0
jge 0x1003eeab
mov ecx, dword [ebp - 0x2c0]
neg ecx
xor edx, edx
mov dword [ebp - 0x27c], ecx
mov dword [ebp - 0x278], edx
mov eax, dword [ebp - 0x20]
or eax, 0x80
mov dword [ebp - 0x20], eax
mov ecx, dword [ebp - 0x20]
and ecx, 0x100
je 0x1003ef01
cmp dword [ebp - 0x278], 0
ja 0x1003eed6
jb 0x1003eecd
cmp dword [ebp - 0x27c], 0x400
jae 0x1003eed6
mov dword [ebp - 0x18], 0
jmp 0x1003eee3
cmp dword [ebp - 0x18], 0xffffffff
jne 0x1003eee3
mov dword [ebp - 0x18], 1
mov edx, dword [ebp - 0x278]
mov ecx, dword [ebp - 0x27c]
call fcn.100f3680
movsd qword [ebp - 0x288], xmm0
jmp 0x1003e1c0
lea edx, [ebp - 0x30]
mov dword [ebp - 0x258], edx
mov dword [ebp - 0x264], 0
mov eax, dword [ebp - 0x258]
sub eax, 8
mov dword [ebp - 0x2c4], eax
cmp dword [ebp - 0x278], 0
ja 0x1003ef38
cmp dword [ebp - 0x27c], 0x5f5e100
jb 0x1003ef80
push 0
push 0x5f5e100
mov ecx, dword [ebp - 0x278]
push ecx
mov edx, dword [ebp - 0x27c]
push edx
call fcn.100f4570
mov dword [ebp - 0x26c], eax
push 0
push 0x5f5e100
mov eax, dword [ebp - 0x278]
push eax
mov ecx, dword [ebp - 0x27c]
push ecx
call fcn.100f4500
mov dword [ebp - 0x27c], eax
mov dword [ebp - 0x278], edx
jmp 0x1003ef97
mov edx, dword [ebp - 0x27c]
mov dword [ebp - 0x26c], edx
xorps xmm0, xmm0
movlpd qword [ebp - 0x27c], xmm0
mov eax, dword [ebp - 0x20]
and eax, 0x40
jne 0x1003efec
mov ecx, dword [ebp - 0x258]
sub ecx, 2
mov dword [ebp - 0x258], ecx
mov eax, dword [ebp - 0x26c]
xor edx, edx
mov ecx, 0x64
div ecx
mov eax, dword [ebp - 0x258]
mov cx, word [edx*2 + str.00010203040506070809101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899]
mov word [eax], cx
mov eax, dword [ebp - 0x26c]
xor edx, edx
mov ecx, 0x64
div ecx
mov dword [ebp - 0x26c], eax
cmp dword [ebp - 0x26c], 0
jne 0x1003ef9f
cmp dword [ebp - 0x26c], 0
je 0x1003f0c2
mov edx, dword [ebp - 0x20]
and edx, 0x40
je 0x1003f07c
mov eax, dword [ebp - 0x264]
mov dword [ebp - 0x3b0], eax
mov ecx, dword [ebp - 0x264]
add ecx, 1
mov dword [ebp - 0x264], ecx
cmp dword [ebp - 0x3b0], 3
jne 0x1003f031
mov dword [ebp - 0x3b4], 1
jmp 0x1003f03b
mov dword [ebp - 0x3b4], 0
cmp dword [ebp - 0x3b4], 0
je 0x1003f07c
mov dword [ebp - 0x264], 0
mov edx, dword [ebp - 0x258]
sub edx, 1
mov dword [ebp - 0x258], edx
mov eax, dword [ebp - 0x258]
mov cl, byte [0x101f3011]
mov byte [eax], cl
mov edx, dword [ebp - 0x2c4]
sub edx, 1
mov dword [ebp - 0x2c4], edx
jmp 0x1003f0bd
mov eax, dword [ebp - 0x258]
sub eax, 1
mov dword [ebp - 0x258], eax
mov eax, dword [ebp - 0x26c]
xor edx, edx
mov ecx, 0xa
div ecx
movsx edx, dl
add edx, 0x30
mov eax, dword [ebp - 0x258]
mov byte [eax], dl
mov eax, dword [ebp - 0x26c]
xor edx, edx
mov ecx, 0xa
div ecx
mov dword [ebp - 0x26c], eax
jmp 0x1003efec
mov edx, dword [ebp - 0x27c]
or edx, dword [ebp - 0x278]
jne 0x1003f106
mov eax, 1
imul ecx, eax, 0
mov edx, dword [ebp - 0x258]
movsx eax, byte [edx + ecx]
cmp eax, 0x30
jne 0x1003f101
lea ecx, [ebp - 0x30]
cmp dword [ebp - 0x258], ecx
je 0x1003f101
mov edx, dword [ebp - 0x258]
add edx, 1
mov dword [ebp - 0x258], edx
jmp 0x1003f1bc
mov eax, dword [ebp - 0x258]
cmp eax, dword [ebp - 0x2c4]
je 0x1003f1b7
mov ecx, dword [ebp - 0x20]
and ecx, 0x40
je 0x1003f19a
mov edx, dword [ebp - 0x264]
mov dword [ebp - 0x3b8], edx
mov eax, dword [ebp - 0x264]
add eax, 1
mov dword [ebp - 0x264], eax
cmp dword [ebp - 0x3b8], 3
jne 0x1003f150
mov dword [ebp - 0x3bc], 1
jmp 0x1003f15a
mov dword [ebp - 0x3bc], 0
cmp dword [ebp - 0x3bc], 0
je 0x1003f19a
mov dword [ebp - 0x264], 0
mov ecx, dword [ebp - 0x258]
sub ecx, 1
mov dword [ebp - 0x258], ecx
mov edx, dword [ebp - 0x258]
mov al, byte [0x101f3011]
mov byte [edx], al
mov ecx, dword [ebp - 0x2c4]
sub ecx, 1
mov dword [ebp - 0x2c4], ecx
jmp 0x1003f1b2
mov edx, dword [ebp - 0x258]
sub edx, 1
mov dword [ebp - 0x258], edx
mov eax, dword [ebp - 0x258]
mov byte [eax], 0x30
jmp 0x1003f106
jmp 0x1003ef14
mov ecx, 1
imul edx, ecx, 0
mov dword [ebp - 0x354], edx
cmp dword [ebp - 0x354], 8
jae 0x1003f1d5
jmp 0x1003f1db
call fcn.100f3f80
nop
mov eax, dword [ebp - 0x354]
mov byte [ebp + eax - 0x250], 0
lea ecx, [ebp - 0x240]
push ecx
mov edx, dword [ebp - 0x20]
push edx
call fcn.10040990
add esp, 8
lea eax, [ebp - 0x30]
sub eax, dword [ebp - 0x258]
mov dword [ebp - 0x264], eax
jne 0x1003f22f
mov ecx, dword [ebp - 0x258]
sub ecx, 1
mov dword [ebp - 0x258], ecx
mov edx, dword [ebp - 0x258]
mov byte [edx], 0x30
mov dword [ebp - 0x264], 1
mov eax, dword [ebp - 0x264]
add eax, 0x3000000
mov dword [ebp - 0x270], eax
cmp dword [ebp - 0x18], 0
jge 0x1003f24d
mov dword [ebp - 0x18], 0
mov ecx, dword [ebp - 0x18]
cmp ecx, dword [ebp - 0x264]
jge 0x1003f261
mov edx, dword [ebp - 0x264]
mov dword [ebp - 0x18], edx
mov eax, 1
imul ecx, eax, 0
movsx edx, byte [ebp + ecx - 0x240]
add edx, dword [ebp - 0x18]
mov eax, 1
imul ecx, eax, 0
movsx eax, byte [ebp + ecx - 0x250]
add edx, dword [ebp - 0x1c]
add eax, edx
mov dword [ebp - 0x26c], eax
mov ecx, dword [ebp - 0x14]
cmp ecx, dword [ebp - 0x26c]
jge 0x1003f2a3
mov edx, dword [ebp - 0x26c]
mov dword [ebp - 0x14], edx
mov eax, dword [ebp - 0x14]
sub eax, dword [ebp - 0x26c]
mov dword [ebp - 0x14], eax
mov ecx, dword [ebp - 0x18]
sub ecx, dword [ebp - 0x264]
mov dword [ebp - 0x18], ecx
mov edx, dword [ebp - 0x20]
and edx, 1
jne 0x1003f302
mov eax, dword [ebp - 0x20]
and eax, 0x10
je 0x1003f2f9
mov ecx, dword [ebp - 0x14]
cmp ecx, dword [ebp - 0x18]
jle 0x1003f2de
mov edx, dword [ebp - 0x14]
mov dword [ebp - 0x3c0], edx
jmp 0x1003f2e7
mov eax, dword [ebp - 0x18]
mov dword [ebp - 0x3c0], eax
mov ecx, dword [ebp - 0x3c0]
mov dword [ebp - 0x18], ecx
mov dword [ebp - 0x14], 0
jmp 0x1003f302
mov edx, dword [ebp - 0x20]
and edx, 0xffffffbf
mov dword [ebp - 0x20], edx
mov eax, dword [ebp - 0x14]
add eax, dword [ebp - 0x18]
je 0x1003f802
mov ecx, dword [ebp - 0x20]
and ecx, 1
jne 0x1003f46b
cmp dword [ebp - 0x14], 0
jle 0x1003f46b
mov edx, dword [ebp - 0x14]
mov dword [ebp - 0x2c8], edx
cmp dword [ebp + 8], 0
je 0x1003f360
mov eax, dword [ebp - 8]
sub eax, dword [ebp + 0x10]
mov ecx, 0x200
sub ecx, eax
mov dword [ebp - 0x2d0], ecx
mov edx, dword [ebp - 0x2c8]
cmp edx, dword [ebp - 0x2d0]
jle 0x1003f360
mov eax, dword [ebp - 0x2d0]
mov dword [ebp - 0x2c8], eax
mov ecx, dword [ebp - 0x14]
sub ecx, dword [ebp - 0x2c8]
mov dword [ebp - 0x14], ecx
cmp dword [ebp - 0x2c8], 0
je 0x1003f39f
mov edx, dword [ebp - 8]
and edx, 3
jne 0x1003f37f
jmp 0x1003f39f
mov eax, dword [ebp - 8]
mov byte [eax], 0x20
mov ecx, dword [ebp - 8]
add ecx, 1
mov dword [ebp - 8], ecx
mov edx, dword [ebp - 0x2c8]
sub edx, 1
mov dword [ebp - 0x2c8], edx
jmp 0x1003f36c
cmp dword [ebp - 0x2c8], 4
jl 0x1003f3cb
mov eax, dword [ebp - 8]
mov dword [eax], 0x20202020
mov ecx, dword [ebp - 8]
add ecx, 4
mov dword [ebp - 8], ecx
mov edx, dword [ebp - 0x2c8]
sub edx, 4
mov dword [ebp - 0x2c8], edx
jmp 0x1003f39f
cmp dword [ebp - 0x2c8], 0
je 0x1003f3f4
mov eax, dword [ebp - 8]
mov byte [eax], 0x20
mov ecx, dword [ebp - 8]
add ecx, 1
mov dword [ebp - 8], ecx
mov edx, dword [ebp - 0x2c8]
sub edx, 1
mov dword [ebp - 0x2c8], edx
jmp 0x1003f3cb
cmp dword [ebp + 8], 0
je 0x1003f466
mov eax, dword [ebp - 8]
sub eax, dword [ebp + 0x10]
mov dword [ebp - 0x2d4], eax
mov ecx, dword [ebp - 0x2d4]
add ecx, 1
cmp ecx, 0x200
jl 0x1003f466
mov edx, dword [ebp - 0x10]
add edx, dword [ebp - 0x2d4]
mov dword [ebp - 0x10], edx
mov eax, dword [ebp + 8]
mov dword [ebp - 0x3c4], eax
mov esi, esp
mov ecx, dword [ebp - 0x2d4]
push ecx
mov edx, dword [ebp + 0xc]
push edx
mov eax, dword [ebp + 0x10]
push eax
call dword [ebp - 0x3c4]
add esp, 0xc
cmp esi, esp
call fcn.100f3210
mov dword [ebp + 0x10], eax
mov ecx, dword [ebp + 0x10]
mov dword [ebp - 8], ecx
cmp dword [ebp - 8], 0
jne 0x1003f466
jmp 0x1004000d
jmp 0x1003f31a
lea edx, [ebp - 0x23f]
mov dword [ebp - 0x29c], edx
mov eax, 1
imul ecx, eax, 0
movsx edx, byte [ebp + ecx - 0x240]
test edx, edx
je 0x1003f5c2
mov eax, 1
imul ecx, eax, 0
movsx edx, byte [ebp + ecx - 0x240]
mov dword [ebp - 0x2c8], edx
cmp dword [ebp + 8], 0
je 0x1003f4d8
mov eax, dword [ebp - 8]
sub eax, dword [ebp + 0x10]
mov ecx, 0x200
sub ecx, eax
mov dword [ebp - 0x2d8], ecx
mov edx, dword [ebp - 0x2c8]
cmp edx, dword [ebp - 0x2d8]
jle 0x1003f4d8
mov eax, dword [ebp - 0x2d8]
mov dword [ebp - 0x2c8], eax
movsx ecx, byte [ebp - 0x2c8]
mov edx, 1
imul eax, edx, 0
movsx edx, byte [ebp + eax - 0x240]
sub edx, ecx
mov eax, 1
imul ecx, eax, 0
mov byte [ebp + ecx - 0x240], dl
cmp dword [ebp - 0x2c8], 0
je 0x1003f54b
mov edx, dword [ebp - 0x29c]
mov al, byte [edx]
mov byte [ebp - 0x3c5], al
mov ecx, dword [ebp - 0x29c]
add ecx, 1
mov dword [ebp - 0x29c], ecx
mov edx, dword [ebp - 8]
mov al, byte [ebp - 0x3c5]
mov byte [edx], al
mov ecx, dword [ebp - 8]
add ecx, 1
mov dword [ebp - 8], ecx
mov edx, dword [ebp - 0x2c8]
sub edx, 1
mov dword [ebp - 0x2c8], edx
jmp 0x1003f500
cmp dword [ebp + 8], 0
je 0x1003f5bd
mov eax, dword [ebp - 8]
sub eax, dword [ebp + 0x10]
mov dword [ebp - 0x2dc], eax
mov ecx, dword [ebp - 0x2dc]
add ecx, 1
cmp ecx, 0x200
jl 0x1003f5bd
mov edx, dword [ebp - 0x10]
add edx, dword [ebp - 0x2dc]
mov dword [ebp - 0x10], edx
mov eax, dword [ebp + 8]
mov dword [ebp - 0x3cc], eax
mov esi, esp
mov ecx, dword [ebp - 0x2dc]
push ecx
mov edx, dword [ebp + 0xc]
push edx
mov eax, dword [ebp + 0x10]
push eax
call dword [ebp - 0x3cc]
add esp, 0xc
cmp esi, esp
call fcn.100f3210
mov dword [ebp + 0x10], eax
mov ecx, dword [ebp + 0x10]
mov dword [ebp - 8], ecx
cmp dword [ebp - 8], 0
jne 0x1003f5bd
jmp 0x1004000d
jmp 0x1003f477
mov edx, dword [ebp - 0x270]
shr edx, 0x18
mov dword [ebp - 0x2cc], edx
mov eax, dword [ebp - 0x270]
and eax, 0xffffff
mov dword [ebp - 0x270], eax
mov ecx, dword [ebp - 0x20]
and ecx, 0x40
je 0x1003f610
mov eax, dword [ebp - 0x18]
add eax, dword [ebp - 0x270]
mov ecx, dword [ebp - 0x2cc]
add ecx, 1
xor edx, edx
div ecx
mov eax, dword [ebp - 0x2cc]
sub eax, edx
mov dword [ebp - 0x3d0], eax
jmp 0x1003f61a
mov dword [ebp - 0x3d0], 0
mov ecx, dword [ebp - 0x3d0]
mov dword [ebp - 0x270], ecx
cmp dword [ebp - 0x18], 0
jle 0x1003f802
mov edx, dword [ebp - 0x18]
mov dword [ebp - 0x2c8], edx
cmp dword [ebp + 8], 0
je 0x1003f66c
mov eax, dword [ebp - 8]
sub eax, dword [ebp + 0x10]
mov ecx, 0x200
sub ecx, eax
mov dword [ebp - 0x2e0], ecx
mov edx, dword [ebp - 0x2c8]
cmp edx, dword [ebp - 0x2e0]
jle 0x1003f66c
mov eax, dword [ebp - 0x2e0]
mov dword [ebp - 0x2c8], eax
mov ecx, dword [ebp - 0x18]
sub ecx, dword [ebp - 0x2c8]
mov dword [ebp - 0x18], ecx
mov edx, dword [ebp - 0x20]
and edx, 0x40
jne 0x1003f6df
cmp dword [ebp - 0x2c8], 0
je 0x1003f6b3
mov eax, dword [ebp - 8]
and eax, 3
jne 0x1003f693
jmp 0x1003f6b3
mov ecx, dword [ebp - 8]
mov byte [ecx], 0x30
mov edx, dword [ebp - 8]
add edx, 1
mov dword [ebp - 8], edx
mov eax, dword [ebp - 0x2c8]
sub eax, 1
mov dword [ebp - 0x2c8], eax
jmp 0x1003f680
cmp dword [ebp - 0x2c8], 4
jl 0x1003f6df
mov ecx, dword [ebp - 8]
mov dword [ecx], 0x30303030
mov edx, dword [ebp - 8]
add edx, 4
mov dword [ebp - 8], edx
mov eax, dword [ebp - 0x2c8]
sub eax, 4
mov dword [ebp - 0x2c8], eax
jmp 0x1003f6b3
cmp dword [ebp - 0x2c8], 0
je 0x1003f78b
mov ecx, dword [ebp - 0x20]
and ecx, 0x40
je 0x1003f768
mov edx, dword [ebp - 0x270]
mov dword [ebp - 0x3d4], edx
mov eax, dword [ebp - 0x2cc]
mov dword [ebp - 0x3d8], eax
mov ecx, dword [ebp - 0x270]
add ecx, 1
mov dword [ebp - 0x270], ecx
mov edx, dword [ebp - 0x3d4]
cmp edx, dword [ebp - 0x3d8]
jne 0x1003f735
mov dword [ebp - 0x3dc], 1
jmp 0x1003f73f
mov dword [ebp - 0x3dc], 0
cmp dword [ebp - 0x3dc], 0
je 0x1003f768
mov dword [ebp - 0x270], 0
mov eax, dword [ebp - 8]
mov cl, byte [0x101f3011]
mov byte [eax], cl
mov edx, dword [ebp - 8]
add edx, 1
mov dword [ebp - 8], edx
jmp 0x1003f777
mov eax, dword [ebp - 8]
mov byte [eax], 0x30
mov ecx, dword [ebp - 8]
add ecx, 1
mov dword [ebp - 8], ecx
mov edx, dword [ebp - 0x2c8]
sub edx, 1
mov dword [ebp - 0x2c8], edx
jmp 0x1003f6df
cmp dword [ebp + 8], 0
je 0x1003f7fd
mov eax, dword [ebp - 8]
sub eax, dword [ebp + 0x10]
mov dword [ebp - 0x2e4], eax
mov ecx, dword [ebp - 0x2e4]
add ecx, 1
cmp ecx, 0x200
jl 0x1003f7fd
mov edx, dword [ebp - 0x10]
add edx, dword [ebp - 0x2e4]
mov dword [ebp - 0x10], edx
mov eax, dword [ebp + 8]
mov dword [ebp - 0x3e0], eax
mov esi, esp
mov ecx, dword [ebp - 0x2e4]
push ecx
mov edx, dword [ebp + 0xc]
push edx
mov eax, dword [ebp + 0x10]
push eax
call dword [ebp - 0x3e0]
add esp, 0xc
cmp esi, esp
call fcn.100f3210
mov dword [ebp + 0x10], eax
mov ecx, dword [ebp + 0x10]
mov dword [ebp - 8], ecx
cmp dword [ebp - 8], 0
jne 0x1003f7fd
jmp 0x1004000d
jmp 0x1003f626
lea edx, [ebp - 0x23f]
mov dword [ebp - 0x29c], edx
mov eax, 1
imul ecx, eax, 0
movsx edx, byte [ebp + ecx - 0x240]
test edx, edx
je 0x1003f959
mov eax, 1
imul ecx, eax, 0
movsx edx, byte [ebp + ecx - 0x240]
mov dword [ebp - 0x2e8], edx
cmp dword [ebp + 8], 0
je 0x1003f86f
mov eax, dword [ebp - 8]
sub eax, dword [ebp + 0x10]
mov ecx, 0x200
sub ecx, eax
mov dword [ebp - 0x2ec], ecx
mov edx, dword [ebp - 0x2e8]
cmp edx, dword [ebp - 0x2ec]
jle 0x1003f86f
mov eax, dword [ebp - 0x2ec]
mov dword [ebp - 0x2e8], eax
movsx ecx, byte [ebp - 0x2e8]
mov edx, 1
imul eax, edx, 0
movsx edx, byte [ebp + eax - 0x240]
sub edx, ecx
mov eax, 1
imul ecx, eax, 0
mov byte [ebp + ecx - 0x240], dl
cmp dword [ebp - 0x2e8], 0
je 0x1003f8e2
mov edx, dword [ebp - 0x29c]
mov al, byte [edx]
mov byte [ebp - 0x3e1], al
mov ecx, dword [ebp - 0x29c]
add ecx, 1
mov dword [ebp - 0x29c], ecx
mov edx, dword [ebp - 8]
mov al, byte [ebp - 0x3e1]
mov byte [edx], al
mov ecx, dword [ebp - 8]
add ecx, 1
mov dword [ebp - 8], ecx
mov edx, dword [ebp - 0x2e8]
sub edx, 1
mov dword [ebp - 0x2e8], edx
jmp 0x1003f897
cmp dword [ebp + 8], 0
je 0x1003f954
mov eax, dword [ebp - 8]
sub eax, dword [ebp + 0x10]
mov dword [ebp - 0x2f0], eax
mov ecx, dword [ebp - 0x2f0]
add ecx, 1
cmp ecx, 0x200
jl 0x1003f954
mov edx, dword [ebp - 0x10]
add edx, dword [ebp - 0x2f0]
mov dword [ebp - 0x10], edx
mov eax, dword [ebp + 8]
mov dword [ebp - 0x3e8], eax
mov esi, esp
mov ecx, dword [ebp - 0x2f0]
push ecx
mov edx, dword [ebp + 0xc]
push edx
mov eax, dword [ebp + 0x10]
push eax
call dword [ebp - 0x3e8]
add esp, 0xc
cmp esi, esp
call fcn.100f3210
mov dword [ebp + 0x10], eax
mov ecx, dword [ebp + 0x10]
mov dword [ebp - 8], ecx
cmp dword [ebp - 8], 0
jne 0x1003f954
jmp 0x1004000d
jmp 0x1003f80e
mov edx, dword [ebp - 0x264]
mov dword [ebp - 0x26c], edx
cmp dword [ebp - 0x26c], 0
je 0x1003fac4
mov eax, dword [ebp - 0x26c]
mov dword [ebp - 0x2f4], eax
cmp dword [ebp + 8], 0
je 0x1003f9b1
mov ecx, dword [ebp - 8]
sub ecx, dword [ebp + 0x10]
mov edx, 0x200
sub edx, ecx
mov dword [ebp - 0x2f8], edx
mov eax, dword [ebp - 0x2f4]
cmp eax, dword [ebp - 0x2f8]
jle 0x1003f9b1
mov ecx, dword [ebp - 0x2f8]
mov dword [ebp - 0x2f4], ecx
mov edx, dword [ebp - 0x26c]
sub edx, dword [ebp - 0x2f4]
mov dword [ebp - 0x26c], edx
cmp dword [ebp - 0x2f4], 4
jl 0x1003fa02
mov eax, dword [ebp - 8]
mov ecx, dword [ebp - 0x258]
mov edx, dword [ecx]
mov dword [eax], edx
mov eax, dword [ebp - 8]
add eax, 4
mov dword [ebp - 8], eax
mov ecx, dword [ebp - 0x258]
add ecx, 4
mov dword [ebp - 0x258], ecx
mov edx, dword [ebp - 0x2f4]
sub edx, 4
mov dword [ebp - 0x2f4], edx
jmp 0x1003f9c3
cmp dword [ebp - 0x2f4], 0
je 0x1003fa4d
mov eax, dword [ebp - 0x258]
mov cl, byte [eax]
mov byte [ebp - 0x3e9], cl
mov edx, dword [ebp - 0x258]
add edx, 1
mov dword [ebp - 0x258], edx
mov eax, dword [ebp - 8]
mov cl, byte [ebp - 0x3e9]
mov byte [eax], cl
mov edx, dword [ebp - 8]
add edx, 1
mov dword [ebp - 8], edx
mov eax, dword [ebp - 0x2f4]
sub eax, 1
mov dword [ebp - 0x2f4], eax
jmp 0x1003fa02
cmp dword [ebp + 8], 0
je 0x1003fabf
mov ecx, dword [ebp - 8]
sub ecx, dword [ebp + 0x10]
mov dword [ebp - 0x2fc], ecx
mov edx, dword [ebp - 0x2fc]
add edx, 1
cmp edx, 0x200
jl 0x1003fabf
mov eax, dword [ebp - 0x10]
add eax, dword [ebp - 0x2fc]
mov dword [ebp - 0x10], eax
mov ecx, dword [ebp + 8]
mov dword [ebp - 0x3f0], ecx
mov esi, esp
mov edx, dword [ebp - 0x2fc]
push edx
mov eax, dword [ebp + 0xc]
push eax
mov ecx, dword [ebp + 0x10]
push ecx
call dword [ebp - 0x3f0]
add esp, 0xc
cmp esi, esp
call fcn.100f3210
mov dword [ebp + 0x10], eax
mov edx, dword [ebp + 0x10]
mov dword [ebp - 8], edx
cmp dword [ebp - 8], 0
jne 0x1003fabf
jmp 0x1004000d
jmp 0x1003f965
cmp dword [ebp - 0x1c], 0
je 0x1003fc15
mov eax, dword [ebp - 0x1c]
mov dword [ebp - 0x300], eax
cmp dword [ebp + 8], 0
je 0x1003fb0a
mov ecx, dword [ebp - 8]
sub ecx, dword [ebp + 0x10]
mov edx, 0x200
sub edx, ecx
mov dword [ebp - 0x304], edx
mov eax, dword [ebp - 0x300]
cmp eax, dword [ebp - 0x304]
jle 0x1003fb0a
mov ecx, dword [ebp - 0x304]
mov dword [ebp - 0x300], ecx
mov edx, dword [ebp - 0x1c]
sub edx, dword [ebp - 0x300]
mov dword [ebp - 0x1c], edx
cmp dword [ebp - 0x300], 0
je 0x1003fb49
mov eax, dword [ebp - 8]
and eax, 3
jne 0x1003fb29
jmp 0x1003fb49
mov ecx, dword [ebp - 8]
mov byte [ecx], 0x30
mov edx, dword [ebp - 8]
add edx, 1
mov dword [ebp - 8], edx
mov eax, dword [ebp - 0x300]
sub eax, 1
mov dword [ebp - 0x300], eax
jmp 0x1003fb16
cmp dword [ebp - 0x300], 4
jl 0x1003fb75
mov ecx, dword [ebp - 8]
mov dword [ecx], 0x30303030
mov edx, dword [ebp - 8]
add edx, 4
mov dword [ebp - 8], edx
mov eax, dword [ebp - 0x300]
sub eax, 4
mov dword [ebp - 0x300], eax
jmp 0x1003fb49
cmp dword [ebp - 0x300], 0
je 0x1003fb9e
mov ecx, dword [ebp - 8]
mov byte [ecx], 0x30
mov edx, dword [ebp - 8]
add edx, 1
mov dword [ebp - 8], edx
mov eax, dword [ebp - 0x300]
sub eax, 1
mov dword [ebp - 0x300], eax
jmp 0x1003fb75
cmp dword [ebp + 8], 0
je 0x1003fc10
mov ecx, dword [ebp - 8]
sub ecx, dword [ebp + 0x10]
mov dword [ebp - 0x308], ecx
mov edx, dword [ebp - 0x308]
add edx, 1
cmp edx, 0x200
jl 0x1003fc10
mov eax, dword [ebp - 0x10]
add eax, dword [ebp - 0x308]
mov dword [ebp - 0x10], eax
mov ecx, dword [ebp + 8]
mov dword [ebp - 0x3f4], ecx
mov esi, esp
mov edx, dword [ebp - 0x308]
push edx
mov eax, dword [ebp + 0xc]
push eax
mov ecx, dword [ebp + 0x10]
push ecx
call dword [ebp - 0x3f4]
add esp, 0xc
cmp esi, esp
call fcn.100f3210
mov dword [ebp + 0x10], eax
mov edx, dword [ebp + 0x10]
mov dword [ebp - 8], edx
cmp dword [ebp - 8], 0
jne 0x1003fc10
jmp 0x1004000d
jmp 0x1003fac4
lea eax, [ebp - 0x24f]
mov dword [ebp - 0x29c], eax
mov ecx, 1
imul edx, ecx, 0
movsx eax, byte [ebp + edx - 0x250]
test eax, eax
je 0x1003fd6c
mov ecx, 1
imul edx, ecx, 0
movsx eax, byte [ebp + edx - 0x250]
mov dword [ebp - 0x30c], eax
cmp dword [ebp + 8], 0
je 0x1003fc82
mov ecx, dword [ebp - 8]
sub ecx, dword [ebp + 0x10]
mov edx, 0x200
sub edx, ecx
mov dword [ebp - 0x310], edx
mov eax, dword [ebp - 0x30c]
cmp eax, dword [ebp - 0x310]
jle 0x1003fc82
mov ecx, dword [ebp - 0x310]
mov dword [ebp - 0x30c], ecx
movsx edx, byte [ebp - 0x30c]
mov eax, 1
imul ecx, eax, 0
movsx eax, byte [ebp + ecx - 0x250]
sub eax, edx
mov ecx, 1
imul edx, ecx, 0
mov byte [ebp + edx - 0x250], al
cmp dword [ebp - 0x30c], 0
je 0x1003fcf5
mov eax, dword [ebp - 0x29c]
mov cl, byte [eax]
mov byte [ebp - 0x3f5], cl
mov edx, dword [ebp - 0x29c]
add edx, 1
mov dword [ebp - 0x29c], edx
mov eax, dword [ebp - 8]
mov cl, byte [ebp - 0x3f5]
mov byte [eax], cl
mov edx, dword [ebp - 8]
add edx, 1
mov dword [ebp - 8], edx
mov eax, dword [ebp - 0x30c]
sub eax, 1
mov dword [ebp - 0x30c], eax
jmp 0x1003fcaa
cmp dword [ebp + 8], 0
je 0x1003fd67
mov ecx, dword [ebp - 8]
sub ecx, dword [ebp + 0x10]
mov dword [ebp - 0x314], ecx
mov edx, dword [ebp - 0x314]
add edx, 1
cmp edx, 0x200
jl 0x1003fd67
mov eax, dword [ebp - 0x10]
add eax, dword [ebp - 0x314]
mov dword [ebp - 0x10], eax
mov ecx, dword [ebp + 8]
mov dword [ebp - 0x3fc], ecx
mov esi, esp
mov edx, dword [ebp - 0x314]
push edx
mov eax, dword [ebp + 0xc]
push eax
mov ecx, dword [ebp + 0x10]
push ecx
call dword [ebp - 0x3fc]
add esp, 0xc
cmp esi, esp
call fcn.100f3210
mov dword [ebp + 0x10], eax
mov edx, dword [ebp + 0x10]
mov dword [ebp - 8], edx
cmp dword [ebp - 8], 0
jne 0x1003fd67
jmp 0x1004000d
jmp 0x1003fc21
mov eax, dword [ebp - 0x20]
and eax, 1
je 0x1003fedf
cmp dword [ebp - 0x14], 0
jle 0x1003fedf
cmp dword [ebp - 0x14], 0
je 0x1003fedf
mov ecx, dword [ebp - 0x14]
mov dword [ebp - 0x318], ecx
cmp dword [ebp + 8], 0
je 0x1003fdc8
mov edx, dword [ebp - 8]
sub edx, dword [ebp + 0x10]
mov eax, 0x200
sub eax, edx
mov dword [ebp - 0x31c], eax
mov ecx, dword [ebp - 0x318]
cmp ecx, dword [ebp - 0x31c]
jle 0x1003fdc8
mov edx, dword [ebp - 0x31c]
mov dword [ebp - 0x318], edx
mov eax, dword [ebp - 0x14]
sub eax, dword [ebp - 0x318]
mov dword [ebp - 0x14], eax
cmp dword [ebp - 0x318], 0
je 0x1003fe07
mov ecx, dword [ebp - 8]
and ecx, 3
jne 0x1003fde7
jmp 0x1003fe07
mov edx, dword [ebp - 8]
mov byte [edx], 0x20
mov eax, dword [ebp - 8]
add eax, 1
mov dword [ebp - 8], eax
mov ecx, dword [ebp - 0x318]
sub ecx, 1
mov dword [ebp - 0x318], ecx
jmp 0x1003fdd4
cmp dword [ebp - 0x318], 4
jl 0x1003fe33
mov edx, dword [ebp - 8]
mov dword [edx], 0x20202020
mov eax, dword [ebp - 8]
add eax, 4
mov dword [ebp - 8], eax
mov ecx, dword [ebp - 0x318]
sub ecx, 4
mov dword [ebp - 0x318], ecx
jmp 0x1003fe07
mov edx, dword [ebp - 0x318]
mov dword [ebp - 0x400], edx
mov eax, dword [ebp - 0x318]
sub eax, 1
mov dword [ebp - 0x318], eax
cmp dword [ebp - 0x400], 0
je 0x1003fe68
mov ecx, dword [ebp - 8]
mov byte [ecx], 0x20
mov edx, dword [ebp - 8]
add edx, 1
mov dword [ebp - 8], edx
jmp 0x1003fe33
cmp dword [ebp + 8], 0
je 0x1003feda
mov eax, dword [ebp - 8]
sub eax, dword [ebp + 0x10]
mov dword [ebp - 0x320], eax
mov ecx, dword [ebp - 0x320]
add ecx, 1
cmp ecx, 0x200
jl 0x1003feda
mov edx, dword [ebp - 0x10]
add edx, dword [ebp - 0x320]
mov dword [ebp - 0x10], edx
mov eax, dword [ebp + 8]
mov dword [ebp - 0x404], eax
mov esi, esp
mov ecx, dword [ebp - 0x320]
push ecx
mov edx, dword [ebp + 0xc]
push edx
mov eax, dword [ebp + 0x10]
push eax
call dword [ebp - 0x404]
add esp, 0xc
cmp esi, esp
call fcn.100f3210
mov dword [ebp + 0x10], eax
mov ecx, dword [ebp + 0x10]
mov dword [ebp - 8], ecx
cmp dword [ebp - 8], 0
jne 0x1003feda
jmp 0x1004000d
jmp 0x1003fd82
jmp 0x1003ff94
lea edx, [ebp - 0x31]
mov dword [ebp - 0x258], edx
mov eax, 1
imul ecx, eax, 0
mov edx, dword [ebp - 0x258]
mov eax, dword [ebp - 0xc]
mov cl, byte [eax + ecx]
mov byte [edx], cl
mov dword [ebp - 0x264], 1
mov dword [ebp - 0x20], 0
mov edx, dword [ebp - 0x20]
mov dword [ebp - 0x14], edx
mov eax, 1
imul ecx, eax, 0
mov dword [ebp - 0x358], ecx
cmp dword [ebp - 0x358], 8
jae 0x1003ff33
jmp 0x1003ff39
call fcn.100f3f80
nop
mov edx, dword [ebp - 0x358]
mov byte [ebp + edx - 0x240], 0
mov eax, 1
imul ecx, eax, 0
mov dword [ebp - 0x35c], ecx
cmp dword [ebp - 0x35c], 8
jae 0x1003ff60
jmp 0x1003ff66
call fcn.100f3f80
nop
mov edx, dword [ebp - 0x35c]
mov byte [ebp + edx - 0x250], 0
mov dword [ebp - 0x18], 0
mov dword [ebp - 0x290], 0
mov dword [ebp - 0x270], 0
jmp 0x1003f24d
mov eax, dword [ebp - 0xc]
add eax, 1
mov dword [ebp - 0xc], eax
jmp 0x1003d12a
cmp dword [ebp + 8], 0
jne 0x1003ffb0
mov ecx, dword [ebp - 8]
mov byte [ecx], 0
jmp 0x1004000d
mov edx, dword [ebp - 8]
sub edx, dword [ebp + 0x10]
mov dword [ebp - 0x324], edx
mov eax, dword [ebp - 0x324]
add eax, 0x1ff
cmp eax, 0x200
jl 0x1004000d
mov ecx, dword [ebp - 0x10]
add ecx, dword [ebp - 0x324]
mov dword [ebp - 0x10], ecx
mov edx, dword [ebp + 8]
mov dword [ebp - 0x408], edx
mov esi, esp
mov eax, dword [ebp - 0x324]
push eax
mov ecx, dword [ebp + 0xc]
push ecx
mov edx, dword [ebp + 0x10]
push edx
call dword [ebp - 0x408]
add esp, 0xc
cmp esi, esp
call fcn.100f3210
mov dword [ebp + 0x10], eax
mov eax, dword [ebp + 0x10]
mov dword [ebp - 8], eax
mov eax, dword [ebp - 8]
sub eax, dword [ebp + 0x10]
add eax, dword [ebp - 0x10]
push edx
mov ecx, ebp
push eax
lea edx, [0x10040044]
call fcn.100f31b0
pop eax
pop edx
pop edi
pop esi
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.100f3240
add esp, 0x408
cmp ebp, esp
call fcn.100f3210
mov esp, ebp
pop ebp
ret