Function at 0x1003871d
Capabilities:
Parse credit card information
Resolve function by parsing pe exports

Disassembly:
sub esp, 0x124
mov eax, ecx
mov dword [esp + 0xfc], edx
mov edx, dword [edx]
mov dword [esp + 0xf4], eax
push ebx
mov ecx, dword [eax]
xor eax, eax
mov dword [esp + 0xac], eax
mov dword [esp + 0x94], eax
mov dword [esp + 0xa4], eax
mov dword [esp + 0x1c], eax
mov dword [esp + 0x88], eax
mov dword [esp + 0x58], eax
mov eax, ecx
shr eax, 0xb
and eax, 1
mov dword [esp + 0x54], 0
mov dword [esp + 0x2c], eax
mov eax, ecx
shr eax, 9
and eax, 1
mov dword [esp + 0x3c], 0
push ebp
mov dword [esp + 0xdc], eax
xor ebp, ebp
push esi
mov esi, dword [esp + 0x134]
xor eax, 1
mov dword [esp + 0xe4], eax
mov eax, ecx
push edi
xor edi, edi
mov dword [esp + 0x44], ecx
mov esi, dword [esi]
and eax, 1
mov dword [esp + 0x18], edx
mov dword [esp + 0xb4], edx
mov dword [esp + 0x20], edi
mov dword [esp + 0x14], esi
mov dword [esp + 0x2c], ebp
mov dword [esp + 0x88], edi
mov dword [esp + 0x8c], edi
mov dword [esp + 0x68], edi
mov dword [esp + 0x78], edi
mov dword [esp + 0x70], 0xfffffffe
mov dword [esp + 0x74], 0xfffffffe
mov dword [esp + 0x58], 0xfffffffe
mov dword [esp + 0x3c], 0xfffffffe
mov dword [esp + 0x9c], eax
mov dword [esp + 0xa8], edx
jmp 0x10038174
mov ebp, dword [esp + 0x2c]
movzx ebx, byte [esi]
mov dword [esp + 0x34], ebx
test ebx, ebx
jne 0x10038194
test ebp, ebp
je 0x10038194
mov esi, ebp
mov dword [esp + 0x2c], ebx
mov dword [esp + 0x14], esi
movzx ebx, byte [esi]
mov dword [esp + 0x34], ebx
mov ebp, dword [esp + 0x158]
mov ecx, dword [ebp + 0x10]
add ecx, dword [ebp + 0x3c]
cmp dword [esp + 0x15c], 0
je 0x1003826f
lea eax, [ecx - 0x64]
cmp edx, eax
ja 0x1003bf7b
cmp edx, dword [esp + 0xa8]
mov eax, dword [esp + 0x15c]
cmovb edx, dword [esp + 0xa8]
mov dword [esp + 0x18], edx
mov ecx, dword [esp + 0x18]
mov edx, dword [eax]
mov eax, 0x7fffffeb
sub ecx, dword [esp + 0xa8]
sub eax, edx
cmp eax, ecx
jl 0x1003c5c8
sub edx, dword [esp + 0xa8]
mov ecx, dword [esp + 0x15c]
mov eax, dword [esp + 0x18]
add edx, eax
mov dword [ecx], edx
mov edx, dword [esp + 0x28]
test edx, edx
je 0x1003824e
mov ecx, dword [esp + 0xb4]
cmp edx, ecx
jbe 0x10038262
sub eax, edx
push eax
push edx
push ecx
call fcn.1000f9a0
mov ecx, dword [esp + 0xc0]
add esp, 0xc
mov edx, dword [esp + 0x18]
mov eax, ecx
sub eax, dword [esp + 0x28]
mov esi, dword [esp + 0x14]
add edx, eax
mov dword [esp + 0x18], edx
mov dword [esp + 0x28], ecx
mov dword [esp + 0xa8], edx
jmp 0x10038278
mov edx, dword [esp + 0xb4]
mov dword [esp + 0x18], edx
mov dword [esp + 0xa8], edx
jmp 0x10038278
mov edx, dword [esp + 0x18]
mov dword [esp + 0xa8], edx
jmp 0x10038278
cmp dword [ebp + 0x20], ecx
ja 0x1003c5eb
test ebx, ebx
je 0x100383b0
cmp ebx, 0x5c
jne 0x100382a0
cmp byte [esi + 1], 0x45
jne 0x100382a0
mov ebp, dword [esp + 0x2c]
xor edi, edi
inc esi
mov dword [esp + 0x20], edi
inc esi
mov dword [esp + 0x14], esi
jmp 0x10038174
test edi, edi
je 0x1003838d
mov eax, dword [esp + 0x94]
test eax, eax
je 0x100382d9
cmp dword [esp + 0x15c], 0
jne 0x100382ce
push ebp
mov edx, esi
mov ecx, eax
call fcn.1003ccc0
mov esi, dword [esp + 0x18]
add esp, 4
mov dword [esp + 0x94], 0
test dword [esp + 0x44], 0x4000
je case.0x100385e6.1
mov eax, dword [esp + 0x18]
mov edx, esi
push ebp
mov ecx, eax
mov dword [esp + 0x98], eax
call fcn.1003ccf0
mov esi, dword [esp + 0x18]
add esp, 4
mov dword [esp + 0x18], eax
cmp dword [esp + 0x38], 0
mov edi, 1
mov byte [esp + 0x7c], bl
je 0x1003833b
cmp ebx, 0xc0
jb 0x1003833b
mov al, byte [esi + 1]
inc esi
and al, 0xc0
cmp al, 0x80
jne 0x1003833b
mov dword [esp + 0x14], esi
movzx eax, byte [esi]
inc esi
mov byte [esp + edi + 0x7c], al
inc edi
movzx eax, byte [esi]
and al, 0xc0
cmp al, 0x80
je 0x10038325
mov esi, dword [esp + 0x38]
mov ebx, dword [ebp + 0x20]
sub ebx, dword [ebp + 0x10]
mov edx, dword [esp + 0x18]
mov dword [esp + 0x64], ebx
mov ebx, dword [esp + 0x44]
mov dword [esp + 0x28], edx
test esi, esi
je 0x1003be7c
test bl, 1
je 0x1003be7f
movzx edx, byte [esp + 0x7c]
cmp edx, 0xc0
jb 0x1003bdfb
test dl, 0x20
jne 0x1003bd5d
movzx eax, byte [esp + 0x7d]
and edx, 0x1f
jmp 0x1003bdf3
cmp ebx, 0x5c
jne 0x100383b0
cmp byte [esi + 1], 0x51
jne 0x100383b0
mov ebp, dword [esp + 0x2c]
inc esi
mov edi, 1
inc esi
mov dword [esp + 0x20], edi
mov dword [esp + 0x14], esi
jmp 0x10038174
mov eax, dword [esp + 0x44]
and eax, 8
mov dword [esp + 0x5c], eax
je 0x100384af
mov edi, dword [esp + 0x158]
mov ebp, esi
mov ecx, ebp
mov eax, dword [edi + 0xc]
test byte [eax + ebx], 1
je 0x100383e9
inc esi
mov dword [esp + 0x14], esi
mov ecx, esi
movzx ebx, byte [esi]
mov dword [esp + 0x34], ebx
test byte [eax + ebx], 1
jne 0x100383d5
cmp ebx, 0x23
jne 0x10038498
lea esi, [ecx + 1]
mov dword [esp + 0x14], esi
mov bl, byte [esi]
test bl, bl
je 0x10038494
mov edx, dword [edi + 0x84]
mov eax, dword [edi + 0x1c]
test edx, edx
je 0x1003843b
cmp esi, eax
jae 0x1003845f
push dword [esp + 0x38]
add edi, 0x88
mov ecx, esi
push edi
push eax
call fcn.10050270
mov esi, dword [esp + 0x20]
add esp, 0xc
test eax, eax
jne 0x1003848c
mov edi, dword [esp + 0x158]
jmp 0x1003845f
mov ecx, dword [edi + 0x88]
sub eax, ecx
cmp esi, eax
ja 0x1003845f
cmp bl, byte [edi + 0x8c]
jne 0x1003845f
cmp ecx, 1
je 0x1003848e
mov al, byte [esi + 1]
cmp al, byte [edi + 0x8d]
je 0x1003848e
inc esi
cmp dword [esp + 0x38], 0
mov dword [esp + 0x14], esi
je 0x10038480
mov al, byte [esi]
and al, 0xc0
cmp al, 0x80
jne 0x10038480
inc esi
mov dword [esp + 0x14], esi
mov al, byte [esi]
and al, 0xc0
cmp al, 0x80
je 0x10038473
mov bl, byte [esi]
test bl, bl
jne 0x10038403
jmp 0x10038494
mov ecx, dword [edi]
add esi, ecx
mov dword [esp + 0x14], esi
mov ebx, dword [esp + 0x34]
mov edx, dword [esp + 0x18]
mov edi, dword [esp + 0x20]
cmp esi, ebp
ja 0x10038170
mov ebp, dword [esp + 0x158]
cmp ebx, 0x28
jne 0x1003851e
cmp byte [esi + 1], 0x3f
jne 0x10038542
cmp byte [esi + 2], 0x23
jne 0x10038542
add esi, 3
mov dword [esp + 0x14], esi
mov al, byte [esi]
test al, al
je 0x100384e4
cmp al, 0x29
je 0x10038507
inc esi
mov dword [esp + 0x14], esi
mov al, byte [esi]
test al, al
jne 0x100384d5
mov eax, dword [esp + 0x13c]
mov dword [eax], 0x12
mov eax, dword [esp + 0x138]
mov dword [eax], esi
xor eax, eax
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x124
ret
cmp byte [esi], 0
je 0x100384e4
mov edx, dword [esp + 0x18]
inc esi
mov ebp, dword [esp + 0x2c]
mov dword [esp + 0x14], esi
jmp 0x10038174
cmp ebx, 0x2a
je 0x1003858d
cmp ebx, 0x2b
je 0x1003858d
cmp ebx, 0x3f
je 0x1003858d
cmp ebx, 0x7b
jne 0x10038542
lea ecx, [esi + 1]
call fcn.1003fa50
mov esi, dword [esp + 0x14]
test eax, eax
jne 0x1003858d
mov ecx, dword [esp + 0x94]
xor edi, edi
mov eax, dword [esp + 0x2c]
test ecx, ecx
je 0x10038596
test eax, eax
jne 0x10038596
mov edx, dword [esp + 0xb8]
mov eax, edx
dec edx
mov dword [esp + 0xb8], edx
test eax, eax
jg 0x10038592
cmp dword [esp + 0x15c], edi
jne 0x10038584
push ebp
mov edx, esi
call fcn.1003ccc0
mov esi, dword [esp + 0x18]
add esp, 4
mov dword [esp + 0x94], edi
jmp 0x10038592
mov edi, 1
mov eax, dword [esp + 0x2c]
mov edx, dword [esp + 0x44]
test edx, 0x4000
je 0x100385d2
test edi, edi
jne 0x100385d2
test eax, eax
jne 0x100385d2
mov eax, dword [esp + 0x18]
mov edx, esi
push ebp
mov ecx, eax
mov dword [esp + 0x98], eax
call fcn.1003ccf0
mov esi, dword [esp + 0x18]
mov ecx, eax
mov edx, dword [esp + 0x48]
add esp, 4
mov dword [esp + 0x18], ecx
jmp 0x100385d6
mov ecx, dword [esp + 0x18]
cmp ebx, 0x7c
ja case.0x100385e6.1
movzx eax, byte [ebx + 0x1003c644]
jmp dword [eax*4 + 0x1003c610]
mov dword [esp + 0x28], 0
test dl, 2
je 0x10038633
cmp dword [esp + 0x3c], 0xfffffffe
jne 0x10038611
mov dword [esp + 0x3c], 0xffffffff
mov dword [esp + 0x74], 0xffffffff
mov byte [ecx], 0x1c
inc ecx
mov dword [esp + 0x18], ecx
mov esi, dword [esp + 0x14]
mov edx, dword [esp + 0x18]
inc esi
mov edi, dword [esp + 0x20]
mov ebp, dword [esp + 0x2c]
mov dword [esp + 0x14], esi
jmp 0x10038174
mov edi, dword [esp + 0x20]
mov ebp, dword [esp + 0x2c]
mov byte [ecx], 0x1b
inc ecx
mov esi, dword [esp + 0x14]
mov edx, ecx
inc esi
mov dword [esp + 0x18], ecx
mov dword [esp + 0x14], esi
jmp 0x10038174
mov edi, dword [esp + 0x20]
test dl, 2
mov ebp, dword [esp + 0x2c]
setne al
mov dword [esp + 0x28], 0
add al, 0x19
mov byte [ecx], al
inc ecx
mov esi, dword [esp + 0x14]
mov edx, ecx
inc esi
mov dword [esp + 0x18], ecx
mov dword [esp + 0x14], esi
jmp 0x10038174
mov ebx, dword [esp + 0x3c]
mov eax, 0xffffffff
mov edi, dword [ebp + 0x20]
cmp ebx, 0xfffffffe
mov dword [esp + 0x28], ecx
cmove ebx, eax
mov eax, dword [esp + 0x78]
sub edi, dword [ebp + 0x10]
mov ebp, dword [esp + 0x2c]
mov dword [esp + 0x8c], eax
mov eax, dword [esp + 0x68]
mov dword [esp + 0x88], eax
mov eax, dword [esp + 0x58]
mov dword [esp + 0x70], eax
mov eax, edx
shr eax, 2
and al, 1
mov dword [esp + 0x64], edi
mov edi, dword [esp + 0x20]
or al, 0xc
mov byte [ecx], al
inc ecx
mov esi, dword [esp + 0x14]
mov edx, ecx
inc esi
mov dword [esp + 0x3c], ebx
mov dword [esp + 0x74], ebx
mov dword [esp + 0x18], ecx
mov dword [esp + 0x14], esi
jmp 0x10038174
test dword [ebp + 0x60], 0x2000000
je case.0x100385e6.1
mov eax, dword [esp + 0x13c]
mov dword [eax], 0x40
mov eax, dword [esp + 0x138]
mov dword [eax], esi
xor eax, eax
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x124
ret
push 6
lea eax, [esi + 1]
push 0x1007ca00
push eax
call fcn.1001c440
add esp, 0xc
test eax, eax
jne 0x10038755
mov ebp, dword [esp + 0x14]
mov esi, str._b__w_
mov edx, dword [esp + 0x18]
add ebp, 7
mov edi, dword [esp + 0x20]
mov dword [esp + 0x2c], ebp
mov dword [esp + 0x14], esi
jmp 0x10038174
mov eax, dword [esp + 0x14]
push 6
inc eax
push str._:_:__
push eax
call fcn.1001c440
add esp, 0xc
test eax, eax
jne 0x1003878f
mov ebp, dword [esp + 0x14]
mov esi, str._b___w_
mov edx, dword [esp + 0x18]
add ebp, 7
mov edi, dword [esp + 0x20]
mov dword [esp + 0x2c], ebp
mov dword [esp + 0x14], esi
jmp 0x10038174
mov eax, dword [ebp + 0x20]
sub eax, dword [ebp + 0x10]
mov esi, dword [esp + 0x14]
mov edi, dword [esp + 0x18]
mov dword [esp + 0x64], eax
mov dword [esp + 0x28], edi
mov al, byte [esi + 1]
cmp al, 0x3a
je 0x100387b4
cmp al, 0x2e
je 0x100387b4
cmp al, 0x3d
jne 0x100387ce
lea edx, [esp + 0x84]
mov ecx, esi
call fcn.1003ce50
mov esi, dword [esp + 0x14]
test eax, eax
jne 0x1003c097
xor ecx, ecx
mov dword [esp + 0x34], ecx
inc esi
mov dword [esp + 0x14], esi
movzx ebx, byte [esi]
cmp ebx, 0x5c
jne 0x1003880f
cmp byte [esi + 1], 0x45
lea eax, [esi + 1]
jne 0x100387ee
mov esi, eax
jmp 0x100387d4
push 3
push 0x1007ca10
push eax
call fcn.1001c440
mov esi, dword [esp + 0x20]
add esp, 0xc
test eax, eax
jne 0x1003887d
mov ecx, dword [esp + 0x34]
add esi, 3
jmp 0x100387d4
test ecx, ecx
jne 0x1003881d
cmp ebx, 0x5e
jne 0x1003881d
lea ecx, [ebx - 0x5d]
jmp 0x100387d0
cmp ebx, 0x5d
jne 0x1003887d
test dword [ebp + 0x60], 0x2000000
je 0x1003887d
mov edx, dword [esp + 0x18]
test ecx, ecx
mov edi, dword [esp + 0x20]
mov ecx, 0xd
mov ebp, dword [esp + 0x2c]
mov eax, 0x9d
cmovne eax, ecx
mov ecx, dword [esp + 0x3c]
mov byte [edx], al
inc edx
mov esi, dword [esp + 0x14]
cmp ecx, 0xfffffffe
mov eax, 0xffffffff
mov dword [esp + 0x18], edx
cmove ecx, eax
mov eax, dword [esp + 0x78]
inc esi
mov dword [esp + 0x3c], ecx
mov dword [esp + 0x8c], eax
mov dword [esp + 0x74], ecx
mov dword [esp + 0x14], esi
jmp 0x10038174
xor ecx, ecx
xor eax, eax
mov dword [esp + 0x4c], ecx
xorps xmm0, xmm0
lea ecx, [edi + 4]
mov dword [esp + 0x70], eax
xor edi, edi
mov dword [esp + 0x30], ecx
xor ebp, ebp
mov dword [esp + 0x24], edi
mov dword [esp + 0x1c], eax
movups xmmword [esp + 0xc4], xmm0
movups xmmword [esp + 0xd4], xmm0
test ebx, ebx
je 0x1003c074
nop word [eax + eax]
cmp dword [esp + 0x38], 0
mov dword [esp + 0x54], edi
mov dword [esp + 0x40], ebp
mov dword [esp + 0x5c], ebp
je 0x100389be
cmp ebx, 0xc0
jb 0x100389be
movzx ebx, byte [esi]
cmp ebx, 0xc0
jb 0x100389be
test bl, 0x20
jne 0x1003890c
movzx eax, byte [esi + 1]
inc esi
and ebx, 0x1f
and eax, 0x3f
shl ebx, 6
or ebx, eax
jmp 0x100389ba
movzx ecx, byte [esi + 1]
movzx eax, byte [esi + 2]
and ecx, 0x3f
and eax, 0x3f
test bl, 0x10
jne 0x10038934
and ebx, 0xf
shl ebx, 6
or ebx, ecx
shl ebx, 6
or ebx, eax
add esi, 2
jmp 0x100389ba
test bl, 8
jne 0x10038957
and ebx, 7
shl ebx, 6
or ebx, ecx
shl ebx, 6
or ebx, eax
movzx eax, byte [esi + 3]
shl ebx, 6
and eax, 0x3f
or ebx, eax
add esi, 3
jmp 0x100389ba
test bl, 4
jne 0x10038986
and ebx, 3
shl ebx, 6
or ebx, ecx
shl ebx, 6
or ebx, eax
movzx eax, byte [esi + 3]
shl ebx, 6
and eax, 0x3f
or ebx, eax
movzx eax, byte [esi + 4]
shl ebx, 6
and eax, 0x3f
or ebx, eax
add esi, 4
jmp 0x100389ba
and ebx, 1
shl ebx, 6
or ebx, ecx
shl ebx, 6
or ebx, eax
movzx eax, byte [esi + 3]
shl ebx, 6
and eax, 0x3f
or ebx, eax
movzx eax, byte [esi + 4]
shl ebx, 6
and eax, 0x3f
or ebx, eax
movzx eax, byte [esi + 5]
shl ebx, 6
and eax, 0x3f
or ebx, eax
add esi, 5
mov dword [esp + 0x14], esi
mov eax, dword [esp + 0x18]
mov edx, dword [esp + 0x30]
add eax, 4
mov ecx, dword [esp + 0x70]
cmp edx, eax
mov edi, dword [esp + 0x5c]
mov eax, 1
cmova ecx, eax
cmp dword [esp + 0x15c], 0
mov dword [esp + 0x70], ecx
je 0x10038a03
mov eax, dword [esp + 0x18]
lea ecx, [eax + 4]
cmp edx, ecx
jbe 0x10038a03
mov eax, dword [esp + 0x15c]
sub edx, ecx
mov dword [esp + 0x30], ecx
add dword [eax], edx
mov edx, dword [esp + 0x20]
test edx, edx
je 0x10038a32
cmp ebx, 0x5c
jne 0x10038d03
cmp byte [esi + 1], 0x45
lea eax, [esi + 1]
jne 0x10038d03
mov edi, dword [esp + 0x24]
xor edx, edx
mov dword [esp + 0x20], edx
mov esi, eax
jmp 0x100392ae
cmp ebx, 0x5b
jne 0x10038caf
mov al, byte [esi + 1]
cmp al, 0x3a
je 0x10038a4e
cmp al, 0x2e
je 0x10038a4e
cmp al, 0x3d
jne 0x10038d03
lea edx, [esp + 0x84]
mov ecx, esi
call fcn.1003ce50
mov esi, dword [esp + 0x14]
test eax, eax
je 0x10038cff
cmp byte [esi + 1], 0x3a
mov eax, dword [esp + 0x158]
mov edi, dword [eax + 8]
jne 0x1003bfcb
lea ecx, [esi + 2]
mov dword [esp + 0x14], ecx
mov bl, byte [ecx]
cmp bl, 0x5e
jne 0x10038a97
inc ecx
mov dword [esp + 0x4c], 1
mov dword [esp + 0x14], ecx
mov edx, dword [esp + 0x84]
sub edx, ecx
call fcn.1003ce00
mov esi, eax
test esi, esi
js 0x1003bfa4
mov eax, dword [esp + 0x44]
test al, 1
je 0x10038abf
xor ecx, ecx
cmp esi, 2
cmovle esi, ecx
test eax, 0x20000000
je 0x10038b64
xor eax, eax
mov ecx, 0xe
cmp bl, 0x5e
cmove eax, ecx
add eax, esi
mov ecx, dword [eax*4 + 0x10064e70]
test ecx, ecx
je 0x10038afc
mov edx, dword [esp + 0x84]
lea esi, [ecx - 1]
mov edi, dword [esp + 0x24]
inc edx
mov dword [esp + 0x2c], edx
jmp 0x100392aa
mov eax, esi
sub eax, 8
je 0x10038bca
sub eax, 1
je 0x10038bc6
sub eax, 1
je 0x10038bc2
cmp bl, 0x5e
jne 0x10038b64
cmp dword [esp + 0x70], 0
jne 0x10038b32
mov eax, dword [esp + 0x84]
cmp byte [eax + 2], 0x5d
je 0x10038b64
mov eax, dword [esp + 0x30]
mov ecx, 0x100
mov byte [eax], 2
mov edx, dword [esp + 0x30]
inc edx
mov dword [esp + 0x30], edx
call fcn.1004f9b0
mov edx, dword [esp + 0x30]
mov ecx, 0x10ffff
add edx, eax
mov dword [esp + 0x30], edx
call fcn.1004f9b0
add dword [esp + 0x30], eax
lea ecx, [esi + esi*2]
mov eax, dword [ecx*4 + 0x100660d0]
mov esi, dword [ecx*4 + 0x100660d8]
movups xmm0, xmmword [eax + edi]
movups xmmword [esp + 0x110], xmm0
movups xmm0, xmmword [eax + edi + 0x10]
mov eax, dword [ecx*4 + 0x100660d4]
movups xmmword [esp + 0x120], xmm0
test eax, eax
js 0x10038c26
xor ecx, ecx
lea edx, [eax + edi]
test esi, esi
js 0x10038c14
nop word [eax + eax]
mov al, byte [edx + ecx]
or byte [esp + ecx + 0x110], al
inc ecx
cmp ecx, 0x20
jb 0x10038bb0
jmp 0x10038c26
mov dl, 0xd
jmp 0x10038bcc
mov dl, 0xc
jmp 0x10038bcc
mov dl, 0xb
mov eax, dword [esp + 0x30]
cmp bl, 0x5e
mov edi, dword [esp + 0x24]
sete cl
add cl, 3
mov byte [eax], cl
mov ecx, 1
mov eax, dword [esp + 0x30]
inc eax
mov dword [esp + 0x1c], ecx
mov dword [esp + 0x30], eax
mov byte [eax], dl
mov eax, dword [esp + 0x30]
mov edx, dword [esp + 0x20]
inc eax
mov dword [esp + 0x30], eax
mov byte [eax], 0
mov esi, dword [esp + 0x84]
inc dword [esp + 0x30]
inc esi
jmp 0x100392b2
mov al, byte [edx + ecx]
not al
and byte [esp + ecx + 0x110], al
inc ecx
cmp ecx, 0x20
jb 0x10038c14
mov eax, esi
neg eax
test esi, esi
cmovns eax, esi
cmp eax, 1
jne 0x10038c3e
and byte [esp + 0x111], 0xc3
jmp 0x10038c4b
cmp eax, 2
jne 0x10038c4b
and byte [esp + 0x11b], 0x7f
xor ecx, ecx
cmp bl, 0x5e
jne 0x10038c80
nop dword [eax]
nop word [eax + eax]
mov al, byte [esp + ecx + 0x110]
not al
or byte [esp + ecx + 0xc4], al
inc ecx
cmp ecx, 0x20
jb 0x10038c60
jmp 0x10038c94
mov al, byte [esp + ecx + 0x110]
or byte [esp + ecx + 0xc4], al
inc ecx
cmp ecx, 0x20
jb 0x10038c80
mov esi, dword [esp + 0x84]
mov edi, 2
inc esi
mov dword [esp + 0x24], edi
mov ebp, 1
jmp 0x100392aa
cmp ebx, 0x5c
jne 0x10038d03
mov ebx, dword [esp + 0x158]
lea edx, [esp + 0xbc]
push 1
push dword [esp + 0x48]
lea ecx, [esp + 0x1c]
push dword [ebx + 0x40]
push dword [esp + 0x148]
call fcn.1003f1f0
mov ecx, dword [esp + 0x14c]
add esp, 0x10
mov esi, eax
cmp dword [ecx], 0
jne 0x1003bfb1
test esi, esi
jne 0x10038d4e
mov ebx, dword [esp + 0xbc]
mov esi, dword [esp + 0x14]
mov edx, dword [esp + 0x20]
cmp byte [esi + 1], 0x5c
jne 0x10038d2b
nop dword [eax]
cmp byte [esi + 2], 0x45
lea eax, [esi + 2]
jne 0x10038d27
mov esi, eax
xor edx, edx
mov dword [esp + 0x14], esi
cmp byte [esi + 1], 0x5c
je 0x10038d10
mov dword [esp + 0x20], edx
mov ecx, esi
cmp ebx, 0xd
je 0x10038d3b
cmp ebx, 0xa
jne 0x10039004
mov ebp, dword [esp + 0x158]
or dword [ebp + 0x64], 0x800
jmp 0x1003900b
cmp esi, 5
jne 0x10038d58
lea ebx, [esi + 3]
jmp 0x10038cfb
cmp esi, 0xc
je 0x1003c00a
cmp esi, 0x1a
jne 0x10038d94
mov esi, dword [esp + 0x14]
cmp byte [esi + 1], 0x5c
jne 0x10038d82
cmp byte [esi + 2], 0x45
jne 0x10038d82
mov edi, dword [esp + 0x24]
add esi, 2
jmp 0x100392aa
mov edi, dword [esp + 0x24]
mov edx, 1
mov dword [esp + 0x20], edx
jmp 0x100392ae
cmp esi, 0x19
je 0x10038df1
add dword [esp + 0x24], 2
lea eax, [esi - 6]
mov edx, dword [ebx + 8]
inc ebp
cmp eax, 0x1c
ja case.0x10038db5.12
movzx eax, byte [eax + 0x1003c6f8]
jmp dword [eax*4 + 0x1003c6c4]
mov esi, dword [esi*4 + 0x10064ddc]
mov ebp, edi
mov ecx, dword [esp + 0x14]
dec esi
mov edi, dword [esp + 0x24]
mov dword [esp + 0x2c], ecx
jmp 0x100392aa
xor ecx, ecx
nop dword [eax]
mov al, byte [edx + ecx + 0x40]
or byte [esp + ecx + 0xc4], al
inc ecx
cmp ecx, 0x20
jb 0x10038de0
mov edi, dword [esp + 0x24]
jmp 0x100392a6
mov dword [esp + 0x4c], 1
xor ecx, ecx
nop dword [eax]
nop dword [eax + eax]
mov al, byte [edx + ecx + 0x40]
not al
or byte [esp + ecx + 0xc4], al
inc ecx
cmp ecx, 0x20
jb 0x10038e10
mov edi, dword [esp + 0x24]
jmp 0x100392a6
xor ecx, ecx
nop
mov al, byte [edx + ecx + 0xa0]
or byte [esp + ecx + 0xc4], al
inc ecx
cmp ecx, 0x20
jb 0x10038e30
mov edi, dword [esp + 0x24]
jmp 0x100392a6
mov dword [esp + 0x4c], 1
xor ecx, ecx
nop word [eax + eax]
mov al, byte [edx + ecx + 0xa0]
not al
or byte [esp + ecx + 0xc4], al
inc ecx
cmp ecx, 0x20
jb 0x10038e60
mov edi, dword [esp + 0x24]
jmp 0x100392a6
lea eax, [esp + 0xc4]
xor esi, esi
sub edx, eax
nop word [eax + eax]
lea ecx, [esp + 0xc4]
add ecx, esi
inc esi
mov al, byte [ecx + edx]
or byte [ecx], al
cmp esi, 0x20
jb 0x10038e90
mov edi, dword [esp + 0x24]
jmp 0x100392a6
lea eax, [esp + 0xc4]
mov dword [esp + 0x4c], 1
xor esi, esi
sub edx, eax
lea ecx, [esp + 0xc4]
add ecx, esi
inc esi
mov al, byte [ecx + edx]
not al
or byte [ecx], al
cmp esi, 0x20
jb 0x10038ec0
mov edi, dword [esp + 0x24]
jmp 0x100392a6
push 0xffffffffffffffff
push 0x10067f00
push ebx
push dword [esp + 0x50]
lea edx, [esp + 0x40]
lea ecx, [esp + 0xd4]
call fcn.1003c940
mov edi, dword [esp + 0x34]
add esp, 0x10
jmp 0x100392a6
push 0x10067f00
push ebx
push dword [esp + 0x4c]
lea edx, [esp + 0x3c]
lea ecx, [esp + 0xd0]
call fcn.1003c8a0
mov edi, dword [esp + 0x30]
add esp, 0xc
jmp 0x100392a6
push 0xffffffffffffffff
push str._n_v_f_r
jmp 0x10038ee6
push str._n_v_f_r
push ebx
push dword [esp + 0x4c]
lea edx, [esp + 0x3c]
lea ecx, [esp + 0xd0]
call fcn.1003c8a0
mov edi, dword [esp + 0x30]
add esp, 0xc
jmp 0x100392a6
push ecx
lea eax, [esp + 0x58]
mov dword [esp + 0x44], 0
push eax
lea eax, [esp + 0x48]
mov dword [esp + 0x5c], 0
push eax
lea edx, [esp + 0x10c]
lea ecx, [esp + 0x20]
call fcn.1003f0d0
add esp, 0xc
test eax, eax
je 0x1003bfb1
xor eax, eax
mov edx, dword [esp + 0x20]
cmp esi, 0x10
mov ebp, edi
mov edi, dword [esp + 0x24]
sete al
cmp eax, dword [esp + 0x100]
mov eax, dword [esp + 0x30]
sete cl
add cl, 3
mov byte [eax], cl
mov ecx, dword [esp + 0x30]
movzx eax, byte [esp + 0x40]
inc ecx
mov dword [esp + 0x30], ecx
mov byte [ecx], al
mov ecx, dword [esp + 0x30]
movzx eax, byte [esp + 0x54]
inc ecx
mov dword [esp + 0x30], ecx
mov byte [ecx], al
mov ecx, 1
inc dword [esp + 0x30]
mov esi, dword [esp + 0x14]
mov dword [esp + 0x1c], ecx
jmp 0x100392b2
test byte [esp + 0x44], 0x40
mov esi, dword [esp + 0x14]
jne 0x1003bfee
movzx ebx, byte [esi]
jmp 0x10038cff
mov ebp, dword [esp + 0x158]
test edx, edx
jne 0x10039258
cmp byte [esi + 1], 0x2d
jne 0x10039258
lea esi, [ecx + 2]
mov dword [esp + 0x14], esi
cmp byte [esi], 0x5c
jne 0x1003907f
nop dword [eax]
cmp byte [esi + 1], 0x45
jne 0x10039044
add esi, 2
mov dword [esp + 0x14], esi
cmp byte [esi], 0x5c
je 0x10039030
jmp 0x1003907f
cmp byte [esi], 0x5c
jne 0x1003907f
nop dword [eax]
cmp byte [esi + 1], 0x51
jne 0x1003907f
add esi, 2
mov dword [esp + 0x14], esi
cmp byte [esi], 0x5c
jne 0x10039076
cmp byte [esi + 1], 0x45
jne 0x10039076
add esi, 2
mov dword [esp + 0x14], esi
cmp byte [esi], 0x5c
je 0x10039050
jmp 0x1003907f
mov edx, 1
mov dword [esp + 0x20], edx
mov al, byte [esi]
test al, al
je 0x10039252
test edx, edx
jne 0x10039095
cmp al, 0x5d
je 0x10039252
cmp dword [esp + 0x38], 0
movzx edx, al
mov dword [esp + 0x90], edx
mov eax, edx
je 0x1003919e
cmp edx, 0xc0
jb 0x1003919e
test al, 0x20
jne 0x100390d1
movzx edx, byte [esi + 1]
inc esi
and eax, 0x1f
and edx, 0x3f
shl eax, 6
or edx, eax
jmp 0x10039191
movzx edx, byte [esi + 1]
and edx, 0x3f
test al, 0x10
jne 0x100390f8
and eax, 0xf
shl eax, 6
or edx, eax
movzx eax, byte [esi + 2]
shl edx, 6
and eax, 0x3f
or edx, eax
add esi, 2
jmp 0x10039191
test al, 8
jne 0x10039121
and eax, 7
shl eax, 6
or edx, eax
movzx eax, byte [esi + 2]
shl edx, 6
and eax, 0x3f
or edx, eax
movzx eax, byte [esi + 3]
shl edx, 6
and eax, 0x3f
or edx, eax
add esi, 3
jmp 0x10039191
test al, 4
jne 0x10039156
and eax, 3
shl eax, 6
or edx, eax
movzx eax, byte [esi + 2]
shl edx, 6
and eax, 0x3f
or edx, eax
movzx eax, byte [esi + 3]
shl edx, 6
and eax, 0x3f
or edx, eax
movzx eax, byte [esi + 4]
shl edx, 6
and eax, 0x3f
or edx, eax
add esi, 4
jmp 0x10039191
and eax, 1
shl eax, 6
or edx, eax
movzx eax, byte [esi + 2]
shl edx, 6
and eax, 0x3f
or edx, eax
movzx eax, byte [esi + 3]
shl edx, 6
and eax, 0x3f
or edx, eax
movzx eax, byte [esi + 4]
shl edx, 6
and eax, 0x3f
or edx, eax
movzx eax, byte [esi + 5]
shl edx, 6
and eax, 0x3f
or edx, eax
add esi, 5
mov dword [esp + 0x90], edx
mov eax, edx
mov dword [esp + 0x14], esi
cmp dword [esp + 0x20], 0
jne 0x1003922b
cmp eax, 0x5c
jne 0x100391f6
mov esi, dword [esp + 0x13c]
lea edx, [esp + 0x90]
push 1
push dword [esp + 0x48]
lea ecx, [esp + 0x1c]
push dword [ebp + 0x40]
push esi
call fcn.1003f1f0
add esp, 0x10
cmp dword [esi], 0
jne 0x1003bfb1
test eax, eax
je 0x10039220
cmp eax, 5
jne 0x1003c031
mov edx, 8
mov dword [esp + 0x90], edx
jmp 0x10039227
cmp eax, 0x5b
jne 0x1003922b
mov al, byte [esi + 1]
cmp al, 0x3a
je 0x1003920a
cmp al, 0x2e
je 0x1003920a
cmp al, 0x3d
jne 0x1003922b
lea edx, [esp + 0x84]
mov ecx, esi
call fcn.1003ce50
test eax, eax
jne 0x1003c02a
mov edx, dword [esp + 0x90]
mov esi, dword [esp + 0x14]
cmp edx, ebx
jb 0x1003c051
je 0x10039258
mov edi, 2
mov dword [esp + 0x24], edi
cmp edx, 0xd
je 0x10039248
cmp edx, 0xa
jne 0x1003924f
or dword [ebp + 0x64], 0x800
push edx
jmp 0x10039287
mov esi, ecx
mov dword [esp + 0x14], esi
mov eax, dword [esp + 0x54]
cmp eax, 2
lea edi, [eax + 1]
cmovge edi, eax
cmp dword [esp + 0x20], 0
mov dword [esp + 0x24], edi
jne 0x10039286
cmp dword [esp + 0x1c], 0
jne 0x10039286
cmp edi, 1
jne 0x10039286
cmp byte [esi + 1], 0x5d
je 0x10039435
push ebx
push ebx
push ebp
push dword [esp + 0x50]
lea edx, [esp + 0x40]
lea ecx, [esp + 0xd4]
call fcn.1003c9c0
mov ebp, eax
add esp, 0x10
add ebp, dword [esp + 0x40]
mov esi, dword [esp + 0x14]
mov edx, dword [esp + 0x20]
mov ecx, dword [esp + 0x1c]
mov eax, dword [esp + 0x2c]
inc esi
mov dword [esp + 0x14], esi
movzx ebx, byte [esi]
test ebx, ebx
jne 0x100392e0
test eax, eax
je 0x1003c074
lea esi, [eax + 1]
mov dword [esp + 0x2c], ebx
mov dword [esp + 0x14], esi
movzx ebx, byte [esi]
test ebx, ebx
je 0x1003c074
cmp ebx, 0x5d
jne 0x100388c0
test edx, edx
jne 0x100388c0
mov edx, dword [esp + 0x18]
mov esi, 1
mov eax, dword [esp + 0x70]
add edx, 4
cmp dword [esp + 0x30], edx
mov ebx, dword [esp + 0x3c]
cmova eax, esi
cmp ebx, 0xfffffffe
mov esi, 0xffffffff
cmove ebx, esi
mov esi, dword [esp + 0x78]
mov dword [esp + 0x3c], ebx
mov dword [esp + 0x74], ebx
mov ebx, dword [esp + 0x68]
mov dword [esp + 0x88], ebx
mov ebx, dword [esp + 0x58]
mov dword [esp + 0x8c], esi
mov dword [esp + 0x70], ebx
test eax, eax
je 0x1003957e
mov eax, dword [esp + 0x44]
test ecx, ecx
mov ecx, dword [esp + 0x4c]
jne 0x10039360
test ecx, ecx
je 0x10039360
test eax, 0x20000000
je 0x10039582
mov ebx, dword [esp + 0x38]
mov edi, dword [esp + 0x34]
test ebx, ebx
je 0x100393b1
test ecx, ecx
je 0x100393b1
test edi, edi
jne 0x100393b1
test eax, 0x20000000
jne 0x100393b1
mov eax, dword [esp + 0x30]
mov byte [eax], 2
mov edx, dword [esp + 0x30]
inc edx
mov dword [esp + 0x30], edx
test ebx, ebx
je 0x100393b1
mov ecx, 0x100
call fcn.1004f9b0
mov edx, dword [esp + 0x30]
mov ecx, 0x10ffff
add edx, eax
mov dword [esp + 0x30], edx
call fcn.1004f9b0
add dword [esp + 0x30], eax
mov eax, dword [esp + 0x30]
mov ecx, dword [esp + 0x18]
mov ebx, dword [esp + 0x1c]
mov byte [eax], 0
inc dword [esp + 0x30]
test edi, edi
mov byte [ecx], 0x70
setne al
mov byte [ecx + 3], al
test ebx, ebx
je 0x100393d8
or al, 4
mov byte [ecx + 3], al
test ebp, ebp
jle 0x1003954b
or byte [ecx + 3], 2
lea esi, [ecx + 4]
mov eax, dword [esp + 0x30]
sub eax, esi
push eax
lea eax, [esi + 0x20]
push esi
push eax
call fcn.1000f9a0
add esp, 0xc
test edi, edi
je 0x10039412
test ebx, ebx
jne 0x10039412
xor ecx, ecx
not byte [esp + ecx + 0xc4]
inc ecx
cmp ecx, 0x20
jb 0x10039405
movups xmm0, xmmword [esp + 0xc4]
movups xmmword [esi], xmm0
movups xmm0, xmmword [esp + 0xd4]
movups xmmword [esi + 0x10], xmm0
mov edx, dword [esp + 0x30]
add edx, 0x20
jmp 0x1003954f
mov eax, dword [esp + 0x68]
inc esi
cmp dword [esp + 0x34], 0
mov dword [esp + 0x88], eax
mov eax, dword [esp + 0x58]
mov dword [esp + 0x14], esi
mov dword [esp + 0x70], eax
je 0x10039510
mov eax, dword [esp + 0x3c]
mov ecx, 0xffffffff
mov edx, dword [esp + 0x38]
cmp eax, 0xfffffffe
cmove eax, ecx
mov dword [esp + 0x3c], eax
mov dword [esp + 0x74], eax
mov eax, dword [esp + 0x44]
test edx, edx
je 0x100394d4
test al, 1
je 0x100394d6
mov eax, ebx
test eax, eax
jns 0x10039488
add eax, 0x7f
sar eax, 7
movzx ecx, byte [eax + 0x10067fd0]
mov eax, ebx
shl ecx, 7
and eax, 0x8000007f
jns 0x100394a3
dec eax
or eax, 0xffffff80
inc eax
add ecx, eax
movzx eax, word [ecx*2 + 0x1006b990]
mov cl, byte [eax*8 + 0x1006a1d3]
test cl, cl
je 0x100394d0
mov eax, dword [esp + 0x18]
lea edx, [eax + 3]
mov word [eax], 0x90f
mov byte [eax + 2], cl
mov dword [esp + 0x18], edx
jmp 0x100395e6
mov eax, dword [esp + 0x44]
test al, 1
mov ecx, dword [esp + 0x18]
setne al
add al, 0x1f
mov byte [ecx], al
lea esi, [ecx + 1]
test edx, edx
je 0x10039502
cmp ebx, 0x7f
jbe 0x10039502
mov edx, esi
mov ecx, ebx
call fcn.1004f9b0
lea edx, [esi + eax]
mov dword [esp + 0x18], edx
jmp 0x100395e6
lea edx, [esi + 1]
mov byte [esi], bl
mov dword [esp + 0x18], edx
jmp 0x100395e6
mov esi, dword [esp + 0x38]
test esi, esi
je 0x10039536
cmp ebx, 0x7f
jbe 0x10039536
lea edx, [esp + 0x7c]
mov ecx, ebx
call fcn.1004f9b0
mov ebp, dword [esp + 0x158]
mov edi, eax
jmp 0x1003833f
mov ebp, dword [esp + 0x158]
mov edi, 1
mov byte [esp + 0x7c], bl
jmp 0x1003833f
mov edx, dword [esp + 0x30]
mov ecx, dword [esp + 0x28]
mov eax, edx
mov edi, dword [esp + 0x20]
sub eax, ecx
mov ebp, dword [esp + 0x2c]
sar eax, 8
mov byte [ecx + 1], al
mov al, dl
sub al, cl
mov dword [esp + 0x18], edx
mov byte [ecx + 2], al
mov esi, dword [esp + 0x14]
inc esi
mov dword [esp + 0x14], esi
jmp 0x10038174
mov ecx, dword [esp + 0x4c]
mov ebx, dword [esp + 0x15c]
test ebx, ebx
je 0x10039595
mov eax, dword [esp + 0x30]
sub eax, edx
add dword [ebx], eax
mov edi, dword [esp + 0x34]
cmp edi, ecx
mov ecx, dword [esp + 0x18]
setne al
add al, 0x6e
mov byte [ecx], al
inc ecx
mov dword [esp + 0x18], ecx
test ebx, ebx
jne 0x100395dd
test edi, edi
je 0x100395c6
xor ecx, ecx
not byte [esp + ecx + 0xc4]
inc ecx
cmp ecx, 0x20
jb 0x100395b5
mov ecx, dword [esp + 0x18]
movups xmm0, xmmword [esp + 0xc4]
movups xmmword [ecx], xmm0
movups xmm0, xmmword [esp + 0xd4]
movups xmmword [ecx + 0x10], xmm0
add ecx, 0x20
mov dword [esp + 0x18], ecx
mov edx, ecx
mov esi, dword [esp + 0x14]
mov eax, dword [esp + 0x78]
inc esi
mov ecx, dword [esp + 0x68]
mov edi, dword [esp + 0x20]
mov ebp, dword [esp + 0x2c]
mov dword [esp + 0x8c], eax
mov eax, dword [esp + 0x58]
mov dword [esp + 0x88], ecx
mov dword [esp + 0x70], eax
mov dword [esp + 0x14], esi
jmp 0x10038174
test edi, edi
je case.0x100385e6.1
mov ebx, dword [esp + 0x13c]
lea eax, [esp + 0x48]
push ebx
push eax
lea ecx, [esi + 1]
lea edx, [esp + 0x68]
call fcn.1003f030
add esp, 8
mov esi, eax
cmp dword [ebx], 0
mov dword [esp + 0x14], esi
jne 0x1003c5f8
mov edi, dword [esp + 0x60]
mov ebp, dword [esp + 0x48]
jmp 0x1003967e
xor edi, edi
or ebp, 0xffffffff
jmp 0x1003966f
mov edi, 1
or ebp, 0xffffffff
jmp 0x1003966f
xor edi, edi
mov ebp, 1
mov ebx, dword [esp + 0x13c]
mov dword [esp + 0x60], edi
mov dword [esp + 0x48], ebp
mov edx, dword [esp + 0x28]
test edx, edx
je 0x1003c0c7
test edi, edi
jne 0x100396b4
mov eax, dword [esp + 0x8c]
mov dword [esp + 0x78], eax
mov eax, dword [esp + 0x74]
mov dword [esp + 0x3c], eax
mov eax, dword [esp + 0x88]
mov dword [esp + 0x68], eax
mov eax, dword [esp + 0x70]
mov dword [esp + 0x58], eax
xor ecx, ecx
mov dword [esp + 0x50], edx
cmp edi, ebp
mov dword [esp + 0x40], ecx
mov eax, 2
cmove eax, ecx
mov dword [esp + 0x98], eax
cmp dword [esp + 0x5c], ecx
je 0x1003979b
mov ebp, dword [esp + 0x158]
inc esi
mov cl, byte [esi]
mov edx, dword [ebp + 0xc]
movzx eax, cl
test byte [eax + edx], 1
je 0x100396fd
nop
mov cl, byte [esi + 1]
inc esi
movzx eax, cl
test byte [eax + edx], 1
jne 0x100396f0
cmp cl, 0x23
jne 0x1003978a
mov bl, byte [esi + 1]
inc esi
test bl, bl
je 0x100396e1
nop
mov edx, dword [ebp + 0x84]
mov eax, dword [ebp + 0x1c]
test edx, edx
je 0x10039741
cmp esi, eax
jae 0x10039765
push dword [esp + 0x38]
lea edi, [ebp + 0x88]
mov ecx, esi
push edi
push eax
call fcn.10050270
add esp, 0xc
test eax, eax
je 0x10039765
mov ecx, dword [edi]
add esi, ecx
jmp 0x100396e1
mov ecx, dword [ebp + 0x88]
sub eax, ecx
cmp esi, eax
ja 0x10039765
cmp bl, byte [ebp + 0x8c]
jne 0x10039765
cmp ecx, 1
je 0x1003973d
mov al, byte [esi + 1]
cmp al, byte [ebp + 0x8d]
je 0x1003973d
inc esi
cmp dword [esp + 0x38], 0
je 0x1003977f
mov al, byte [esi]
and al, 0xc0
cmp al, 0x80
jne 0x1003977f
mov al, byte [esi + 1]
inc esi
and al, 0xc0
cmp al, 0x80
je 0x10039775
mov bl, byte [esi]
test bl, bl
jne 0x10039710
jmp 0x100396e1
mov edi, dword [esp + 0x60]
dec esi
mov ebp, dword [esp + 0x48]
mov edx, dword [esp + 0x28]
mov dword [esp + 0x14], esi
mov cl, byte [esi + 1]
cmp cl, 0x2b
jne 0x100397ba
inc esi
mov dword [esp + 0x1c], 0
mov dword [esp + 0x40], 1
mov dword [esp + 0x14], esi
jmp 0x100397dc
cmp cl, 0x3f
jne 0x100397d1
mov ecx, dword [esp + 0xe8]
inc esi
mov dword [esp + 0x1c], ecx
mov dword [esp + 0x14], esi
jmp 0x100397dc
mov eax, dword [esp + 0xe4]
mov dword [esp + 0x1c], eax
cmp byte [edx], 0x75
jne 0x10039874
push 3
push edx
lea eax, [edx + 3]
push eax
call fcn.1000f9a0
mov edx, dword [esp + 0x34]
add esp, 0xc
add dword [esp + 0x18], 6
cmp dword [esp + 0x15c], 0
mov word [edx], 0x81
mov byte [edx + 2], 6
mov word [edx + 6], 0x78
mov byte [edx + 8], 6
mov dword [esp + 0xa0], 9
jne 0x10039868
mov ebx, dword [esp + 0x158]
mov eax, dword [ebx + 0x10]
mov edx, dword [ebx + 0x20]
add eax, 2
cmp edx, eax
jb 0x10039864
movzx ecx, byte [edx - 2]
movzx eax, byte [edx - 1]
shl ecx, 8
or ecx, eax
mov eax, dword [esp + 0x28]
sub eax, dword [ebx + 0x14]
inc eax
cmp ecx, eax
jne 0x10039864
lea eax, [ecx + 3]
shr eax, 8
add cl, 3
mov byte [edx - 2], al
mov eax, dword [ebx + 0x20]
mov byte [eax - 1], cl
mov edx, dword [esp + 0x28]
mov esi, dword [esp + 0x14]
mov ebp, dword [esp + 0x48]
mov edi, dword [esp + 0x60]
mov bl, byte [edx]
cmp bl, 0x1d
je 0x1003a09c
cmp bl, 0x1e
je 0x1003a09c
cmp bl, 0x1f
je 0x1003a09c
cmp bl, 0x20
je 0x1003a09c
cmp bl, 0x17
jae 0x100398b3
movzx ecx, bl
mov dword [esp + 0x34], 0x34
mov dword [esp + 0x24], ecx
jmp 0x1003a14c
cmp bl, 0x6e
je 0x10039ff0
cmp bl, 0x6f
je 0x10039ff0
cmp bl, 0x70
je 0x10039ff0
cmp bl, 0x71
je 0x10039ff0
cmp bl, 0x72
je 0x10039ff0
cmp bl, 0x73
je 0x10039ff0
cmp bl, 0x74
je 0x10039ff0
cmp bl, 0x7d
jb 0x10039fc8
cmp bl, 0x87
ja 0x10039fc8
mov ecx, dword [esp + 0x64]
mov eax, dword [esp + 0x18]
sub eax, edx
mov dword [esp + 0x54], ecx
xor ecx, ecx
mov dword [esp + 0x24], eax
mov dword [esp + 0x34], 0
mov dword [esp + 0x5c], ecx
cmp bl, 0x87
jne 0x10039933
cmp byte [edx + 3], 0x91
je 0x10039f60
cmp bl, 0x81
jae 0x10039952
test edi, edi
jg 0x10039f60
test ebp, ebp
js 0x10039949
cmp ebp, 1
jle 0x10039952
mov ebp, 1
mov dword [esp + 0x48], ebp
test edi, edi
jne 0x10039a52
mov eax, dword [esp + 0x18]
mov ebx, dword [esp + 0x28]
push dword [esp + 0x64]
mov byte [eax], cl
mov ecx, ebx
cmp ebp, 1
jg 0x100399f7
mov ebp, dword [esp + 0x15c]
mov edx, 1
mov edi, dword [esp + 0x3c]
push ebp
push edi
call fcn.1003cd20
add esp, 0xc
lea esi, [ebx + 1]
push dword [esp + 0x24]
push ebx
push esi
call fcn.1000f9a0
mov edx, dword [esp + 0x24]
add esp, 0xc
inc edx
cmp dword [esp + 0x48], 0
mov dword [esp + 0x18], edx
jne 0x100399d9
mov eax, dword [esp + 0x98]
mov edi, dword [esp + 0x20]
mov byte [ebx], 0xa1
mov esi, dword [esp + 0x14]
or dword [ebp + 0x68], eax
inc esi
mov ebp, dword [esp + 0x2c]
mov dword [esp + 0x28], 0
mov dword [esp + 0x14], esi
jmp 0x10038174
mov al, byte [esp + 0x1c]
sub al, 0x6e
mov dword [esp + 0x28], esi
mov byte [ebx], al
mov ebp, dword [esp + 0x48]
mov esi, dword [esp + 0x14]
dec ebp
mov dword [esp + 0x5c], ebx
jmp 0x10039bcb
push dword [esp + 0x15c]
mov edx, 4
push dword [esp + 0x40]
call fcn.1003cd20
add esp, 0xc
lea eax, [ebx + 4]
push dword [esp + 0x24]
push ebx
push eax
call fcn.1000f9a0
mov al, byte [esp + 0x28]
add esp, 0xc
add dword [esp + 0x18], 4
sub al, 0x6e
mov byte [ebx], al
lea eax, [ebx + 2]
mov byte [ebx + 1], 0x83
mov word [eax], 0
mov ebp, dword [esp + 0x48]
mov esi, dword [esp + 0x14]
mov dword [esp + 0x34], eax
add eax, 2
mov dword [esp + 0x28], eax
dec ebp
jmp 0x10039bcb
cmp edi, 1
jle 0x10039bc5
mov ebx, dword [esp + 0x15c]
test ebx, ebx
je 0x10039ab2
mov eax, dword [esp + 0xa0]
lea ecx, [edi - 1]
movd xmm1, ecx
mov edx, ecx
cvtdq2pd xmm1, xmm1
movd xmm0, eax
cvtdq2pd xmm0, xmm0
imul edx, eax
mulsd xmm1, xmm0
comisd xmm1, xmmword [0x1007ced0]
ja 0x1003c5c8
mov ecx, dword [ebx]
mov eax, 0x7fffffeb
sub eax, ecx
cmp eax, edx
jl 0x1003c5c8
lea eax, [edx + ecx]
mov dword [ebx], eax
jmp 0x10039bc5
cmp dword [esp + 0xb0], ecx
je 0x10039ad1
cmp dword [esp + 0x58], ecx
jge 0x10039ad1
mov ecx, dword [esp + 0x78]
mov dword [esp + 0x68], ecx
mov ecx, dword [esp + 0x3c]
mov dword [esp + 0x58], ecx
mov dword [esp + 0x4c], 1
cmp edi, 1
jle 0x10039bc5
mov ebp, dword [esp + 0x158]
mov ebx, dword [esp + 0x54]
mov ecx, dword [ebp + 0x10]
jmp 0x10039af6
mov eax, dword [esp + 0x24]
mov esi, dword [ebp + 0x20]
push eax
push edx
push dword [esp + 0x20]
sub esi, ecx
call fcn.1000f420
mov ecx, dword [ebp + 0x10]
add esp, 0xc
mov eax, ecx
sub eax, esi
add eax, 0xffffff9c
add eax, dword [ebp + 0x3c]
add eax, ebx
cmp dword [ebp + 0x20], eax
jbe 0x10039b4c
nop dword [eax]
mov ecx, ebp
call fcn.1003fac0
mov ecx, dword [esp + 0x13c]
mov dword [ecx], eax
test eax, eax
jne 0x1003bfb1
mov eax, dword [ebp + 0x3c]
mov ecx, dword [ebp + 0x10]
sub eax, esi
add eax, 0xffffff9c
add eax, ebx
add eax, ecx
cmp dword [ebp + 0x20], eax
ja 0x10039b20
lea edx, [ecx + ebx]
lea eax, [esi + ecx]
cmp edx, eax
jae 0x10039b92
mov ebx, dword [esp + 0x24]
nop word [eax + eax]
movzx ecx, byte [edx]
movzx eax, byte [edx + 1]
shl ecx, 8
or ecx, eax
mov eax, dword [ebp + 0x20]
add ecx, ebx
sar ecx, 8
mov byte [eax], cl
mov cl, byte [edx + 1]
add edx, 2
mov eax, dword [ebp + 0x20]
add cl, bl
mov byte [eax + 1], cl
add dword [ebp + 0x20], 2
mov ecx, dword [ebp + 0x10]
lea eax, [esi + ecx]
cmp edx, eax
jb 0x10039b60
mov eax, dword [esp + 0x18]
mov ebx, esi
add eax, dword [esp + 0x24]
mov edi, dword [esp + 0x60]
mov edx, dword [esp + 0x28]
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0x4c]
inc eax
mov dword [esp + 0x54], ebx
mov dword [esp + 0x4c], eax
cmp eax, edi
jl 0x10039af2
mov ebp, dword [esp + 0x48]
mov esi, dword [esp + 0x14]
test ebp, ebp
jle 0x10039bd1
sub ebp, edi
mov dword [esp + 0x48], ebp
test ebp, ebp
js 0x10039df6
mov ebx, dword [esp + 0x15c]
test ebx, ebx
je 0x10039c35
test ebp, ebp
jle 0x10039c35
mov eax, dword [esp + 0xa0]
add eax, 7
movd xmm0, ebp
cvtdq2pd xmm0, xmm0
mov ecx, eax
movd xmm1, eax
cvtdq2pd xmm1, xmm1
imul ecx, ebp
mulsd xmm1, xmm0
sub ecx, 6
comisd xmm1, xmmword [0x1007ced0]
ja 0x1003c5c8
mov edx, dword [ebx]
mov eax, 0x7fffffeb
sub eax, edx
cmp eax, ecx
jl 0x1003c5c8
lea eax, [ecx + edx]
mov dword [ebx], eax
jmp 0x10039d9e
lea eax, [ebp - 1]
mov dword [esp + 0x4c], eax
test eax, eax
js 0x10039d9e
mov edi, dword [esp + 0x158]
sub byte [esp + 0x1c], 0x6e
mov esi, dword [esp + 0x54]
mov edx, dword [edi + 0x20]
mov ecx, dword [edi + 0x10]
nop word [eax + eax]
mov ebx, dword [esp + 0x34]
sub edx, ecx
mov ecx, dword [esp + 0x1c]
mov ebp, edx
mov edx, dword [esp + 0x18]
mov byte [edx], cl
inc edx
mov dword [esp + 0x18], edx
test eax, eax
je 0x10039ca0
lea ecx, [edx + 1]
mov byte [edx], 0x83
mov eax, ecx
mov dword [esp + 0x34], ecx
sub eax, ebx
lea edx, [ecx + 2]
neg ebx
mov dword [esp + 0x18], edx
sbb ebx, ebx
and ebx, eax
mov eax, ebx
mov byte [ecx + 1], bl
sar eax, 8
mov byte [ecx], al
push dword [esp + 0x24]
push dword [esp + 0x2c]
push edx
call fcn.1000f420
mov ecx, dword [edi + 0x10]
add esp, 0xc
mov edx, dword [edi + 0x20]
mov eax, ecx
sub eax, ebp
add eax, 0xffffff9c
add eax, dword [edi + 0x3c]
add eax, esi
cmp edx, eax
jbe 0x10039cf5
mov ecx, edi
call fcn.1003fac0
mov ecx, dword [esp + 0x13c]
mov dword [ecx], eax
test eax, eax
jne 0x1003bfb1
mov eax, dword [edi + 0x3c]
mov ecx, dword [edi + 0x10]
sub eax, ebp
mov edx, dword [edi + 0x20]
add eax, 0xffffff9c
add eax, esi
add eax, ecx
cmp edx, eax
ja 0x10039cc7
add esi, ecx
lea eax, [ecx + ebp]
cmp esi, eax
jae 0x10039d7b
mov eax, dword [esp + 0x4c]
mov ecx, 1
test eax, eax
mov edx, 4
mov edi, ecx
mov ebx, ecx
cmovne edi, edx
cmovne ebx, edx
nop dword [eax]
movzx ecx, byte [esi]
movzx eax, byte [esi + 1]
mov edx, dword [esp + 0x24]
shl ecx, 8
or ecx, eax
mov eax, dword [esp + 0x158]
add ecx, edx
add ecx, edi
sar ecx, 8
mov eax, dword [eax + 0x20]
mov byte [eax], cl
mov cl, byte [esi + 1]
add esi, 2
mov eax, dword [esp + 0x158]
add cl, bl
add cl, dl
mov eax, dword [eax + 0x20]
mov byte [eax + 1], cl
mov ecx, dword [esp + 0x158]
mov edx, dword [ecx + 0x20]
add edx, 2
mov dword [ecx + 0x20], edx
mov ecx, dword [ecx + 0x10]
lea eax, [ecx + ebp]
cmp esi, eax
jb 0x10039d20
mov edi, dword [esp + 0x158]
mov eax, dword [esp + 0x18]
mov esi, ebp
add eax, dword [esp + 0x24]
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0x4c]
sub eax, 1
mov dword [esp + 0x4c], eax
jns 0x10039c60
mov esi, dword [esp + 0x14]
mov edi, dword [esp + 0x34]
mov ecx, dword [esp + 0x18]
test edi, edi
je 0x10039fa0
nop
mov ebx, ecx
mov edx, ecx
sub ebx, edi
inc ebx
sub edx, ebx
movzx ecx, byte [edx + 1]
movzx eax, byte [edx + 2]
shl ecx, 8
or ecx, eax
mov eax, ebx
sub edi, ecx
neg ecx
sbb ecx, ecx
sar eax, 8
and edi, ecx
mov ecx, dword [esp + 0x18]
mov byte [ecx], 0x78
mov byte [ecx + 1], al
mov byte [ecx + 2], bl
add ecx, 3
mov dword [esp + 0x18], ecx
mov byte [edx + 1], al
mov byte [edx + 2], bl
test edi, edi
jne 0x10039db0
jmp 0x10039f9c
mov edi, dword [esp + 0x18]
movzx ecx, byte [edi - 2]
lea ebp, [edi - 3]
movzx eax, byte [edi - 1]
shl ecx, 8
or ecx, eax
sub ebp, ecx
mov al, byte [ebp]
cmp al, 0x81
je 0x10039e17
cmp al, 0x82
jne 0x10039e25
mov ebx, dword [esp + 0x40]
test ebx, ebx
je 0x10039e29
mov byte [ebp], 0x83
jmp 0x10039e39
mov ebx, dword [esp + 0x40]
cmp al, 0x81
je 0x10039f8f
cmp al, 0x82
je 0x10039f8f
cmp dword [esp + 0x15c], 0
jne 0x10039e88
mov esi, ebp
nop word [eax + eax]
push 0
push dword [esp + 0x15c]
lea edx, [edi - 3]
mov ecx, esi
push dword [esp + 0x40]
call fcn.1003e590
add esp, 0xc
test eax, eax
jne 0x10039e84
movzx ecx, byte [esi + 1]
movzx eax, byte [esi + 2]
shl ecx, 8
or ecx, eax
add esi, ecx
cmp byte [esi], 0x77
je 0x10039e50
jmp 0x10039e88
add byte [ebp], 5
mov dl, byte [ebp]
cmp dl, 0x87
jne 0x10039ea9
movzx ecx, byte [ebp + 1]
movzx eax, byte [ebp + 2]
shl ecx, 8
or ecx, eax
cmp byte [ecx + ebp], 0x77
je 0x10039ea9
mov byte [ebp], 0x8c
mov dl, 0x8c
test ebx, ebx
je 0x10039f53
cmp dl, 0x87
je 0x10039ecd
cmp dl, 0x8c
je 0x10039ecd
inc dl
mov byte [ebp], dl
mov edx, dword [esp + 0x18]
mov byte [edi - 3], 0x7b
jmp 0x10039f3b
push dword [esp + 0x64]
mov eax, dword [esp + 0x1c]
mov edx, 3
push dword [esp + 0x15c]
mov ebx, eax
mov ecx, ebp
push dword [esp + 0x40]
sub ebx, ebp
mov byte [eax], 0
call fcn.1003cd20
add esp, 0xc
lea eax, [ebp + 3]
push ebx
push ebp
push eax
call fcn.1000f9a0
mov edx, dword [esp + 0x24]
add ebx, 3
add esp, 0xc
mov eax, 0x84
cmp byte [ebp], 0x87
mov ecx, 0x89
cmove ecx, eax
mov eax, ebx
mov byte [ebp], cl
mov byte [edx + 3], 0x7b
sar eax, 8
mov byte [edx + 4], al
mov byte [edx + 5], bl
add edx, 6
mov dword [esp + 0x18], edx
mov byte [ebp + 1], al
mov byte [ebp + 2], bl
mov eax, dword [esp + 0x5c]
test eax, eax
je 0x10039f46
mov byte [eax], 0x94
cmp dword [esp + 0x60], 2
jge 0x10039f98
mov esi, dword [esp + 0x14]
jmp 0x10039f64
mov eax, dword [esp + 0x1c]
add al, 0x79
mov byte [edi - 3], al
mov esi, dword [esp + 0x14]
mov edx, dword [esp + 0x18]
mov ebp, dword [esp + 0x158]
mov eax, dword [esp + 0x98]
or dword [ebp + 0x68], eax
inc esi
mov edi, dword [esp + 0x20]
mov ebp, dword [esp + 0x2c]
mov dword [esp + 0x28], 0
mov dword [esp + 0x14], esi
jmp 0x10038174
mov eax, dword [esp + 0x1c]
add al, 0x79
mov byte [edi - 3], al
mov ecx, dword [esp + 0x18]
mov esi, dword [esp + 0x14]
cmp dword [esp + 0x40], 0
je 0x10039f60
mov eax, dword [esp + 0x50]
movzx edx, byte [eax]
lea eax, [edx - 0x1d]
cmp eax, 0x53
ja case.0x10039fc1.33
movzx eax, byte [eax + 0x1003c72c]
jmp dword [eax*4 + 0x1003c718]
cmp bl, 0x9d
je 0x10039f60
mov eax, dword [esp + 0x13c]
mov dword [eax], 0xb
mov eax, dword [esp + 0x138]
mov dword [eax], esi
xor eax, eax
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x124
ret
test ebp, ebp
jne 0x10039ffd
mov dword [esp + 0x18], edx
jmp 0x10039f64
test edi, edi
jne 0x1003a034
cmp ebp, 0xffffffff
jne 0x1003a019
mov ecx, dword [esp + 0x18]
mov eax, dword [esp + 0x1c]
add al, 0x62
mov byte [ecx], al
inc ecx
mov dword [esp + 0x18], ecx
jmp 0x10039f9c
cmp ebp, 1
jne 0x1003a054
mov ecx, dword [esp + 0x18]
mov eax, dword [esp + 0x1c]
add al, 0x66
mov byte [ecx], al
inc ecx
mov dword [esp + 0x18], ecx
jmp 0x10039f9c
cmp edi, 1
jne 0x1003a054
cmp ebp, 0xffffffff
jne 0x1003a054
mov ecx, dword [esp + 0x18]
mov eax, dword [esp + 0x1c]
add al, 0x64
mov byte [ecx], al
inc ecx
mov dword [esp + 0x18], ecx
jmp 0x10039f9c
mov ecx, dword [esp + 0x18]
xor edx, edx
mov eax, dword [esp + 0x1c]
add al, 0x68
mov byte [ecx], al
mov eax, dword [esp + 0x60]
sar eax, 8
mov byte [ecx + 1], al
movzx eax, byte [esp + 0x60]
mov byte [ecx + 2], al
mov eax, dword [esp + 0x48]
cmp eax, 0xffffffff
cmove eax, edx
mov dword [esp + 0x48], eax
sar eax, 8
mov byte [ecx + 3], al
movzx eax, byte [esp + 0x48]
mov byte [ecx + 4], al
add ecx, 5
mov dword [esp + 0x18], ecx
jmp 0x10039f9c
movzx eax, bl
sub eax, 0x1e
je 0x1003a0c6
sub eax, 1
je 0x1003a0bf
sub eax, 1
je 0x1003a0b8
mov dword [esp + 0x34], 0
jmp 0x1003a0cf
mov eax, 0x27
jmp 0x1003a0cb
mov eax, 0x1a
jmp 0x1003a0cb
mov eax, 0xd
mov dword [esp + 0x34], eax
cmp dword [esp + 0x38], 0
je 0x1003a11d
mov ecx, dword [esp + 0x18]
dec ecx
mov al, byte [ecx]
and al, 0xc0
cmp al, 0x80
jne 0x1003a11d
mov al, byte [ecx - 1]
dec ecx
and al, 0xc0
cmp al, 0x80
je 0x1003a0e3
mov eax, dword [esp + 0x18]
sub eax, ecx
push eax
mov dword [esp + 0x28], eax
lea eax, [esp + 0xfc]
push ecx
push eax
call fcn.1000f420
mov ecx, dword [esp + 0x30]
add esp, 0xc
mov edx, dword [esp + 0x28]
or ecx, 0x10000000
mov dword [esp + 0x24], ecx
jmp 0x1003a14c
mov eax, dword [esp + 0x18]
movzx ecx, byte [eax - 1]
mov dword [esp + 0x24], ecx
cmp bl, 0x1e
ja 0x1003a14c
cmp edi, 1
jle 0x1003a14c
mov eax, dword [esp + 0x158]
mov dword [esp + 0x68], ecx
mov eax, dword [eax + 0x68]
or eax, dword [esp + 0x9c]
mov dword [esp + 0x58], eax
cmp bl, 0x10
je 0x1003a168
cmp bl, 0xf
je 0x1003a168
mov dword [esp + 0x54], 0xffffffff
mov dword [esp + 0x4c], 0xffffffff
jmp 0x1003a178
movzx eax, byte [edx + 1]
mov dword [esp + 0x4c], eax
movzx eax, byte [edx + 2]
mov dword [esp + 0x54], eax
mov edx, dword [esp + 0x18]
mov eax, dword [esp + 0x28]
mov dword [esp + 0x18], eax
test ebp, ebp
je 0x10039f60
mov ebx, dword [esp + 0x1c]
mov eax, dword [esp + 0x34]
add ebx, eax
test edi, edi
jne 0x1003a1e8
cmp ebp, 0xffffffff
jne 0x1003a1b0
mov eax, dword [esp + 0x28]
add bl, 0x21
mov byte [eax], bl
lea edi, [eax + 1]
jmp 0x1003a333
cmp ebp, 1
jne 0x1003a1c6
mov eax, dword [esp + 0x28]
add bl, 0x25
mov byte [eax], bl
lea edi, [eax + 1]
jmp 0x1003a333
mov edx, dword [esp + 0x28]
add bl, 0x27
mov byte [edx], bl
lea edi, [edx + 3]
mov eax, dword [esp + 0x48]
sar eax, 8
mov byte [edx + 1], al
mov al, byte [esp + 0x48]
mov byte [edx + 2], al
jmp 0x1003a333
cmp edi, 1
jne 0x1003a231
cmp ebp, 0xffffffff
jne 0x1003a203
mov eax, dword [esp + 0x28]
add bl, 0x23
mov byte [eax], bl
lea edi, [eax + 1]
jmp 0x1003a333
mov dword [esp + 0x18], edx
cmp ebp, 1
je 0x10039f60
add bl, 0x27
lea edi, [edx + 3]
mov byte [edx], bl
mov eax, dword [esp + 0x48]
dec eax
sar eax, 8
mov byte [edx + 1], al
mov al, byte [esp + 0x48]
dec al
mov byte [edx + 2], al
jmp 0x1003a333
mov edx, dword [esp + 0x28]
add al, 0x29
mov byte [edx], al
lea edi, [edx + 3]
mov eax, dword [esp + 0x60]
sar eax, 8
mov byte [edx + 1], al
mov al, byte [esp + 0x60]
mov byte [edx + 2], al
mov eax, dword [esp + 0x48]
test eax, eax
jns 0x1003a2ae
cmp dword [esp + 0x38], 0
je 0x1003a28c
test ecx, 0x10000000
je 0x1003a28c
mov esi, ecx
lea eax, [esp + 0xf8]
and esi, 7
push esi
push eax
push edi
call fcn.1000f420
mov ecx, dword [esp + 0x30]
add edi, esi
add bl, 0x21
add esp, 0xc
mov byte [edi], bl
inc edi
jmp 0x1003a333
mov eax, dword [esp + 0x4c]
mov byte [edi], cl
inc edi
test eax, eax
js 0x1003a2a3
mov edx, dword [esp + 0x54]
mov byte [edi], al
mov byte [edi + 1], dl
add edi, 2
add bl, 0x21
mov byte [edi], bl
inc edi
jmp 0x1003a333
cmp eax, dword [esp + 0x60]
je 0x1003a333
cmp dword [esp + 0x38], 0
je 0x1003a2e4
test ecx, 0x10000000
je 0x1003a2e4
mov esi, ecx
lea eax, [esp + 0xf8]
and esi, 7
push esi
push eax
push edi
call fcn.1000f420
mov ecx, dword [esp + 0x30]
add esp, 0xc
jmp 0x1003a2eb
mov byte [edi], cl
mov esi, 1
mov eax, dword [esp + 0x4c]
add edi, esi
test eax, eax
js 0x1003a301
mov edx, dword [esp + 0x54]
mov byte [edi], al
mov byte [edi + 1], dl
add edi, 2
mov eax, dword [esp + 0x48]
sub eax, dword [esp + 0x60]
mov dword [esp + 0x48], eax
cmp eax, 1
jne 0x1003a31a
add bl, 0x25
mov byte [edi], bl
inc edi
jmp 0x1003a333
add bl, 0x27
mov byte [edi], bl
mov eax, dword [esp + 0x48]
sar eax, 8
mov byte [edi + 1], al
mov al, byte [esp + 0x48]
mov byte [edi + 2], al
add edi, 3
cmp dword [esp + 0x38], 0
je 0x1003a368
test ecx, 0x10000000
je 0x1003a368
and ecx, 7
lea eax, [esp + 0xf8]
push ecx
push eax
push edi
mov dword [esp + 0x30], ecx
call fcn.1000f420
mov eax, dword [esp + 0x30]
add esp, 0xc
lea ecx, [eax + edi]
mov dword [esp + 0x18], ecx
jmp 0x1003a376
lea eax, [edi + 1]
mov byte [edi], cl
mov dword [esp + 0x18], eax
mov eax, 1
mov ecx, dword [esp + 0x4c]
test ecx, ecx
js 0x10039f98
mov byte [eax + edi], cl
mov ecx, dword [esp + 0x54]
mov byte [eax + edi + 1], cl
lea ecx, [edi + 2]
add ecx, eax
mov dword [esp + 0x18], ecx
jmp 0x10039f9c
mov eax, dword [esp + 0x50]
mov al, byte [eax + 3]
cmp al, 0x10
je 0x1003a3be
cmp al, 0xf
je 0x1003a3be
movzx eax, byte [edx + 0x10067470]
xor ecx, ecx
add eax, ecx
add dword [esp + 0x50], eax
jmp 0x1003a427
movzx eax, byte [edx + 0x10067470]
mov ecx, 2
add eax, ecx
add dword [esp + 0x50], eax
jmp 0x1003a427
movzx edx, byte [edx + 0x10067470]
mov eax, dword [esp + 0x50]
add edx, eax
mov edi, dword [esp + 0x38]
mov ecx, dword [esp + 0x18]
mov dword [esp + 0x50], edx
test edi, edi
je 0x1003a42f
mov al, byte [edx - 1]
cmp al, 0xc0
jb 0x1003a42f
movzx eax, al
and eax, 0x3f
movzx eax, byte [eax + 0x10067530]
add eax, edx
mov dword [esp + 0x50], eax
jmp 0x1003a42f
add dword [esp + 0x50], 0x21
jmp case.0x10039fc1.33
mov edx, dword [esp + 0x50]
movzx ecx, byte [edx + 1]
movzx eax, byte [edx + 2]
shl ecx, 8
or ecx, eax
add dword [esp + 0x50], ecx
mov ecx, dword [esp + 0x18]
mov edi, dword [esp + 0x38]
mov edx, dword [esp + 0x50]
mov ebx, ecx
sub ebx, edx
test ebx, ebx
jle 0x10039f60
movzx eax, byte [edx]
cmp eax, 0x76
jae 0x1003a458
mov al, byte [eax + 0x10066050]
test al, al
je 0x1003a458
mov byte [edx], al
jmp 0x10039f5c
push dword [esp + 0x64]
mov ebp, dword [esp + 0x15c]
mov edx, 3
mov byte [ecx], 0
mov ecx, dword [esp + 0x54]
push ebp
push edi
call fcn.1003cd20
mov eax, dword [esp + 0x5c]
add esp, 0xc
push ebx
push eax
add eax, 3
push eax
call fcn.1000f9a0
mov eax, dword [esp + 0x5c]
add ebx, 3
mov edx, dword [esp + 0x24]
mov ecx, ebx
sar ecx, 8
add esp, 0xc
mov byte [eax], 0x81
mov byte [edx + 3], 0x78
mov byte [edx + 4], cl
mov byte [edx + 5], bl
add edx, 6
mov eax, dword [esp + 0x50]
mov dword [esp + 0x18], edx
mov byte [eax + 1], cl
mov eax, dword [esp + 0x50]
mov byte [eax + 2], bl
mov esi, dword [esp + 0x14]
jmp 0x10039f6b
inc esi
mov dword [esp + 0x14], esi
mov edi, esi
mov dl, byte [esi]
cmp dl, 0x2a
jne 0x1003a716
mov al, byte [esi + 1]
cmp al, 0x3a
je 0x1003a4ef
movzx ecx, al
mov eax, dword [ebp + 0xc]
test byte [ecx + eax], 2
je 0x1003a716
mov eax, dword [esp + 0x158]
inc esi
mov dword [esp + 0x14], esi
xor ebp, ebp
mov edx, esi
mov dword [esp + 0x40], 0
mov edi, 0x100662f4
mov dword [esp + 0x5c], edx
mov ecx, dword [eax + 0xc]
movzx eax, byte [esi]
mov dword [esp + 0x54], ebp
mov dword [esp + 0x28], ebp
test byte [eax + ecx], 2
je 0x1003a532
inc esi
mov dword [esp + 0x14], esi
movzx eax, byte [esi]
test byte [eax + ecx], 2
jne 0x1003a524
mov ebx, esi
sub ebx, edx
cmp byte [esi], 0x3a
jne 0x1003a577
inc esi
mov dword [esp + 0x14], esi
mov ebp, esi
mov dword [esp + 0x54], esi
mov al, byte [esi]
test al, al
je 0x1003a55f
nop dword [eax]
cmp al, 0x29
je 0x1003a55f
inc esi
mov dword [esp + 0x14], esi
mov al, byte [esi]
test al, al
jne 0x1003a550
mov edx, esi
sub edx, ebp
mov dword [esp + 0x40], edx
cmp edx, 0xff
ja 0x1003c0e3
mov edx, dword [esp + 0x5c]
cmp byte [esi], 0x29
jne 0x1003c158
xor ebp, ebp
mov esi, 0x10066200
cmp ebx, dword [esi]
jne 0x1003a59a
push ebx
push edi
push edx
call fcn.1001c440
add esp, 0xc
test eax, eax
je 0x1003a5b3
inc edi
inc ebp
add edi, dword [esi]
add esi, 0xc
cmp esi, 0x1006626c
jge 0x1003c154
mov edx, dword [esp + 0x5c]
jmp 0x1003a587
lea ecx, [ebp*2]
add ecx, ebp
mov eax, dword [ecx*4 + 0x10066204]
cmp eax, 0x9e
jne 0x1003a661
mov eax, dword [esp + 0x40]
test eax, eax
jne 0x1003c12d
mov edx, dword [esp + 0x158]
mov ecx, dword [edx + 0x24]
mov dword [edx + 0x6c], 1
test ecx, ecx
je 0x1003a635
mov edx, dword [esp + 0x18]
mov eax, dword [esp + 0x15c]
nop word [eax + eax]
test eax, eax
je 0x1003a609
add dword [eax], 3
jmp 0x1003a624
mov byte [edx], 0xa0
movzx eax, byte [ecx + 5]
mov byte [edx + 1], al
movzx eax, byte [ecx + 4]
mov byte [edx + 2], al
add edx, 3
mov eax, dword [esp + 0x15c]
mov ecx, dword [ecx]
test ecx, ecx
jne 0x1003a600
mov dword [esp + 0x18], edx
mov edx, dword [esp + 0x158]
cmp dword [edx + 0x5c], 0
mov ebx, 0xffffffff
mov ecx, dword [esp + 0x18]
setg al
add al, 0x9e
mov byte [ecx], al
inc ecx
mov dword [esp + 0x18], ecx
mov ecx, dword [esp + 0x3c]
cmp ecx, 0xfffffffe
cmove ecx, ebx
mov dword [esp + 0x3c], ecx
jmp 0x1003a6cf
mov edx, dword [esp + 0x40]
test edx, edx
jne 0x1003a679
test eax, eax
js 0x1003c106
mov ecx, dword [esp + 0x18]
mov byte [ecx], al
jmp 0x1003a6c3
mov ebx, dword [ecx*4 + 0x10066208]
test ebx, ebx
js 0x1003c12d
mov ecx, dword [esp + 0x18]
mov eax, dword [esp + 0x15c]
mov byte [ecx], bl
lea esi, [ecx + 2]
test eax, eax
je 0x1003a6a6
add dword [eax], edx
mov byte [ecx + 1], 0
mov ecx, esi
jmp 0x1003a6be
push edx
push dword [esp + 0x58]
mov byte [ecx + 1], dl
push esi
call fcn.1000f420
mov eax, dword [esp + 0x4c]
add esp, 0xc
lea ecx, [eax + esi]
mov byte [ecx], 0
mov al, bl
mov edx, dword [esp + 0x158]
inc ecx
mov dword [esp + 0x18], ecx
movzx eax, al
add eax, 0xffffff6a
cmp eax, 5
ja case.default.0x1003a6dc
jmp dword [eax*4 + 0x1003c780]
or dword [edx + 0x64], 0x1000
jmp case.default.0x1003a6dc
mov dword [edx + 0x70], 1
cmp ebp, 9
jge 0x1003c154
mov esi, dword [esp + 0x14]
mov edx, dword [esp + 0x18]
inc esi
mov edi, dword [esp + 0x20]
mov ebp, dword [esp + 0x2c]
mov dword [esp + 0x14], esi
jmp 0x10038174
mov ecx, dword [esp + 0x158]
mov eax, 0x85
mov ebx, dword [esp + 0x44]
xor ebp, ebp
mov dword [esp + 0x1c], eax
mov dword [esp + 0x24], ebx
mov eax, dword [ecx + 0x20]
sub eax, dword [ecx + 0x10]
mov dword [esp + 0x64], eax
mov dword [esp + 0x54], ebp
cmp dl, 0x3f
jne 0x1003b081
inc esi
mov dword [esp + 0x14], esi
mov bl, byte [esi]
movzx eax, bl
mov dl, bl
add eax, 0xffffffdf
cmp eax, 0x5b
ja case.0x1003a766.34
movzx eax, byte [eax + 0x1003c7d0]
jmp dword [eax*4 + 0x1003c798]
mov dword [esp + 0x54], 1
mov dword [ecx + 0x7c], 1
mov edx, 0x83
inc esi
mov dword [esp + 0x1c], edx
mov dword [esp + 0x14], esi
jmp 0x1003ab4a
mov edx, esi
mov eax, 0x87
mov dword [esp + 0x84], edx
cmp byte [esi + 1], 0x3f
mov dword [esp + 0x1c], eax
jne 0x1003a7ef
cmp byte [esi + 2], 0x43
jne 0x1003a7ef
mov al, byte [esi + 3]
mov ecx, 3
cmp al, 0x30
jb 0x1003a7cd
nop dword [eax]
cmp al, 0x39
ja 0x1003a7cd
mov al, byte [ecx + esi + 1]
inc ecx
cmp al, 0x30
jae 0x1003a7c0
cmp byte [ecx + esi], 0x29
jne 0x1003a7df
lea edx, [esi + 1]
add edx, ecx
mov dword [esp + 0x84], edx
cmp byte [edx], 0x28
jne 0x1003c17b
mov ecx, dword [esp + 0x158]
cmp byte [edx + 1], 0x3f
jne 0x1003a81e
mov al, byte [edx + 2]
cmp al, 0x3d
je 0x1003a80f
cmp al, 0x21
je 0x1003a80f
cmp al, 0x3c
jne 0x1003a81e
mov al, byte [edx + 3]
cmp al, 0x3d
je 0x1003a80f
cmp al, 0x21
jne 0x1003a81e
mov dword [ecx + 0x80], 1
jmp 0x1003ab46
mov eax, dword [esp + 0x18]
or edi, 0xffffffff
or ebp, edi
mov dword [esp + 0x28], 3
xor edx, edx
mov dword [esp + 0x34], 0
mov ecx, edi
mov byte [eax + 3], 0x8d
mov eax, dword [esp + 0x14]
lea esi, [eax + 1]
mov dword [esp + 0x14], esi
mov al, byte [esi]
cmp al, 0x52
jne 0x1003a86d
cmp byte [esi + 1], 0x26
jne 0x1003a86d
lea eax, [esi + 2]
or ebx, edi
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0x18]
mov byte [eax + 3], 0x8f
mov esi, dword [esp + 0x14]
jmp 0x1003a87f
cmp al, 0x3c
jne 0x1003a92a
mov ebx, 0x3e
inc esi
mov dword [esp + 0x14], esi
mov dword [esp + 0x40], ebx
mov al, byte [esi]
cmp al, 0x30
jb 0x1003a891
cmp al, 0x39
jbe 0x1003c489
mov ecx, dword [esp + 0x158]
movzx eax, al
mov ecx, dword [ecx + 0xc]
test byte [eax + ecx], 0x10
je 0x1003c17b
mov eax, esi
mov dword [esp + 0x34], eax
lea esi, [eax + 1]
mov dword [esp + 0x14], esi
movzx eax, byte [esi]
test byte [eax + ecx], 0x10
je 0x1003a8ce
nop
inc esi
mov dword [esp + 0x14], esi
movzx eax, byte [esi]
test byte [eax + ecx], 0x10
jne 0x1003a8c0
xor ecx, ecx
mov ebp, esi
sub ebp, dword [esp + 0x34]
cmp dword [esp + 0x15c], ecx
setne cl
lea ecx, [ecx*2 + 3]
mov dword [esp + 0x28], ecx
test ebx, ebx
jle 0x1003a98f
mov al, byte [esi]
inc esi
mov dword [esp + 0x14], esi
mov dword [esp + 0x28], ecx
cmp al, bl
je 0x1003a98f
mov eax, dword [esp + 0x13c]
dec esi
mov dword [eax], 0x1a
mov eax, dword [esp + 0x138]
mov dword [eax], esi
xor eax, eax
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x124
ret
cmp al, 0x27
jne 0x1003a938
mov ebx, 0x27
jmp 0x1003a87a
xor ebx, ebx
mov dword [esp + 0x40], ebx
cmp al, 0x2d
je 0x1003a95a
cmp al, 0x2b
je 0x1003a95a
cmp al, 0x30
jb 0x1003a891
cmp al, 0x39
ja 0x1003a883
xor edi, edi
jmp 0x1003a962
inc esi
movzx edi, al
mov dword [esp + 0x14], esi
mov al, byte [esi]
cmp al, 0x30
jb 0x1003a98f
cmp al, 0x39
ja 0x1003a98f
cmp edx, 0xccccccb
jg 0x1003c19e
movzx eax, al
lea edx, [edx + edx*4]
inc esi
lea edx, [edx - 0x18]
mov dword [esp + 0x14], esi
lea edx, [eax + edx*2]
mov al, byte [esi]
cmp al, 0x30
jae 0x1003a968
mov al, byte [esi]
inc esi
mov dword [esp + 0x14], esi
cmp al, 0x29
jne 0x1003a906
cmp dword [esp + 0x15c], 0
jne 0x1003ab3b
test edi, edi
js 0x1003aa11
test edx, edx
jle 0x1003c1de
mov ecx, dword [esp + 0x158]
test edi, edi
je 0x1003a9d4
mov eax, dword [ecx + 0x40]
cmp edi, 0x2d
jne 0x1003a9d2
sub eax, edx
lea edx, [eax + 1]
jmp 0x1003a9d4
add edx, eax
test edx, edx
jle 0x1003b23e
cmp edx, dword [ecx + 0x44]
jg 0x1003b23e
mov ebx, dword [esp + 0x18]
mov eax, edx
mov ebp, dword [esp + 0x28]
mov edi, dword [esp + 0x24]
sar eax, 8
mov byte [ebx + 4], al
mov byte [ebx + 5], dl
mov esi, dword [esp + 0x14]
cmp edx, dword [ecx + 0x4c]
jle 0x1003aa08
mov dword [ecx + 0x4c], edx
mov edx, dword [esp + 0x1c]
jmp 0x1003ab4e
mov eax, dword [esp + 0x158]
xor edi, edi
mov edx, dword [eax + 0x2c]
mov dword [esp + 0x6c], edx
cmp dword [eax + 0x30], edi
jle 0x1003aa71
mov ebx, dword [esp + 0x34]
mov esi, edx
nop dword [eax]
push ebp
lea eax, [esi + 2]
push eax
push ebx
call fcn.1001c440
add esp, 0xc
test eax, eax
jne 0x1003aa48
cmp byte [esi + ebp + 2], al
je 0x1003aa5e
mov eax, dword [esp + 0x158]
inc edi
add esi, dword [eax + 0x34]
mov dword [esp + 0x6c], esi
cmp edi, dword [eax + 0x30]
jl 0x1003aa30
jmp 0x1003aa65
mov eax, dword [esp + 0x158]
mov esi, dword [esp + 0x14]
mov ebx, dword [esp + 0x40]
mov edx, dword [esp + 0x6c]
mov ecx, dword [eax + 0x30]
cmp edi, ecx
jge 0x1003ab9e
mov eax, dword [esp + 0x6c]
mov ebx, 1
movzx edx, byte [edx]
mov esi, dword [esp + 0x158]
shl edx, 8
movzx eax, byte [eax + 1]
or edx, eax
mov dword [esp + 0x98], edi
inc edi
mov dword [esp + 0x5c], edx
cmp edx, dword [esi + 0x4c]
jle 0x1003aaac
mov dword [esi + 0x4c], edx
cmp edi, ecx
jge 0x1003ab28
mov eax, dword [esp + 0x6c]
nop dword [eax + eax]
add eax, dword [esi + 0x34]
mov dword [esp + 0x6c], eax
add eax, 2
push ebp
push eax
push dword [esp + 0x3c]
call fcn.1001c440
add esp, 0xc
test eax, eax
jne 0x1003aaee
mov eax, dword [esp + 0x6c]
cmp byte [eax + ebp + 2], 0
jne 0x1003aaee
inc edi
inc ebx
cmp edi, dword [esi + 0x30]
jl 0x1003aac0
cmp ebx, 1
jle 0x1003ab24
mov edx, dword [esp + 0x18]
mov ecx, dword [esp + 0x98]
mov eax, ecx
mov ebp, dword [esp + 0x28]
sar eax, 8
add ebp, 2
mov byte [edx + 4], al
mov eax, ebx
sar eax, 8
inc byte [edx + 3]
mov byte [edx + 5], cl
mov byte [edx + 6], al
mov byte [edx + 7], bl
mov esi, dword [esp + 0x14]
jmp 0x1003ab3f
mov edx, dword [esp + 0x5c]
mov ecx, dword [esp + 0x18]
mov eax, edx
shr eax, 8
mov byte [ecx + 4], al
mov byte [ecx + 5], dl
mov esi, dword [esp + 0x14]
mov ebp, dword [esp + 0x28]
mov ecx, dword [esp + 0x158]
mov edx, dword [esp + 0x1c]
mov edi, dword [esp + 0x24]
mov ecx, dword [ecx + 0x58]
mov ebx, dword [esp + 0x158]
lea eax, [ecx + 1]
mov dword [ebx + 0x58], eax
cmp ecx, 0xfa
jge 0x1003c3b6
cmp edx, 0x80
ja 0x1003b388
cmp dword [ebx + 0x80], 0
je 0x1003b388
mov eax, dword [esp + 0x18]
mov dword [esp + 0x28], 0
mov dword [ebx + 0x80], 0
jmp 0x1003b39a
test ebx, ebx
jne 0x1003b23e
mov eax, dword [esp + 0x34]
cmp byte [eax], 0x52
jne 0x1003ac15
lea edx, [ebx + 1]
xor ecx, ecx
cmp ebp, edx
jle 0x1003abf8
nop dword [eax + eax]
mov al, byte [edx + eax]
cmp al, 0x30
jb 0x1003b23e
cmp al, 0x39
ja 0x1003b23e
cmp ecx, 0xccccccb
jg 0x1003c3ef
movzx eax, al
lea ecx, [ecx + ecx*4]
lea ecx, [ecx - 0x18]
inc edx
lea ecx, [eax + ecx*2]
mov eax, dword [esp + 0x34]
cmp edx, ebp
jl 0x1003abc0
test ecx, ecx
jne 0x1003abfd
mov ecx, 0xffff
mov edx, dword [esp + 0x18]
mov eax, ecx
sar eax, 8
mov byte [edx + 3], 0x8f
mov byte [edx + 4], al
mov byte [edx + 5], cl
jmp 0x1003ab37
cmp ebp, 6
jne 0x1003b23e
push ebp
push str.DEFINE
push eax
call fcn.1001c440
add esp, 0xc
test eax, eax
jne 0x1003c515
mov eax, dword [esp + 0x18]
mov ebp, 1
mov byte [eax + 3], 0x91
mov esi, dword [esp + 0x14]
jmp 0x1003ab3f
inc dword [ecx + 0x5c]
lea esi, [edi + 2]
mov edx, 0x7d
mov dword [esp + 0x14], esi
mov dword [esp + 0x1c], edx
jmp 0x1003ab4a
inc esi
mov dword [esp + 0x14], esi
cmp byte [esi], 0x29
jne 0x1003ac97
mov al, byte [esi + 1]
cmp al, 0x2a
je 0x1003ac97
cmp al, 0x2b
je 0x1003ac97
cmp al, 0x3f
je 0x1003ac97
cmp al, 0x7b
jne 0x1003aca8
lea ecx, [esi + 2]
call fcn.1003fa50
test eax, eax
je 0x1003aca8
mov esi, dword [esp + 0x14]
mov ecx, dword [esp + 0x158]
inc dword [ecx + 0x5c]
mov edx, 0x7e
mov dword [esp + 0x1c], edx
jmp 0x1003ab4a
mov edx, dword [esp + 0x18]
mov edi, dword [esp + 0x20]
mov dword [esp + 0x28], ebp
mov ebp, dword [esp + 0x2c]
mov byte [edx], 0x9d
inc edx
mov esi, dword [esp + 0x14]
inc esi
mov dword [esp + 0x18], edx
mov dword [esp + 0x14], esi
jmp 0x10038174
mov al, byte [esi + 1]
cmp al, 0x21
je 0x1003ae0a
cmp al, 0x3d
je 0x1003adf2
movzx ecx, al
mov eax, dword [esp + 0x158]
mov eax, dword [eax + 0xc]
test byte [ecx + eax], 0x10
je 0x1003c201
mov ecx, dword [esp + 0x158]
mov dl, bl
inc esi
mov dword [esp + 0x14], esi
mov ebx, esi
mov dword [esp + 0x5c], ebx
mov al, byte [esi]
cmp al, 0x30
jb 0x1003ad1a
cmp al, 0x39
jbe 0x1003c489
mov ecx, dword [ecx + 0xc]
movzx eax, al
test byte [eax + ecx], 0x10
je 0x1003ad34
inc esi
mov dword [esp + 0x14], esi
movzx eax, byte [esi]
test byte [eax + ecx], 0x10
jne 0x1003ad26
mov ebp, esi
sub ebp, ebx
cmp dword [esp + 0x15c], 0
je 0x1003b011
mov eax, dword [esp + 0x158]
mov ecx, 0x3e
mov eax, dword [eax + 0x40]
inc eax
cmp dl, 0x3c
mov dword [esp + 0x40], eax
mov eax, 0x27
cmove eax, ecx
cmp byte [esi], al
jne 0x1003c4cf
mov edx, dword [esp + 0x158]
mov ecx, dword [edx + 0x30]
cmp ecx, 0x7530
jge 0x1003c2e2
lea eax, [ebp + 3]
cmp eax, dword [edx + 0x34]
jle 0x1003ad97
mov dword [edx + 0x34], eax
cmp ebp, 0x20
jg 0x1003c4ac
mov edi, dword [edx + 0x28]
xor ebx, ebx
test ecx, ecx
jle 0x1003af5c
cmp ebp, dword [edi + 4]
jne 0x1003af35
push ebp
push dword [edi]
push dword [esp + 0x64]
call fcn.1001c440
add esp, 0xc
test eax, eax
jne 0x1003af2e
mov eax, dword [esp + 0x40]
cmp dword [edi + 8], eax
je 0x1003af51
test dword [esp + 0x44], 0x80000
je 0x1003c26d
mov edx, dword [esp + 0x158]
mov dword [edx + 0x78], 1
jmp 0x1003af42
inc dword [ecx + 0x5c]
lea esi, [edi + 3]
mov edx, 0x7f
mov dword [esp + 0x14], esi
mov dword [esp + 0x1c], edx
jmp 0x1003ab4a
inc dword [ecx + 0x5c]
lea esi, [edi + 3]
mov edx, 0x80
mov dword [esp + 0x14], esi
mov dword [esp + 0x1c], edx
jmp 0x1003ab4a
mov edx, 0x81
lea esi, [edi + 2]
mov dword [esp + 0x1c], edx
mov dword [esp + 0x14], esi
jmp 0x1003ab4a
mov edx, dword [esp + 0x18]
mov eax, 1
mov dword [esp + 0xb8], eax
xor ecx, ecx
mov dword [esp + 0x94], edx
mov byte [edx], 0x76
mov esi, dword [esp + 0x14]
inc esi
mov dword [esp + 0x14], esi
mov al, byte [esi]
cmp al, 0x30
jb 0x1003ae7d
cmp al, 0x39
ja 0x1003ae7d
movzx eax, al
lea ecx, [ecx + ecx*4]
inc esi
lea ecx, [ecx - 0x18]
mov dword [esp + 0x14], esi
lea ecx, [eax + ecx*2]
mov al, byte [esi]
cmp al, 0x30
jae 0x1003ae62
cmp byte [esi], 0x29
jne 0x1003c24a
cmp ecx, 0xff
jg 0x1003c227
mov byte [edx + 1], cl
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x158]
mov edi, dword [esp + 0x20]
mov dword [esp + 0x28], ebp
sub eax, dword [ecx + 0x18]
inc eax
sar eax, 8
mov byte [edx + 2], al
mov al, byte [esp + 0x14]
sub al, byte [ecx + 0x18]
inc al
mov word [edx + 4], bp
mov ebp, dword [esp + 0x2c]
mov byte [edx + 3], al
add edx, 6
mov esi, dword [esp + 0x14]
inc esi
mov dword [esp + 0x18], edx
mov dword [esp + 0x14], esi
jmp 0x10038174
inc esi
mov dword [esp + 0x14], esi
mov dl, byte [esi]
cmp dl, 0x3d
je 0x1003af18
cmp dl, 0x3e
je 0x1003af18
cmp dl, 0x3c
je case.0x1003a766.39
mov eax, dword [esp + 0x13c]
mov dword [eax], 0x29
mov eax, dword [esp + 0x138]
mov dword [eax], esi
xor eax, eax
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x124
ret
xor ecx, ecx
mov ebx, 0x29
cmp dl, 0x3e
sete cl
mov dword [esp + 0x4c], ecx
jmp 0x1003b70c
mov edx, dword [esp + 0x158]
mov eax, dword [esp + 0x40]
cmp dword [edi + 8], eax
je 0x1003c294
inc ebx
add edi, 0xc
cmp ebx, dword [edx + 0x30]
jl 0x1003ada4
jmp 0x1003af58
mov edx, dword [esp + 0x158]
mov esi, dword [esp + 0x14]
mov eax, dword [edx + 0x30]
cmp ebx, eax
jl 0x1003b011
mov ecx, dword [edx + 0x38]
cmp eax, ecx
jl 0x1003afcf
lea edi, [ecx + ecx]
lea eax, [edi + edi*2]
shl eax, 2
push eax
call fcn.10036a50
mov esi, eax
add esp, 4
test esi, esi
je 0x1003c2bb
mov eax, dword [esp + 0x158]
mov ecx, dword [eax + 0x38]
lea ecx, [ecx + ecx*2]
shl ecx, 2
push ecx
push dword [eax + 0x28]
push esi
call fcn.1000f420
mov edx, dword [esp + 0x164]
add esp, 0xc
cmp dword [edx + 0x38], 0x14
jle 0x1003afc6
push dword [edx + 0x28]
call fcn.10036a40
mov edx, dword [esp + 0x15c]
add esp, 4
mov eax, dword [edx + 0x30]
mov dword [edx + 0x28], esi
mov dword [edx + 0x38], edi
lea ecx, [eax + eax*2]
mov eax, dword [edx + 0x28]
mov edx, dword [esp + 0x5c]
mov dword [eax + ecx*4], edx
mov edx, dword [esp + 0x158]
mov eax, dword [edx + 0x30]
lea ecx, [eax + eax*2]
mov eax, dword [edx + 0x28]
mov dword [eax + ecx*4 + 4], ebp
mov eax, dword [edx + 0x30]
lea ecx, [eax + eax*2]
mov eax, dword [edx + 0x28]
mov edx, dword [esp + 0x40]
mov dword [eax + ecx*4 + 8], edx
mov ecx, dword [esp + 0x158]
mov esi, dword [esp + 0x14]
inc dword [ecx + 0x30]
jmp 0x1003b018
mov ecx, dword [esp + 0x158]
inc esi
mov dword [esp + 0x14], esi
inc dword [ecx + 0x40]
mov ebp, 2
mov eax, dword [ecx + 0x40]
mov edx, dword [esp + 0x18]
shr eax, 8
mov byte [edx + 3], al
mov al, byte [ecx + 0x40]
mov byte [edx + 4], al
mov esi, dword [esp + 0x14]
jmp 0x1003ab46
mov ebx, 0x29
mov dword [esp + 0x4c], 1
jmp 0x1003b70c
inc esi
xor edx, edx
mov dword [esp + 0x14], esi
mov dword [esp + 0x1c], edx
cmp byte [esi], 0x29
jne 0x1003c42e
mov ebp, ecx
jmp 0x1003b8b2
mov edi, dword [esp + 0x13c]
mov ebx, 0x29
mov ebp, ecx
jmp 0x1003b1ba
test ebx, 0x1000
je 0x1003b01d
mov edx, 0x83
mov edi, ebx
mov dword [esp + 0x1c], edx
jmp 0x1003ab4e
mov edi, dword [esp + 0x13c]
lea ecx, [esp + 0x14]
push 0
push edx
push dword [ebp + 0x40]
lea edx, [esp + 0xc8]
mov dword [esp + 0x90], esi
push edi
call fcn.1003f1f0
add esp, 0x10
mov edx, eax
cmp dword [edi], 0
mov dword [esp + 0x1c], edx
jne 0x1003bfb1
test edx, edx
jne 0x1003b106
cmp dword [esp + 0x38], eax
mov eax, dword [esp + 0xbc]
je 0x1003b0f8
cmp eax, 0x7f
jbe 0x1003b0f8
lea edx, [esp + 0x7c]
mov ecx, eax
call fcn.1004f9b0
mov edi, eax
jmp 0x1003833b
mov byte [esp + 0x7c], al
mov edi, 1
jmp 0x1003833b
mov ebx, dword [esp + 0x3c]
cmp ebx, 0xfffffffe
jne 0x1003b121
lea eax, [edx - 6]
cmp eax, 0x10
mov eax, 0xffffffff
cmovbe ebx, eax
mov dword [esp + 0x3c], ebx
mov eax, dword [esp + 0x78]
mov ecx, dword [esp + 0x68]
mov dword [esp + 0x8c], eax
mov eax, dword [esp + 0x58]
mov dword [esp + 0x74], ebx
mov dword [esp + 0x88], ecx
mov dword [esp + 0x70], eax
cmp edx, 0x1b
jne 0x1003b6c3
mov esi, dword [esp + 0x14]
mov ebx, 0x27
mov eax, dword [ebp + 0x20]
inc esi
sub eax, dword [ebp + 0x10]
lea edx, [esi + 1]
mov dword [esp + 0x14], esi
mov dword [esp + 0x64], eax
mov eax, 0x3e
cmp byte [esi], 0x3c
cmove ebx, eax
mov al, byte [edx]
cmp al, 0x2b
je 0x1003b191
cmp al, 0x2d
je 0x1003b191
cmp al, 0x30
jb 0x1003b184
cmp al, 0x39
jbe 0x1003b191
mov dword [esp + 0x4c], 1
jmp 0x1003b70c
mov al, byte [esi + 2]
lea ecx, [esi + 2]
cmp al, 0x30
jb 0x1003b1ac
nop dword [eax + eax]
cmp al, 0x39
ja 0x1003b1ac
mov al, byte [ecx + 1]
inc ecx
cmp al, 0x30
jae 0x1003b1a0
cmp byte [ecx], bl
jne 0x1003c451
mov esi, edx
mov dword [esp + 0x14], esi
mov dl, byte [esi]
cmp dl, 0x2b
jne 0x1003b261
inc esi
mov dword [esp + 0x14], esi
mov al, byte [esi]
cmp al, 0x30
jb 0x1003c305
cmp al, 0x39
ja 0x1003c305
mov al, byte [esi]
xor ecx, ecx
mov dword [esp + 0x1c], ecx
cmp al, 0x30
jb 0x1003b213
cmp al, 0x39
ja 0x1003b213
cmp ecx, 0xccccccb
jg 0x1003c3d9
movzx eax, al
lea ecx, [ecx + ecx*4]
inc esi
lea ecx, [ecx - 0x18]
mov dword [esp + 0x14], esi
lea ecx, [eax + ecx*2]
mov al, byte [esi]
mov dword [esp + 0x1c], ecx
cmp al, 0x30
jae 0x1003b1e8
cmp byte [esi], bl
jne 0x1003c42e
cmp dl, 0x2d
jne 0x1003b6a2
test ecx, ecx
je 0x1003c412
mov edx, dword [ebp + 0x40]
sub edx, ecx
inc edx
mov dword [esp + 0x1c], edx
test edx, edx
jg 0x1003b8b2
mov eax, dword [esp + 0x13c]
mov dword [eax], 0xf
mov eax, dword [esp + 0x138]
mov dword [eax], esi
xor eax, eax
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x124
ret
cmp dl, 0x2d
jne 0x1003b1dc
mov al, byte [esi + 1]
sub al, 0x30
cmp al, 9
ja case.0x1003a766.34
inc esi
mov dword [esp + 0x14], esi
jmp 0x1003b1dc
xor eax, eax
lea ecx, [esp + 0x5c]
xor edi, edi
mov dword [esp + 0x40], eax
mov dword [esp + 0x5c], edi
cmp dl, 0x29
je 0x1003b307
cmp dl, 0x3a
je 0x1003b2ff
movzx eax, dl
inc esi
sub eax, 0x2d
mov dword [esp + 0x14], esi
cmp eax, 0x4b
ja case.0x1003b2b6.46
movzx eax, byte [eax + 0x1003c850]
jmp dword [eax*4 + 0x1003c82c]
lea ecx, [esp + 0x40]
jmp 0x1003b2f8
mov eax, dword [esp + 0x158]
or dword [ecx], 0x80000
or dword [eax + 0x64], 0x400
jmp 0x1003b2f8
or dword [ecx], 1
jmp 0x1003b2f8
or dword [ecx], 2
jmp 0x1003b2f8
or dword [ecx], 4
jmp 0x1003b2f8
or dword [ecx], 8
jmp 0x1003b2f8
or dword [ecx], 0x200
jmp 0x1003b2f8
or dword [ecx], 0x40
mov dl, byte [esi]
cmp dl, 0x29
jne 0x1003b296
mov edi, dword [esp + 0x5c]
mov eax, dword [esp + 0x40]
or edi, dword [esp + 0x44]
not eax
and edi, eax
cmp byte [esi], 0x29
jne 0x1003b364
mov edx, dword [esp + 0x18]
mov eax, edi
mov ebp, dword [esp + 0x2c]
shr eax, 9
and eax, 1
mov dword [esp + 0x44], edi
mov dword [esp + 0xe4], eax
xor eax, 1
mov dword [esp + 0xe8], eax
mov eax, edi
and eax, 1
mov dword [esp + 0x28], 0
mov dword [esp + 0x9c], eax
inc esi
mov eax, dword [esp + 0x104]
mov dword [esp + 0x14], esi
mov dword [eax], edi
mov edi, dword [esp + 0x20]
jmp 0x10038174
mov ecx, dword [esp + 0x158]
inc esi
mov edx, 0x83
mov dword [esp + 0x14], esi
mov dword [esp + 0x1c], edx
xor ebp, ebp
mov dword [esp + 0x54], 0
jmp 0x1003ab4e
mov ecx, dword [ebx + 0x20]
sub ecx, dword [ebx + 0x10]
mov eax, dword [esp + 0x18]
mov dword [esp + 0x28], eax
mov dword [esp + 0x64], ecx
mov byte [eax], dl
mov ebx, dword [ebx + 0x68]
mov dword [esp + 0x50], eax
mov eax, dword [esp + 0x158]
mov dword [esp + 0xa0], 0
mov esi, dword [eax + 0x40]
cmp edx, 0x7f
je 0x1003b3c9
cmp edx, 0x80
je 0x1003b3c9
xor ecx, ecx
jmp 0x1003b3ce
mov ecx, 1
cmp dword [esp + 0x15c], 0
lea eax, [esp + 0xa0]
mov dword [esp + 0x98], 0
cmove eax, dword [esp + 0x98]
push eax
push dword [esp + 0x15c]
lea eax, [esp + 0xac]
push dword [esp + 0x158]
push eax
lea eax, [esp + 0xd0]
push eax
lea eax, [esp + 0xc0]
push eax
lea eax, [esp + 0x104]
push eax
xor eax, eax
cmp edx, 0x87
lea edx, [esp + 0x6c]
sete al
add eax, dword [esp + 0x170]
push eax
push ebp
push dword [esp + 0x78]
lea eax, [esp + 0x3c]
push ecx
push dword [esp + 0x168]
mov ecx, edi
push eax
call fcn.10037bd0
add esp, 0x34
test eax, eax
je 0x1003bfb1
mov eax, dword [esp + 0x158]
mov ebp, dword [esp + 0x1c]
dec dword [eax + 0x58]
cmp ebp, 0x81
jne 0x1003b4ff
cmp dword [eax + 0x40], esi
ja 0x1003b480
mov eax, dword [esp + 0x18]
mov byte [eax], 0x82
mov eax, dword [esp + 0xa4]
mov ecx, dword [esp + 0xac]
mov esi, dword [esp + 0x14]
cmp byte [esi], 0x29
jne 0x1003c393
mov edx, dword [esp + 0x15c]
test edx, edx
je 0x1003b58e
mov edi, dword [esp + 0xa0]
mov ecx, 0x7fffffeb
mov edx, dword [edx]
sub ecx, edx
lea eax, [edi - 6]
cmp ecx, eax
jl 0x1003c5c8
mov ecx, dword [esp + 0x15c]
lea eax, [edi - 6]
mov edi, dword [esp + 0x20]
add eax, edx
mov edx, dword [esp + 0x18]
mov ebp, dword [esp + 0x2c]
mov dword [ecx], eax
mov dword [edx + 1], 0x780300
mov byte [edx + 5], 3
add edx, 6
mov esi, dword [esp + 0x14]
inc esi
mov dword [esp + 0x18], edx
mov dword [esp + 0x14], esi
jmp 0x10038174
cmp ebp, 0x80
ja 0x1003b50a
dec dword [eax + 0x5c]
cmp ebp, 0x87
jne 0x1003b480
cmp dword [esp + 0x15c], 0
jne 0x1003b480
mov edx, dword [esp + 0x18]
xor esi, esi
nop word [eax + eax]
movzx ecx, byte [edx + 1]
mov edi, esi
movzx eax, byte [edx + 2]
inc esi
shl ecx, 8
or ecx, eax
add edx, ecx
cmp byte [edx], 0x78
jne 0x1003b530
mov eax, dword [esp + 0x18]
cmp byte [eax + 3], 0x91
jne 0x1003b564
cmp edi, 1
jge 0x1003c345
mov ebp, 0x91
jmp 0x1003b480
cmp edi, 2
jge 0x1003c36c
cmp esi, 1
jne 0x1003b480
or eax, 0xffffffff
or ecx, eax
mov dword [esp + 0xa4], eax
mov dword [esp + 0xac], ecx
jmp 0x1003b48e
mov edx, dword [esp + 0x50]
mov dword [esp + 0x18], edx
cmp ebp, 0x91
je 0x1003bf69
mov edi, dword [esp + 0x68]
mov dword [esp + 0x88], edi
mov edi, dword [esp + 0x58]
mov dword [esp + 0x70], edi
mov edi, dword [esp + 0x78]
mov dword [esp + 0x8c], edi
mov edi, dword [esp + 0x3c]
mov dword [esp + 0x74], edi
mov dword [esp + 0xb0], 0
cmp ebp, 0x81
jb 0x1003b668
cmp edi, 0xfffffffe
jne 0x1003b61e
test ecx, ecx
js 0x1003b60c
mov ebx, dword [esp + 0xec]
mov dword [esp + 0x78], ebx
mov dword [esp + 0x3c], ecx
mov dword [esp + 0xb0], 1
mov dword [esp + 0x74], 0xffffffff
jmp 0x1003b63f
mov dword [esp + 0x3c], 0xffffffff
mov dword [esp + 0x74], 0xffffffff
jmp 0x1003b63f
test ecx, ecx
js 0x1003b63f
test eax, eax
jns 0x1003b647
mov eax, dword [esp + 0xec]
mov dword [esp + 0xc0], eax
mov eax, ecx
or eax, ebx
mov dword [esp + 0xa4], eax
test eax, eax
js 0x1003bf69
mov ecx, dword [esp + 0xc0]
inc esi
mov edi, dword [esp + 0x20]
mov ebp, dword [esp + 0x2c]
mov dword [esp + 0x68], ecx
mov dword [esp + 0x58], eax
mov dword [esp + 0x14], esi
jmp 0x10038174
cmp ebp, 0x7d
jne 0x1003bf69
test eax, eax
js 0x1003bf69
test ecx, ecx
js 0x1003bf69
mov ecx, dword [esp + 0xc0]
inc esi
mov edi, dword [esp + 0x20]
mov ebp, dword [esp + 0x2c]
mov dword [esp + 0x68], ecx
mov dword [esp + 0x58], eax
mov dword [esp + 0x14], esi
jmp 0x10038174
cmp dl, 0x2b
mov edx, dword [esp + 0x1c]
jne 0x1003b8b2
test edx, edx
je 0x1003c412
add edx, dword [ebp + 0x40]
mov dword [esp + 0x1c], edx
jmp 0x1003b8b2
cmp edx, 0x1c
jne 0x1003bb49
mov esi, dword [esp + 0x14]
mov al, byte [esi + 1]
cmp al, 0x3c
je 0x1003b6e3
cmp al, 0x27
je 0x1003b6e3
cmp al, 0x7b
jne 0x1003c46d
inc esi
mov dword [esp + 0x4c], 0
mov dword [esp + 0x14], esi
mov al, byte [esi]
cmp al, 0x3c
jne 0x1003b6fd
mov ebx, 0x3e
jmp 0x1003b70c
cmp al, 0x27
mov ebx, 0x7d
mov eax, 0x27
cmove ebx, eax
inc esi
mov dword [esp + 0x14], esi
mov ebp, esi
mov al, byte [esi]
cmp al, 0x30
jb 0x1003b721
cmp al, 0x39
jbe 0x1003c489
mov edx, dword [esp + 0x158]
movzx eax, al
mov ecx, dword [edx + 0xc]
test byte [eax + ecx], 0x10
je 0x1003b742
inc esi
mov dword [esp + 0x14], esi
movzx eax, byte [esi]
test byte [eax + ecx], 0x10
jne 0x1003b734
mov ecx, dword [esp + 0x15c]
mov edi, esi
sub edi, ebp
test ecx, ecx
je 0x1003b827
xor edx, edx
mov dword [esp + 0x1c], edx
test edi, edi
je 0x1003c4f2
cmp byte [esi], bl
jne 0x1003c4cf
cmp edi, 0x20
jg 0x1003c4ac
mov ebx, dword [esp + 0x158]
cmp dword [esp + 0x4c], edx
jne 0x1003b784
inc dword [ebx + 0x54]
mov eax, dword [ecx]
add eax, 0xe
mov dword [ecx], eax
cmp dword [ebx + 0x7c], edx
je 0x1003b795
add eax, 0xc
mov dword [ecx], eax
mov esi, dword [ebx + 0x28]
xor eax, eax
mov ebx, dword [ebx + 0x30]
mov dword [esp + 0x34], eax
test ebx, ebx
jle 0x1003b81a
mov ecx, dword [esp + 0x158]
cmp edi, dword [esi + 4]
jne 0x1003b80a
push edi
push dword [esi]
push ebp
call fcn.1001c440
add esp, 0xc
test eax, eax
jne 0x1003b7ff
mov edx, dword [esi + 8]
mov dword [esp + 0x1c], edx
cmp dword [esp + 0x4c], eax
jne 0x1003b8ab
mov ecx, dword [esp + 0x158]
mov ecx, dword [ecx + 0x24]
test ecx, ecx
je 0x1003b803
movzx eax, word [ecx + 4]
cmp eax, edx
je 0x1003b7f4
mov ecx, dword [ecx]
test ecx, ecx
jne 0x1003b7e4
jmp 0x1003b803
mov eax, 1
mov word [ecx + 6], ax
jmp 0x1003b803
mov edx, dword [esp + 0x1c]
mov ecx, dword [esp + 0x158]
inc dword [esp + 0x34]
add esi, 0xc
mov ebx, dword [ecx + 0x30]
cmp dword [esp + 0x34], ebx
jl 0x1003b7b0
mov ebp, dword [esp + 0x34]
mov ecx, dword [esp + 0x6c]
jmp 0x1003b8a0
mov ecx, dword [edx + 0x2c]
xor ebx, ebx
mov dword [esp + 0x6c], ecx
mov dword [esp + 0x34], ebx
cmp dword [edx + 0x30], ebx
jle 0x1003b881
mov esi, ecx
nop dword [eax + eax]
push edi
lea eax, [esi + 2]
push eax
push ebp
call fcn.1001c440
add esp, 0xc
test eax, eax
jne 0x1003b858
cmp byte [esi + edi + 2], al
je 0x1003b86e
mov edx, dword [esp + 0x158]
inc ebx
add esi, dword [edx + 0x34]
mov dword [esp + 0x6c], esi
cmp ebx, dword [edx + 0x30]
jl 0x1003b840
jmp 0x1003b875
mov edx, dword [esp + 0x158]
mov esi, dword [esp + 0x14]
mov ecx, dword [esp + 0x6c]
mov dword [esp + 0x34], ebx
mov ebx, dword [edx + 0x30]
mov ebp, dword [esp + 0x34]
cmp ebp, ebx
jge 0x1003b23e
movzx edx, byte [ecx]
movzx eax, byte [ecx + 1]
shl edx, 8
or edx, eax
mov dword [esp + 0x1c], edx
cmp dword [esp + 0x4c], 0
je 0x1003b9dd
mov ebp, dword [esp + 0x158]
mov edi, dword [ebp + 0x20]
sub edi, dword [ebp + 0x10]
cmp dword [esp + 0x15c], 0
mov ecx, dword [esp + 0x18]
mov ebx, dword [ebp + 0x14]
mov dword [esp + 0x28], ecx
mov dword [esp + 0x64], edi
jne 0x1003b98c
mov esi, dword [esp + 0x38]
mov byte [ecx], 0
test edx, edx
je 0x1003b8f4
mov ecx, dword [ebp + 0x14]
push edx
mov edx, esi
call fcn.1003fb70
mov edx, dword [esp + 0x20]
add esp, 4
mov ebx, eax
test ebx, ebx
jne 0x1003b951
cmp edx, dword [ebp + 0x44]
jg 0x1003c515
mov eax, dword [ebp + 0x10]
mov ebx, dword [ebp + 0x14]
add eax, 0xffffff9c
add eax, dword [ebp + 0x3c]
add ebx, edx
cmp dword [ebp + 0x20], eax
jb 0x1003b92c
mov ecx, ebp
call fcn.1003fac0
mov ecx, dword [esp + 0x13c]
mov dword [ecx], eax
test eax, eax
jne 0x1003bfb1
mov edx, dword [esp + 0x18]
mov ecx, edx
sub ecx, dword [ebp + 0x14]
mov eax, dword [ebp + 0x20]
inc ecx
sar ecx, 8
mov byte [eax], cl
mov cl, dl
sub cl, byte [ebp + 0x14]
mov eax, dword [ebp + 0x20]
inc cl
mov byte [eax + 1], cl
add dword [ebp + 0x20], 2
jmp 0x1003b988
movzx ecx, byte [ebx + 1]
movzx eax, byte [ebx + 2]
shl ecx, 8
or ecx, eax
jne 0x1003b988
cmp dword [esp + 0x154], ecx
jg 0x1003b988
mov edx, dword [esp + 0x18]
mov ecx, ebx
push ebp
push esi
push dword [esp + 0x158]
call fcn.1003e530
add esp, 0xc
test eax, eax
jne 0x1003c51e
mov ecx, dword [esp + 0x18]
mov byte [ecx], 0x75
mov eax, ebx
sub eax, dword [ebp + 0x14]
sar eax, 8
mov byte [ecx + 1], al
sub bl, byte [ebp + 0x14]
mov byte [ecx + 2], bl
add ecx, 3
cmp dword [esp + 0x3c], 0xfffffffe
mov edx, ecx
mov dword [esp + 0x18], ecx
mov dword [esp + 0xb0], 0
jne 0x1003bf65
mov esi, dword [esp + 0x14]
mov edi, dword [esp + 0x20]
inc esi
mov ebp, dword [esp + 0x2c]
mov dword [esp + 0x3c], 0xffffffff
mov dword [esp + 0x14], esi
jmp 0x10038174
cmp dword [esp + 0x15c], 0
jne 0x1003bb5f
mov eax, dword [esp + 0x158]
cmp dword [eax + 0x78], 0
je 0x1003bb5b
mov edi, dword [eax + 0x34]
mov dword [esp + 0x98], ebp
add edi, ecx
inc ebp
mov dword [esp + 0x40], 1
cmp ebp, ebx
jge 0x1003bb5b
lea esi, [ecx + 2]
nop dword [eax]
lea ecx, [edi + 2]
mov eax, esi
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x1003ba45
test dl, dl
je 0x1003ba41
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x1003ba45
add eax, 2
add ecx, 2
test dl, dl
jne 0x1003ba25
xor eax, eax
jmp 0x1003ba4a
sbb eax, eax
or eax, 1
mov ecx, dword [esp + 0x40]
test eax, eax
jne 0x1003ba66
mov eax, dword [esp + 0x158]
inc ecx
inc ebp
mov dword [esp + 0x40], ecx
add edi, dword [eax + 0x34]
cmp ebp, ebx
jl 0x1003ba20
mov ebp, dword [esp + 0x158]
cmp ecx, 1
jle 0x1003bb55
mov eax, dword [esp + 0x3c]
mov edx, 0xffffffff
mov ebx, dword [esp + 0x18]
cmp eax, 0xfffffffe
mov dword [esp + 0x28], ebx
cmove eax, edx
mov edx, dword [esp + 0x98]
mov dword [esp + 0x3c], eax
mov eax, dword [ebp + 0x20]
sub eax, dword [ebp + 0x10]
test byte [esp + 0x44], 1
mov dword [esp + 0x64], eax
setne al
add al, 0x73
mov byte [ebx], al
inc ebx
mov eax, edx
mov dword [esp + 0x18], ebx
shr eax, 8
mov byte [ebx + 1], dl
mov edx, ebx
mov byte [ebx], al
mov eax, ecx
mov ebx, dword [esp + 0x6c]
sar eax, 8
mov byte [edx + 2], al
mov byte [edx + 3], cl
add edx, 4
mov dword [esp + 0x18], edx
cmp ebx, edi
jae 0x1003bf65
mov esi, 1
movzx edx, byte [ebx]
movzx eax, byte [ebx + 1]
shl edx, 8
or edx, eax
mov eax, esi
mov ecx, edx
shl eax, cl
cmp edx, 0x20
cmovae eax, esi
or dword [ebp + 0x50], eax
cmp edx, dword [ebp + 0x4c]
jle 0x1003bb05
mov dword [ebp + 0x4c], edx
mov ecx, dword [ebp + 0x24]
test ecx, ecx
je 0x1003bb24
nop dword [eax]
movzx eax, word [ecx + 4]
cmp eax, edx
je 0x1003bb20
mov ecx, dword [ecx]
test ecx, ecx
jne 0x1003bb10
jmp 0x1003bb24
mov word [ecx + 6], si
add ebx, dword [ebp + 0x34]
cmp ebx, edi
jb 0x1003bae2
mov esi, dword [esp + 0x14]
mov edx, dword [esp + 0x18]
inc esi
mov edi, dword [esp + 0x20]
mov ebp, dword [esp + 0x2c]
mov dword [esp + 0x6c], ebx
mov dword [esp + 0x14], esi
jmp 0x10038174
test edx, edx
jns 0x1003bc16
neg edx
jmp 0x1003bb6a
mov edx, dword [esp + 0x1c]
jmp 0x1003bb66
mov ebp, eax
jmp 0x1003bb66
mov ebp, dword [esp + 0x158]
mov ebx, dword [esp + 0x3c]
mov ecx, dword [esp + 0x18]
cmp ebx, 0xfffffffe
mov eax, 0xffffffff
mov dword [esp + 0x28], ecx
cmove ebx, eax
mov eax, dword [ebp + 0x20]
sub eax, dword [ebp + 0x10]
test byte [esp + 0x44], 1
mov dword [esp + 0x64], eax
setne al
mov dword [esp + 0x3c], ebx
add al, 0x71
mov ebx, 1
mov byte [ecx], al
mov eax, edx
sar eax, 8
mov byte [ecx + 1], al
mov eax, ebx
mov byte [ecx + 2], dl
add ecx, 3
mov dword [esp + 0x18], ecx
mov ecx, edx
shl eax, cl
cmp edx, 0x20
cmovge eax, ebx
or dword [ebp + 0x50], eax
cmp edx, dword [ebp + 0x4c]
jle 0x1003bbc5
mov dword [ebp + 0x4c], edx
mov ecx, dword [ebp + 0x24]
test ecx, ecx
je 0x10038619
movzx eax, word [ecx + 4]
cmp eax, edx
je 0x1003bbf8
mov ecx, dword [ecx]
test ecx, ecx
jne 0x1003bbd0
mov esi, dword [esp + 0x14]
mov edx, dword [esp + 0x18]
inc esi
mov edi, dword [esp + 0x20]
mov ebp, dword [esp + 0x2c]
mov dword [esp + 0x14], esi
jmp 0x10038174
mov edx, dword [esp + 0x18]
mov edi, dword [esp + 0x20]
mov ebp, dword [esp + 0x2c]
mov word [ecx + 6], bx
mov esi, dword [esp + 0x14]
inc esi
mov dword [esp + 0x14], esi
jmp 0x10038174
cmp edx, 0xf
je 0x1003bcbe
cmp edx, 0x10
je 0x1003bcbe
cmp edx, 5
je 0x1003bc37
cmp edx, 4
je 0x1003bc37
cmp edx, 1
jne 0x1003bc44
cmp dword [ebp + 0x48], 0
jne 0x1003bc44
mov dword [ebp + 0x48], 1
lea esi, [edx - 0x1d]
cmp esi, 5
ja 0x1003bc6f
mov esi, dword [esi*4 + 0x10064e50]
mov ebp, dword [esp + 0x14]
dec esi
mov edx, dword [esp + 0x18]
inc ebp
mov edi, dword [esp + 0x20]
inc esi
mov dword [esp + 0x2c], ebp
mov dword [esp + 0x14], esi
jmp 0x10038174
mov edi, dword [ebp + 0x20]
lea eax, [edx - 6]
xor ecx, ecx
cmp eax, 0x10
mov eax, dword [esp + 0x18]
cmovbe ecx, eax
sub edi, dword [ebp + 0x10]
cmp dword [esp + 0x38], 0
mov dword [esp + 0x28], ecx
mov dword [esp + 0x64], edi
jne 0x1003bc9d
cmp edx, 0xe
jne 0x1003bc9d
mov edx, 0xd
mov edi, dword [esp + 0x20]
mov ebp, dword [esp + 0x2c]
mov byte [eax], dl
mov edx, dword [esp + 0x18]
mov esi, dword [esp + 0x14]
inc edx
inc esi
mov dword [esp + 0x18], edx
mov dword [esp + 0x14], esi
jmp 0x10038174
push edi
lea eax, [esp + 0xf8]
mov dword [esp + 0xf4], 0
push eax
lea eax, [esp + 0xf8]
mov dword [esp + 0xfc], 0
push eax
lea edx, [esp + 0x114]
lea ecx, [esp + 0x20]
call fcn.1003f0d0
add esp, 0xc
test eax, eax
je 0x1003bfb1
mov edi, dword [ebp + 0x20]
xor eax, eax
sub edi, dword [ebp + 0x10]
cmp dword [esp + 0x1c], 0x10
mov edx, dword [esp + 0x18]
mov ebp, dword [esp + 0x2c]
sete al
cmp eax, dword [esp + 0x108]
mov dword [esp + 0x28], edx
setne al
mov dword [esp + 0x64], edi
mov edi, dword [esp + 0x20]
add al, 0xf
mov byte [edx], al
movzx eax, byte [esp + 0xf0]
mov byte [edx + 1], al
movzx eax, byte [esp + 0xf4]
mov byte [edx + 2], al
add edx, 3
mov esi, dword [esp + 0x14]
inc esi
mov dword [esp + 0x18], edx
mov dword [esp + 0x14], esi
jmp 0x10038174
movzx ecx, byte [esp + 0x7d]
movzx eax, byte [esp + 0x7e]
and ecx, 0x3f
test dl, 0x10
jne 0x1003bd7c
and edx, 0xf
shl edx, 6
or edx, ecx
jmp 0x1003bdf3
and eax, 0x3f
test dl, 8
jne 0x1003bd98
and edx, 7
shl edx, 6
or edx, ecx
shl edx, 6
or edx, eax
movzx eax, byte [esp + 0x7f]
jmp 0x1003bdf3
test dl, 4
jne 0x1003bdc1
and edx, 3
shl edx, 6
or edx, ecx
shl edx, 6
or edx, eax
movzx eax, byte [esp + 0x7f]
and eax, 0x3f
shl edx, 6
or edx, eax
movzx eax, byte [esp + 0x80]
jmp 0x1003bdf3
and edx, 1
shl edx, 6
or edx, ecx
shl edx, 6
or edx, eax
movzx eax, byte [esp + 0x7f]
and eax, 0x3f
shl edx, 6
or edx, eax
movzx eax, byte [esp + 0x80]
and eax, 0x3f
shl edx, 6
or edx, eax
movzx eax, byte [esp + 0x81]
and eax, 0x3f
shl edx, 6
or edx, eax
mov eax, edx
test eax, eax
jns 0x1003be04
add eax, 0x7f
sar eax, 7
movzx eax, byte [eax + 0x10067fd0]
shl eax, 7
and edx, 0x8000007f
jns 0x1003be1e
dec edx
or edx, 0xffffff80
inc edx
add eax, edx
movzx eax, word [eax*2 + 0x1006b990]
movzx ecx, byte [eax*8 + 0x1006a1d3]
test ecx, ecx
je 0x1003be78
cmp dword [esp + 0x3c], 0xfffffffe
mov eax, dword [esp + 0x18]
lea edx, [eax + 3]
mov word [eax], 0x910
mov byte [eax + 2], cl
mov dword [esp + 0x18], edx
jne 0x1003bf65
mov esi, dword [esp + 0x14]
mov edi, dword [esp + 0x20]
inc esi
mov ebp, dword [esp + 0x2c]
mov dword [esp + 0x74], 0xffffffff
mov dword [esp + 0x3c], 0xffffffff
mov dword [esp + 0x14], esi
jmp 0x10038174
mov edx, dword [esp + 0x18]
test bl, 1
setne al
xor ecx, ecx
add al, 0x1d
mov byte [edx], al
inc edx
mov dword [esp + 0x18], edx
test edi, edi
je 0x1003bea1
mov al, byte [esp + ecx + 0x7c]
inc ecx
mov byte [edx], al
inc edx
cmp ecx, edi
jb 0x1003be91
mov dword [esp + 0x18], edx
mov al, byte [esp + 0x7c]
cmp al, 0xd
je 0x1003bead
cmp al, 0xa
jne 0x1003beb4
or dword [ebp + 0x64], 0x800
mov ebx, dword [esp + 0x3c]
mov ecx, dword [esp + 0x68]
mov dword [esp + 0x88], ecx
cmp ebx, 0xfffffffe
jne 0x1003bf29
mov ecx, dword [esp + 0x58]
mov dword [esp + 0x74], 0xffffffff
mov dword [esp + 0x70], ecx
cmp edi, 1
je 0x1003bf0d
cmp dword [esp + 0x9c], 0
je 0x1003bf0d
mov esi, dword [esp + 0x14]
mov edi, dword [esp + 0x20]
inc esi
mov ebp, dword [esp + 0x2c]
mov dword [esp + 0x58], 0xffffffff
mov dword [esp + 0x3c], 0xffffffff
mov dword [esp + 0x14], esi
jmp 0x10038174
movzx eax, al
mov dword [esp + 0x78], eax
mov eax, dword [esp + 0x9c]
mov dword [esp + 0x3c], eax
cmp edi, 1
je 0x1003bf65
mov eax, dword [ebp + 0x68]
jmp 0x1003bf59
mov eax, dword [esp + 0x78]
mov dword [esp + 0x8c], eax
mov eax, dword [esp + 0x58]
mov dword [esp + 0x74], ebx
mov dword [esp + 0x70], eax
cmp edi, 1
je 0x1003bf4f
cmp dword [esp + 0x9c], 0
jne 0x1003bf65
mov eax, dword [ebp + 0x68]
or eax, dword [esp + 0x9c]
movzx ecx, byte [edx - 1]
mov dword [esp + 0x58], eax
mov dword [esp + 0x68], ecx
mov esi, dword [esp + 0x14]
mov edi, dword [esp + 0x20]
inc esi
mov ebp, dword [esp + 0x2c]
mov dword [esp + 0x14], esi
jmp 0x10038174
cmp edx, ecx
mov ecx, dword [esp + 0x13c]
sbb eax, eax
and eax, 0x23
add eax, 0x34
mov dword [ecx], eax
mov eax, dword [esp + 0x138]
mov dword [eax], esi
xor eax, eax
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x124
ret
mov eax, dword [esp + 0x13c]
mov dword [eax], 0x1e
mov eax, dword [esp + 0x138]
mov esi, dword [esp + 0x14]
mov dword [eax], esi
xor eax, eax
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x124
ret
mov eax, dword [esp + 0x13c]
mov dword [eax], 0x1f
mov eax, dword [esp + 0x138]
mov dword [eax], esi
xor eax, eax
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x124
ret
mov eax, dword [esp + 0x138]
mov dword [ecx], 7
mov dword [eax], esi
xor eax, eax
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x124
ret
mov eax, dword [esp + 0x138]
mov esi, dword [esp + 0x14]
mov dword [ecx], 0x47
mov dword [eax], esi
xor eax, eax
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x124
ret
mov esi, dword [esp + 0x13c]
mov eax, dword [esp + 0x138]
mov dword [esi], 0x53
mov esi, dword [esp + 0x14]
mov dword [eax], esi
xor eax, eax
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x124
ret
mov eax, dword [esp + 0x13c]
mov dword [eax], 8
mov eax, dword [esp + 0x138]
mov dword [eax], esi
xor eax, eax
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x124
ret
mov eax, dword [esp + 0x13c]
mov dword [eax], 6
mov eax, dword [esp + 0x138]
mov dword [eax], esi
xor eax, eax
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x124
ret
cmp byte [esi + 1], 0x3a
mov ecx, 0xd
mov eax, 0x1f
cmove eax, ecx
mov ecx, dword [esp + 0x13c]
mov dword [ecx], eax
mov eax, dword [esp + 0x138]
mov dword [eax], esi
xor eax, eax
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x124
ret
mov eax, dword [esp + 0x138]
mov dword [ebx], 9
mov dword [eax], esi
xor eax, eax
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x124
ret
mov eax, dword [esp + 0x13c]
mov dword [eax], 0x4b
mov eax, dword [esp + 0x138]
mov dword [eax], esi
xor eax, eax
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x124
ret
mov eax, dword [esp + 0x13c]
mov esi, dword [esp + 0x14]
mov dword [eax], 0x42
mov eax, dword [esp + 0x138]
mov dword [eax], esi
xor eax, eax
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x124
ret
mov eax, dword [esp + 0x13c]
mov esi, dword [esp + 0x14]
mov dword [eax], 0x3b
mov eax, dword [esp + 0x138]
mov dword [eax], esi
xor eax, eax
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x124
ret
mov esi, dword [esp + 0x14]
mov eax, dword [esp + 0x13c]
mov dword [eax], 0x3c
mov eax, dword [esp + 0x138]
mov dword [eax], esi
xor eax, eax
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x124
ret
mov eax, dword [esp + 0x13c]
mov dword [eax], 0x1c
mov eax, dword [esp + 0x138]
mov dword [eax], esi
xor eax, eax
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x124
ret
mov al, byte [esi]
cmp al, 0x30
jb 0x1003c3ef
cmp al, 0x39
ja 0x1003c3ef
inc esi
mov dword [esp + 0x14], esi
mov al, byte [esi]
cmp al, 0x30
jae 0x1003c1a8
mov eax, dword [esp + 0x13c]
mov dword [eax], 0x3d
mov eax, dword [esp + 0x138]
mov dword [eax], esi
xor eax, eax
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x124
ret
mov eax, dword [esp + 0x13c]
mov dword [eax], 0x23
mov eax, dword [esp + 0x138]
mov dword [eax], esi
xor eax, eax
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x124
ret
mov eax, dword [esp + 0x13c]
lea esi, [edi + 2]
mov dword [eax], 0x18
mov eax, dword [esp + 0x138]
mov dword [eax], esi
xor eax, eax
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x124
ret
mov eax, dword [esp + 0x13c]
mov dword [eax], 0x26
mov eax, dword [esp + 0x138]
mov dword [eax], esi
xor eax, eax
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x124
ret
mov eax, dword [esp + 0x13c]
mov dword [eax], 0x27
mov eax, dword [esp + 0x138]
mov dword [eax], esi
xor eax, eax
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x124
ret
mov eax, dword [esp + 0x13c]
mov esi, dword [esp + 0x14]
mov dword [eax], 0x2b
mov eax, dword [esp + 0x138]
mov dword [eax], esi
xor eax, eax
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x124
ret
mov eax, dword [esp + 0x13c]
mov esi, dword [esp + 0x14]
mov dword [eax], 0x41
mov eax, dword [esp + 0x138]
mov dword [eax], esi
xor eax, eax
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x124
ret
mov eax, dword [esp + 0x13c]
mov esi, dword [esp + 0x14]
mov dword [eax], 0x15
mov eax, dword [esp + 0x138]
mov dword [eax], esi
xor eax, eax
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x124
ret
mov eax, dword [esp + 0x13c]
mov dword [eax], 0x31
mov eax, dword [esp + 0x138]
mov dword [eax], esi
xor eax, eax
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x124
ret
mov eax, dword [esp + 0x138]
mov dword [edi], 0x3f
mov dword [eax], esi
xor eax, eax
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x124
ret
mov eax, dword [esp + 0x13c]
dec esi
mov dword [eax], 0xc
mov eax, dword [esp + 0x138]
mov dword [eax], esi
xor eax, eax
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x124
ret
mov eax, dword [esp + 0x13c]
mov esi, dword [esp + 0x14]
mov dword [eax], 0x36
mov eax, dword [esp + 0x138]
mov dword [eax], esi
xor eax, eax
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x124
ret
mov eax, dword [esp + 0x13c]
mov esi, dword [esp + 0x14]
mov dword [eax], 0x1b
mov eax, dword [esp + 0x138]
mov dword [eax], esi
xor eax, eax
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x124
ret
mov eax, dword [esp + 0x13c]
mov dword [eax], 0xe
mov eax, dword [esp + 0x138]
mov dword [eax], esi
xor eax, eax
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x124
ret
mov eax, dword [esp + 0x13c]
mov dword [eax], 0x52
mov eax, dword [esp + 0x138]
mov dword [eax], esi
xor eax, eax
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x124
ret
mov al, byte [esi]
cmp al, 0x30
jb 0x1003c3ef
nop
cmp al, 0x39
ja 0x1003c3ef
inc esi
mov dword [esp + 0x14], esi
mov al, byte [esi]
cmp al, 0x30
jae 0x1003c3e0
mov eax, dword [esp + 0x13c]
mov dword [eax], 0x3d
mov eax, dword [esp + 0x138]
mov dword [eax], esi
xor eax, eax
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x124
ret
mov eax, dword [esp + 0x138]
mov dword [edi], 0x3a
mov dword [eax], esi
xor eax, eax
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x124
ret
mov eax, dword [esp + 0x13c]
mov dword [eax], 0x1d
mov eax, dword [esp + 0x138]
mov dword [eax], esi
xor eax, eax
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x124
ret
mov eax, dword [esp + 0x138]
mov dword [edi], 0x39
mov dword [eax], esi
xor eax, eax
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x124
ret
mov eax, dword [esp + 0x138]
mov dword [edi], 0x45
mov dword [eax], esi
xor eax, eax
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x124
ret
mov eax, dword [esp + 0x13c]
mov dword [eax], 0x54
mov eax, dword [esp + 0x138]
mov dword [eax], esi
xor eax, eax
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x124
ret
mov eax, dword [esp + 0x13c]
mov dword [eax], 0x30
mov eax, dword [esp + 0x138]
mov dword [eax], esi
xor eax, eax
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x124
ret
mov eax, dword [esp + 0x13c]
mov dword [eax], 0x2a
mov eax, dword [esp + 0x138]
mov dword [eax], esi
xor eax, eax
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x124
ret
mov eax, dword [esp + 0x13c]
mov dword [eax], 0x3e
mov eax, dword [esp + 0x138]
mov dword [eax], esi
xor eax, eax
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x124
ret
mov esi, dword [esp + 0x14]
jmp 0x1003b23e
mov eax, dword [esp + 0x13c]
mov esi, dword [esp + 0x14]
mov dword [eax], 0x28
mov eax, dword [esp + 0x138]
mov dword [eax], esi
xor eax, eax
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x124
ret
mov eax, dword [esp + 0x140]
mov edx, dword [esp + 0x78]
mov ebx, dword [esp + 0x15c]
mov dword [eax], edx
mov eax, dword [esp + 0x144]
mov edx, dword [esp + 0x3c]
mov dword [eax], edx
mov eax, dword [esp + 0x148]
mov edx, dword [esp + 0x68]
mov dword [eax], edx
mov eax, dword [esp + 0x14c]
mov edx, dword [esp + 0x58]
mov dword [eax], edx
mov eax, dword [esp + 0x10c]
mov dword [eax], ecx
mov eax, dword [esp + 0x138]
mov dword [eax], esi
test ebx, ebx
je 0x1003c5b8
mov edx, dword [esp + 0x18]
mov edi, 0x7fffffeb
mov ecx, dword [ebx]
mov eax, edx
mov ebp, dword [esp + 0xa8]
sub edi, ecx
sub eax, ebp
cmp edi, eax
jl 0x1003c5c8
sub ecx, ebp
add ecx, edx
mov dword [ebx], ecx
mov eax, 1
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x124
ret
mov eax, dword [esp + 0x13c]
mov dword [eax], 0x14
mov eax, dword [esp + 0x138]
mov dword [eax], esi
xor eax, eax
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x124
ret
mov eax, dword [esp + 0x13c]
mov dword [eax], 0x34
mov eax, dword [esp + 0x138]
pop edi
mov dword [eax], esi
xor eax, eax
pop esi
pop ebp
pop ebx
add esp, 0x124
ret