Function at 0x40f1c9
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff8
sub esp, 0x120
mov esi, esp
push eax
sub esp, 0x24
mov ebx, esp
and ebx, 0xfffffff8
mov esp, ebx
push eax
mov dword [esi + 0x20], esp
push eax
mov dword [esi + 0x78], esp
sub esp, 0x70
mov eax, esp
and eax, 0xfffffff8
mov dword [esi + 0x40], eax
mov esp, eax
push eax
sub esp, 0x14
mov eax, esp
and eax, 0xfffffff8
mov dword [esi + 0x1c], eax
mov esp, eax
push eax
sub esp, 0x204
mov dword [esi + 0x90], esp
sub esp, 0x10
mov eax, esp
and eax, 0xfffffff8
mov dword [esi + 4], eax
mov esp, eax
push eax
sub esp, 0xc
mov eax, esp
and eax, 0xfffffff8
mov dword [esi + 0x8c], eax
mov esp, eax
push eax
push eax
mov eax, esp
and eax, 0xfffffff8
mov dword [esi + 0x7c], eax
mov esp, eax
push eax
sub esp, 0x64
mov eax, esp
and eax, 0xfffffff8
mov dword [esi + 0x2c], eax
mov esp, eax
push eax
sub esp, 0x64
mov eax, esp
and eax, 0xfffffff8
mov dword [esi + 0x58], eax
mov esp, eax
push eax
sub esp, 0x64
mov eax, esp
and eax, 0xfffffff8
mov dword [esi + 0x54], eax
mov esp, eax
push eax
sub esp, 0x64
mov eax, esp
and eax, 0xfffffff8
mov dword [esi + 0x34], eax
mov esp, eax
push eax
sub esp, 0x64
mov eax, esp
and eax, 0xfffffff8
mov dword [esi + 0x30], eax
mov esp, eax
push eax
sub esp, 0x64
mov eax, esp
and eax, 0xfffffff8
mov dword [esi + 0x50], eax
mov esp, eax
push eax
sub esp, 0x20
mov dword [esi + 0x3c], esp
sub esp, 0x100
mov dword [esi + 0x38], esp
sub esp, 0x10
mov eax, esp
and eax, 0xfffffff8
mov dword [esi + 0x74], eax
mov esp, eax
push eax
sub esp, 0xc
mov eax, esp
and eax, 0xfffffff8
mov dword [esi + 0x70], eax
mov esp, eax
push eax
sub esp, 0x24
mov eax, esp
and eax, 0xfffffff8
mov dword [esi + 0x24], eax
mov esp, eax
push eax
mov dword [esi + 0x6c], esp
push eax
mov dword [esi + 0x60], esp
sub esp, 0x70
mov eax, esp
and eax, 0xfffffff8
mov dword [esi + 0x4c], eax
mov esp, eax
push eax
sub esp, 0x14
mov eax, esp
and eax, 0xfffffff8
mov dword [esi + 0x80], eax
mov esp, eax
push eax
push eax
mov eax, esp
and eax, 0xfffffff8
mov dword [esi + 0x48], eax
mov esp, eax
push eax
sub esp, 0x64
mov eax, esp
and eax, 0xfffffff8
mov dword [esi + 0x64], eax
mov esp, eax
push eax
sub esp, 0x14
mov eax, esp
and eax, 0xfffffff8
mov dword [esi + 0x44], eax
mov esp, eax
push eax
sub esp, 0x7fc
mov dword [esi + 0x5c], esp
sub esp, 0x88
mov eax, esp
and eax, 0xfffffff8
mov dword [esi + 0x68], eax
mov esp, eax
push eax
sub esp, 0x40
mov dword [esi + 0x84], esp
sub esp, 0x10
mov dword [esi + 0x88], esp
mov eax, dword [0x43b8d4]
mov dword [esi + 0x94], eax
mov dword [esi + 8], 0x633f0b46
mov dword [esi + 0x10], 0
mov dword [esi + 0xc], 0
mov dword [esi], 0
mov eax, dword [esi]
cmp eax, 0xb
ja 0x40d3c8
nop
nop
nop
nop
nop
mov eax, dword [esi]
mov edx, dword [esi]
movzx edx, byte [esi + edx + 8]
mov edi, 0xf
sub edi, eax
add eax, 0xad3698f0
xor edi, eax
and edi, edx
xor edi, eax
mov dword [esi + 0x98], edi
mov eax, dword [esi + 0x98]
add al, 0x70
mov edx, dword [esi]
mov byte [esi + edx + 8], al
inc dword [esi]
mov eax, dword [esi]
cmp eax, 0xc
jb 0x40d390
mov eax, dword [str.WpM2Co__PRIVEIT]
mov dword [ebx], 0x2ee6f2cd
mov dword [ebx + 4], 0xfef9f4e6
mov dword [ebx + 8], 0xf6c1f8ee
mov dword [ebx + 0xc], 0xfed1eefd
mov dword [ebx + 0x10], 0xd100c0c7
mov dword [ebx + 0x14], 0x1b13d7c5
mov dword [ebx + 0x18], 0xc7080506
mov dword [ebx + 0x1c], 0x4f0bcdc9
mov word [ebx + 0x20], 0
mov byte [ebx + 0x22], 0
mov dword [esi], 0
mov edx, dword [esi]
cmp edx, 0x22
ja 0x40d458
nop
nop
nop
nop
nop
mov edx, dword [esi]
mov edi, dword [esi]
movzx edi, byte [ebx + edi]
mov ecx, 0x2d
sub ecx, edx
add edx, 0x8cf4a8d2
xor ecx, edx
and ecx, edi
xor ecx, edx
mov dword [esi + 0x98], ecx
mov ecx, dword [esi + 0x98]
add cl, 0x42
mov edx, dword [esi]
mov byte [ebx + edx], cl
inc dword [esi]
mov ecx, dword [esi]
cmp ecx, 0x23
jb 0x40d420
movzx edx, byte [ebx]
test dl, dl
je 0x40d47d
inc ebx
lea edi, [esi + 0x98]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov byte [edi], dl
inc edi
movzx edx, byte [ebx]
inc ebx
test dl, dl
jne 0x40d470
jmp 0x40d483
lea edi, [esi + 0x98]
mov byte [edi], 0
movzx edx, byte [eax]
test dl, dl
je 0x40d4ad
inc eax
mov ecx, dword [esi + 0x40]
mov ebx, dword [esi + 4]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov byte [edi], dl
inc edi
movzx edx, byte [eax]
inc eax
test dl, dl
jne 0x40d4a0
jmp 0x40d4b3
mov ecx, dword [esi + 0x40]
mov ebx, dword [esi + 4]
mov byte [edi], 0
movzx eax, byte [esi + 8]
test al, al
je 0x40d4db
lea edx, [esi + 9]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov byte [edi], al
inc edi
movzx eax, byte [edx]
inc edx
test al, al
jne 0x40d4d0
mov byte [edi], 0
mov edx, dword [esi + 0x94]
movzx eax, byte [edx]
test al, al
je 0x40d4fb
inc edx
nop
nop
nop
nop
mov byte [edi], al
inc edi
movzx eax, byte [edx]
inc edx
test al, al
jne 0x40d4f0
mov byte [edi], 0
mov dword [ecx], 0x7bc979a3
mov dword [ecx + 4], 0x7fc87dc4
mov dword [ecx + 8], 0x73ce71d9
mov dword [ecx + 0xc], 0x778b75c6
mov dword [ecx + 0x10], 0x4bc349a2
mov dword [ecx + 0x14], 0x4feb4dfa
mov dword [ecx + 0x18], 0x43a04184
mov dword [ecx + 0x1c], 0x47f445e1
mov dword [ecx + 0x20], 0x5be459f6
mov dword [ecx + 0x24], 0x5ff95de1
mov dword [ecx + 0x28], 0x53e451fd
mov dword [ecx + 0x2c], 0x57e555e9
mov dword [ecx + 0x30], 0x2bd929e8
mov dword [ecx + 0x34], 0x2fd32da2
mov dword [ecx + 0x38], 0x23a921a7
mov dword [ecx + 0x3c], 0x27db25ab
mov dword [ecx + 0x40], 0x3b893980
mov dword [ecx + 0x44], 0x3f833d88
mov dword [ecx + 0x48], 0x338731c1
mov dword [ecx + 0x4c], 0x37883580
mov dword [ecx + 0x50], 0xbb60991
mov dword [ecx + 0x54], 0xfbd0daf
mov dword [ecx + 0x58], 0x3a701aa
mov dword [ecx + 0x5c], 0x71b05a6
mov dword [ecx + 0x60], 0x1b18191c
mov dword [ecx + 0x68], 0
mov dword [ecx + 0x64], 0
mov dword [esi], 0
mov eax, ecx
mov ecx, dword [esi]
cmp ecx, 0x6b
ja 0x40d609
nop
nop
nop
nop
nop
nop
nop
mov ecx, dword [esi]
mov edx, dword [esi]
movzx edx, byte [eax + edx]
mov dword [esi + 4], edx
mov edx, eax
mov eax, 0x70
sub eax, ecx
add ecx, 0x164d8c8f
xor eax, ecx
and eax, dword [esi + 4]
xor eax, ecx
mov dword [esi + 8], eax
mov eax, dword [esi + 8]
add al, 0x17
mov ecx, dword [esi]
mov byte [edx + ecx], al
inc dword [esi]
mov eax, dword [esi]
cmp eax, 0x6c
mov eax, edx
jb 0x40d5d0
lea eax, [esi + 0x98]
sub edi, eax
mov edx, dword [esi + 0x1c]
mov dword [edx], 0x3a30177
mov dword [edx + 4], 0x1fa71db2
mov word [edx + 8], 0x191e
mov dword [edx + 0xa], 0
mov dword [edx + 0xd], 0
mov dword [esi], 0
mov eax, dword [esi]
cmp eax, 0x10
ja 0x40d684
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov ecx, dword [esi]
mov eax, dword [esi]
movzx eax, byte [edx + eax]
mov edx, 0xd4
sub edx, ecx
add ecx, 0x85671c2b
xor edx, ecx
and edx, eax
xor edx, ecx
mov dword [esi + 8], edx
mov edx, dword [esi + 0x1c]
mov eax, dword [esi + 8]
add al, 0xd3
mov ecx, dword [esi]
mov byte [edx + ecx], al
inc dword [esi]
mov eax, dword [esi]
cmp eax, 0x11
jb 0x40d650
push dword [esi + 0x78]
push dword [esi + 0x20]
push edi
lea eax, [esi + 0x98]
push eax
push dword [esi + 0x40]
push edx
push 0x43ffc8
call fcn.0040bf70
add esp, 0x1c
movzx eax, al
jmp dword [eax*4 + 0x43c2f4]
xor edx, edx
xor ecx, ecx
test edx, 0
sete cl
xor eax, eax
mov edi, dword [esi + 0x2c]
jmp dword [ecx*4 + 0x43c2fc]
push 0x104
push dword [esi + 0x90]
call dword [sym.imp.KERNEL32.dll_GetSystemDirectoryW]
mov eax, dword [esi + 0x78]
mov ecx, dword [eax]
mov eax, dword [esi + 0x20]
mov edi, dword [eax]
lea eax, [ecx + ecx*2]
shr eax, 2
movzx edx, byte [edi + ecx - 1]
cmp edx, 0x3d
je 0x40d6f6
cmp edx, 0x2e
jne 0x40d6f7
dec eax
mov edx, ecx
xor edx, 2
and ecx, 0xfffffffd
add ecx, ecx
sub ecx, edx
movzx ecx, byte [edi + ecx]
cmp ecx, 0x3d
mov dword [esi + 4], edi
je 0x40d714
cmp ecx, 0x2e
jne 0x40d715
dec eax
push eax
call fcn.00409030
add esp, 4
mov edi, eax
push eax
push dword [esi + 4]
call fcn.0042eee0
add esp, 8
mov eax, dword [esi + 0x20]
push dword [eax]
call fcn.00431b40
mov edx, edi
add esp, 4
xor ecx, ecx
test edi, edi
sete cl
xor eax, eax
mov edi, dword [esi + 0x2c]
jmp dword [ecx*4 + 0x43c2fc]
mov dword [esi + 4], edx
push edx
call fcn.00401f10
add esp, 4
mov dword [esi + 0x1c], eax
jmp dword [0x43c304]
push dword [esi + 4]
call fcn.00409040
add esp, 4
jmp dword [0x43c310]
jmp dword [0x43c310]
push dword [esi + 0x1c]
call fcn.00402960
add esp, 4
mov word [ebx], 0xd6dc
mov byte [ebx + 2], 0x44
mov dword [ebx + 3], 0
mov dword [ebx + 7], 0
mov dword [ebx + 0xa], 0
mov dword [esi], 0
mov ecx, dword [esi]
cmp ecx, 0xd
ja 0x40d7e2
mov ecx, dword [esi]
mov edx, dword [esi]
movzx edx, byte [ebx + edx]
mov edi, 0xa
sub edi, ecx
add ecx, 0x1e9749f5
xor edi, ecx
and edi, edx
xor edi, ecx
mov dword [esi + 8], edi
mov ecx, dword [esi + 8]
add cl, 0x4d
mov edx, dword [esi]
mov byte [ebx + edx], cl
inc dword [esi]
mov ecx, dword [esi]
cmp ecx, 0xe
jb 0x40d7b0
push ebx
push eax
call fcn.00402ab0
add esp, 8
mov edi, dword [esi + 0x2c]
jmp case.0x40d747.5
push ebx
push dword [esi + 4]
call fcn.00402ab0
add esp, 8
jmp dword [0x43c318]
push dword [esi + 0x1c]
call fcn.00402960
add esp, 4
mov dword [esi + 4], eax
mov word [ebx], 0xd6dc
mov byte [ebx + 2], 0x44
mov dword [ebx + 3], 0
mov dword [ebx + 7], 0
mov dword [ebx + 0xa], 0
mov dword [esi], 0
mov eax, dword [esi]
cmp eax, 0xd
ja 0x40d800
nop
nop
nop
nop
nop
mov eax, dword [esi]
mov ecx, dword [esi]
movzx edx, byte [ebx + ecx]
mov ecx, 0xa
sub ecx, eax
add eax, 0x1e9749f5
xor ecx, eax
and ecx, edx
xor ecx, eax
mov dword [esi + 8], ecx
mov eax, dword [esi + 8]
add al, 0x4d
mov ecx, dword [esi]
mov byte [ebx + ecx], al
inc dword [esi]
mov eax, dword [esi]
cmp eax, 0xe
jb 0x40d850
jmp 0x40d800
xor ecx, ecx
test eax, eax
setg cl
jmp dword [ecx*4 + 0x43c31c]
call fcn.0042daf0
movzx eax, al
jmp dword [eax*4 + 0x43c324]
mov ebx, dword [esi + 0x8c]
mov word [ebx], 0x3131
mov byte [ebx + 2], 0x94
mov dword [ebx + 7], 0
mov dword [ebx + 3], 0
mov dword [esi], 0
mov eax, dword [esi]
cmp eax, 0xa
ja 0x40d900
nop
nop
nop
nop
mov eax, dword [esi]
mov ecx, dword [esi]
movzx ecx, byte [ebx + ecx]
mov edx, 0x12
sub edx, eax
add eax, 0x95cfe9ed
xor edx, eax
and edx, ecx
xor edx, eax
mov dword [esi + 8], edx
mov eax, dword [esi + 8]
add al, 0x85
mov ecx, dword [esi]
mov byte [ebx + ecx], al
inc dword [esi]
mov eax, dword [esi]
cmp eax, 0xb
jb 0x40d8d0
push ebx
mov ebx, dword [esi + 4]
push ebx
call fcn.00402ab0
add esp, 8
mov dword [esi + 0x20], eax
mov edx, dword [esi + 0x7c]
mov word [edx], 0x1423
mov byte [edx + 2], 0xb2
mov dword [edx + 3], 0
mov byte [edx + 7], 0
mov dword [esi], 0
mov eax, dword [esi]
cmp eax, 7
ja 0x40d973
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esi]
mov ecx, dword [esi]
movzx ecx, byte [edx + ecx]
mov edx, 0xb7
sub edx, eax
add eax, 0x82d10448
xor edx, eax
and edx, ecx
xor edx, eax
mov dword [esi + 8], edx
mov edx, dword [esi + 0x7c]
mov eax, dword [esi + 8]
add al, 8
mov ecx, dword [esi]
mov byte [edx + ecx], al
inc dword [esi]
mov eax, dword [esi]
cmp eax, 8
jb 0x40d940
push edx
push ebx
call fcn.00402ab0
add esp, 8
mov ecx, ebx
xor ebx, ebx
test eax, eax
setg bl
push ecx
call fcn.0040e440
add esp, 4
push dword [esi + 0x1c]
call fcn.00402f00
add esp, 4
mov ecx, edi
push 1
call fcn.00409b20
push edi
call fcn.0041ad20
add esp, 4
mov ecx, edi
call fcn.0040a460
mov edi, dword [esi + 0x58]
mov ecx, edi
push 3
call fcn.00409b20
push edi
call fcn.0041b560
add esp, 4
mov ecx, edi
call fcn.0040a460
mov edi, dword [esi + 0x54]
mov ecx, edi
push 1
call fcn.00409b20
push edi
call fcn.0041b790
add esp, 4
mov ecx, edi
call fcn.0040a460
mov edi, dword [esi + 0x34]
mov ecx, edi
push 1
call fcn.00409b20
push edi
call fcn.0041d690
add esp, 4
push edi
call fcn.0041e190
add esp, 4
push edi
call fcn.0041e630
add esp, 4
mov ecx, edi
call fcn.0040a460
mov edi, dword [esi + 0x30]
mov ecx, edi
push 1
call fcn.00409b20
push edi
call fcn.00420620
add esp, 4
mov ecx, edi
call fcn.0040a460
mov edi, dword [esi + 0x50]
mov ecx, edi
push 1
call fcn.00409b20
push edi
call fcn.00422a60
add esp, 4
push edi
call fcn.00429270
add esp, 4
jmp dword [ebx*4 + 0x43c32c]
push edi
call fcn.00429410
add esp, 4
mov ecx, edi
call fcn.0040a460
push dword [esi + 0x3c]
call fcn.0042e910
add esp, 4
mov edi, dword [esi + 0x74]
mov dword [edi], 0x32053176
mov word [edi + 4], 0x4028
mov byte [edi + 6], 0x86
mov dword [edi + 7], 0
mov dword [edi + 0xa], 0
mov dword [esi], 0
mov eax, dword [esi]
cmp eax, 0xd
ja 0x40dae0
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esi]
mov ecx, dword [esi]
movzx ecx, byte [edi + ecx]
mov edx, 0x13
sub edx, eax
add eax, 0x73faeaec
xor edx, eax
and edx, ecx
xor edx, eax
mov dword [esi + 8], edx
mov eax, dword [esi + 8]
add al, 0x8c
mov ecx, dword [esi]
mov byte [edi + ecx], al
inc dword [esi]
mov eax, dword [esi]
cmp eax, 0xe
jb 0x40dab0
mov ecx, dword [0x43b8d4]
mov ebx, dword [esi + 0x70]
mov dword [ebx], 0xcb8f7bb6
mov dword [ebx + 4], 0
mov dword [ebx + 8], 0
mov word [ebx + 0xc], 0
mov dword [esi], 0
mov eax, dword [esi]
cmp eax, 0xd
ja 0x40db40
mov eax, dword [esi]
mov edx, dword [esi]
movzx edx, byte [ebx + edx]
mov edi, 0x1d
sub edi, eax
add eax, 0xcd4633e2
xor edi, eax
and edi, edx
xor edi, eax
mov dword [esi + 8], edi
mov eax, dword [esi + 8]
add al, 0xd2
mov edx, dword [esi]
mov byte [ebx + edx], al
inc dword [esi]
mov eax, dword [esi]
cmp eax, 0xe
jb 0x40db10
mov edx, dword [str.WpM2Co__PRIVEIT]
mov edi, dword [esi + 0x24]
mov dword [edi], 0xf0b88889
mov dword [edi + 4], 0xaebc8a8b
mov dword [edi + 8], 0x8681b6bd
mov dword [edi + 0xc], 0xfdb3b0b5
mov dword [edi + 0x10], 0xc08abe8c
mov dword [edi + 0x14], 0xe5f0f3ce
mov dword [edi + 0x18], 0xd8a0aaaa
mov byte [edi + 0x1c], 0x1a
mov dword [edi + 0x1d], 0
mov dword [edi + 0x21], 0
mov word [edi + 0x25], 0
mov dword [esi], 0
mov eax, dword [esi]
cmp eax, 0x26
ja 0x40dbd9
nop
nop
mov eax, dword [esi]
mov edi, dword [esi]
mov ebx, dword [esi + 0x24]
movzx edi, byte [ebx + edi]
mov ebx, 0xa6
sub ebx, eax
add eax, 0x99d3fe59
xor ebx, eax
and ebx, edi
xor ebx, eax
mov dword [esi + 8], ebx
mov eax, dword [esi + 8]
add al, 0x91
mov edi, dword [esi]
mov ebx, dword [esi + 0x24]
mov byte [ebx + edi], al
mov edi, dword [esi + 0x24]
inc dword [esi]
mov eax, dword [esi]
cmp eax, 0x27
jb 0x40dba0
movzx ebx, byte [edi]
mov eax, dword [esi + 0x38]
test bl, bl
je 0x40dbfb
inc edi
mov eax, dword [esi + 0x38]
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov byte [eax], bl
inc eax
movzx ebx, byte [edi]
inc edi
test bl, bl
jne 0x40dbf0
mov byte [eax], 0
movzx ebx, byte [edx]
test bl, bl
mov edi, dword [esi + 0x4c]
je 0x40dc1b
inc edx
nop
nop
nop
nop
nop
nop
nop
mov byte [eax], bl
inc eax
movzx ebx, byte [edx]
inc edx
test bl, bl
jne 0x40dc10
mov byte [eax], 0
mov ebx, dword [esi + 0x70]
movzx edx, byte [ebx]
test dl, dl
je 0x40dc3b
inc ebx
nop
nop
nop
nop
nop
nop
nop
mov byte [eax], dl
inc eax
movzx edx, byte [ebx]
inc ebx
test dl, dl
jne 0x40dc30
mov byte [eax], 0
movzx edx, byte [ecx]
test dl, dl
je 0x40dc5b
inc ecx
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov byte [eax], dl
inc eax
movzx edx, byte [ecx]
inc ecx
test dl, dl
jne 0x40dc50
mov byte [eax], 0
mov ebx, dword [esi + 0x74]
movzx ecx, byte [ebx]
test cl, cl
je 0x40dc7d
inc ebx
mov edx, dword [esi + 0x3c]
nop
nop
nop
nop
mov byte [eax], cl
inc eax
movzx ecx, byte [ebx]
inc ebx
test cl, cl
jne 0x40dc70
jmp 0x40dc80
mov edx, dword [esi + 0x3c]
mov byte [eax], 0
movzx ecx, byte [edx]
test cl, cl
je 0x40dc9d
inc edx
mov ebx, dword [esi + 0x60]
nop
nop
mov byte [eax], cl
inc eax
movzx ecx, byte [edx]
inc edx
test cl, cl
jne 0x40dc90
jmp 0x40dca0
mov ebx, dword [esi + 0x60]
mov byte [eax], 0
mov dword [edi], 0xfb69f9c3
mov dword [edi + 4], 0xff68fd64
mov dword [edi + 8], 0xf36ef159
mov dword [edi + 0xc], 0xf7abf566
mov dword [edi + 0x10], 0xeb63e942
mov dword [edi + 0x14], 0xef4bed7a
mov dword [edi + 0x18], 0xe380e1a4
mov dword [edi + 0x1c], 0xe774e541
mov dword [edi + 0x20], 0xdb44d976
mov dword [edi + 0x24], 0xdf79dd41
mov dword [edi + 0x28], 0xd344d17d
mov dword [edi + 0x2c], 0xd745d549
mov dword [edi + 0x30], 0xcb99c948
mov dword [edi + 0x34], 0xcf93cd42
mov dword [edi + 0x38], 0xc349c147
mov dword [edi + 0x3c], 0xc79bc54b
mov dword [edi + 0x40], 0x3ba93960
mov dword [edi + 0x44], 0x3fa33da8
mov dword [edi + 0x48], 0x33a73161
mov dword [edi + 0x4c], 0x37a835a0
mov dword [edi + 0x50], 0x2bb62991
mov dword [edi + 0x54], 0x2fbd2d8f
mov dword [edi + 0x58], 0x2387218a
mov dword [edi + 0x5c], 0x275b2586
mov dword [edi + 0x60], 0x1b18195c
mov word [edi + 0x6c], 0
mov dword [edi + 0x68], 0
mov dword [edi + 0x64], 0
mov dword [esi], 0
mov ecx, dword [esi]
cmp ecx, 0x6d
ja 0x40ddb5
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov ecx, dword [esi]
mov edx, dword [esi]
movzx edx, byte [edi + edx]
mov edi, 0xc0
sub edi, ecx
add ecx, 0xbc5e043f
xor edi, ecx
and edi, edx
xor edi, ecx
mov dword [esi + 8], edi
mov edi, dword [esi + 0x4c]
mov ecx, dword [esi + 8]
add cl, 0x47
mov edx, dword [esi]
mov byte [edi + edx], cl
inc dword [esi]
mov ecx, dword [esi]
cmp ecx, 0x6e
jb 0x40dd80
sub eax, dword [esi + 0x38]
mov edi, dword [esi + 0x80]
mov dword [edi], 0xf3538ddf
mov dword [edi + 4], 0xf75ff160
mov word [edi + 8], 0xf5f4
mov dword [edi + 0xa], 0
mov dword [edi + 0xe], 0
mov dword [edi + 0x12], 0
mov word [edi + 0x16], 0
mov dword [esi], 0
mov ecx, dword [esi]
cmp ecx, 0x17
ja 0x40de38
nop
nop
nop
nop
nop
nop
nop
mov ecx, dword [esi]
mov edx, dword [esi]
movzx edx, byte [edi + edx]
mov edi, 0x41
sub edi, ecx
add ecx, 0x274560be
xor edi, ecx
and edi, edx
xor edi, ecx
mov dword [esi + 8], edi
mov edi, dword [esi + 0x80]
mov ecx, dword [esi + 8]
add cl, 0xce
mov edx, dword [esi]
mov byte [edi + edx], cl
inc dword [esi]
mov ecx, dword [esi]
cmp ecx, 0x18
jb 0x40de00
push ebx
mov ecx, edi
mov edi, dword [esi + 0x6c]
push edi
push eax
push dword [esi + 0x38]
push dword [esi + 0x4c]
push ecx
push 0x43ffc8
call fcn.0040bf70
add esp, 0x1c
movzx eax, al
jmp dword [eax*4 + 0x43c334]
xor ebx, ebx
xor eax, eax
test ebx, 0
setne al
jmp dword [eax*4 + 0x43c33c]
push ebx
call fcn.00401f10
add esp, 4
mov edi, dword [esi + 0x44]
jmp dword [0x43c344]
push ebx
mov ebx, eax
call fcn.00409040
mov eax, ebx
add esp, 4
mov dword [esi + 0x24], eax
push eax
call fcn.004115c0
add esp, 4
mov ebx, dword [esi + 0x68]
push dword [esi + 0x24]
call fcn.00402f00
add esp, 4
jmp 0x40df18
mov ecx, dword [ebx]
mov edi, dword [edi]
lea eax, [ecx + ecx*2]
shr eax, 2
movzx edx, byte [edi + ecx - 1]
cmp edx, 0x3d
je 0x40dec6
cmp edx, 0x2e
jne 0x40dec7
dec eax
mov edx, ecx
xor edx, 2
and ecx, 0xfffffffd
add ecx, ecx
sub ecx, edx
movzx ecx, byte [edi + ecx]
cmp ecx, 0x3d
je 0x40dee1
cmp ecx, 0x2e
jne 0x40dee2
dec eax
push eax
call fcn.00409030
add esp, 4
mov ebx, eax
push eax
push edi
call fcn.0042eee0
add esp, 8
mov eax, dword [esi + 0x6c]
push dword [eax]
call fcn.00431b40
add esp, 4
xor eax, eax
test ebx, ebx
setne al
jmp dword [eax*4 + 0x43c33c]
mov ebx, dword [esi + 0x68]
mov edi, dword [esi + 0x44]
mov edx, dword [esi + 0x48]
mov dword [edx], 0xfb615ba2
mov dword [edx + 4], 0
mov dword [esi], 0
mov eax, dword [esi]
cmp eax, 7
ja 0x40df6f
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esi]
mov ecx, dword [esi]
movzx ecx, byte [edx + ecx]
lea edx, [eax - 0x7d931201]
neg eax
xor eax, edx
and eax, ecx
xor eax, edx
mov edx, dword [esi + 0x48]
mov dword [esi + 8], eax
mov eax, dword [esi + 8]
add al, 7
mov ecx, dword [esi]
mov byte [edx + ecx], al
inc dword [esi]
mov eax, dword [esi]
cmp eax, 8
jb 0x40df40
push edx
push dword [esi + 4]
call fcn.00402ab0
add esp, 8
jmp dword [0x43c350]
jmp dword [0x43c358]
jmp dword [0x43c358]
xor ecx, ecx
test eax, eax
setg cl
jmp dword [ecx*4 + 0x43c35c]
xor eax, eax
cmp dword [esi + 0x20], 0
setg al
jmp dword [eax*4 + 0x43c364]
mov ecx, dword [esi + 0x64]
push 1
call fcn.00409b20
mov eax, 0xffffffff
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp byte [eax + 0x4402d1], 0
lea eax, [eax + 1]
jne 0x40dfd0
mov dword [edi], 0x2cc23eda
mov dword [edi + 4], 0x57508b3b
mov word [edi + 8], 0xd952
mov dword [edi + 0xa], 0
mov dword [edi + 0xd], 0
mov dword [esi], 0
mov ecx, dword [esi]
cmp ecx, 0x10
ja 0x40e045
nop
nop
nop
nop
nop
nop
mov ecx, dword [esi]
mov edx, dword [esi]
movzx edx, byte [edi + edx]
mov edi, 0xc4
sub edi, ecx
add ecx, 0xc0330d3b
xor edi, ecx
and edi, edx
xor edi, ecx
mov dword [esi + 8], edi
mov edi, dword [esi + 0x44]
mov ecx, dword [esi + 8]
add cl, 0x63
mov edx, dword [esi]
mov byte [edi + edx], cl
inc dword [esi]
mov ecx, dword [esi]
cmp ecx, 0x11
jb 0x40e010
mov edx, edi
mov edi, dword [esi + 0x64]
mov ecx, edi
push eax
push 0x4402d0
push edx
call fcn.00409d20
mov ecx, edi
call fcn.0040a460
mov ecx, edi
call fcn.00409b60
xor eax, eax
cmp dword [esi + 0x20], 0
setg al
jmp dword [eax*4 + 0x43c364]
push 0
call fcn.00435000
add esp, 4
xor ecx, ecx
test eax, eax
setne cl
jmp dword [ecx*4 + 0x43c36c]
mov ebx, dword [esi + 0x34]
mov edi, dword [esi + 0x30]
jmp dword [0x43c38c]
push dword [esi + 0x1c]
call fcn.00402f00
add esp, 4
xor eax, eax
jmp case.0x40d747.1
mov dword [ebx], 0xf35f8d2b
mov dword [ebx + 4], 0xf7a4f154
mov dword [ebx + 8], 0xfb62f551
mov dword [ebx + 0xc], 0xff9ef95d
mov dword [ebx + 0x10], 0xe375fd9a
mov dword [ebx + 0x14], 0xe747e174
mov dword [ebx + 0x18], 0xeb7ee572
mov dword [ebx + 0x1c], 0xefbde988
mov dword [ebx + 0x20], 0xd37bed41
mov dword [ebx + 0x24], 0xd7b6d142
mov dword [ebx + 0x28], 0xdb77d573
mov dword [ebx + 0x2c], 0xdf8cd97c
mov dword [ebx + 0x30], 0xc35add79
mov dword [ebx + 0x34], 0xc7a6c165
mov dword [ebx + 0x38], 0xcb99c5a2
mov dword [ebx + 0x3c], 0xcfaec96f
mov dword [ebx + 0x40], 0x339bcd58
mov dword [ebx + 0x44], 0x3793319d
mov dword [ebx + 0x48], 0x3baf35a7
mov dword [ebx + 0x4c], 0x3f5e39ac
mov dword [ebx + 0x50], 0x23b63d6f
mov dword [ebx + 0x54], 0x27712140
mov dword [ebx + 0x58], 0x2b792544
mov dword [ebx + 0x5c], 0x2fbd29ba
mov dword [ebx + 0x60], 0x13842d8a
mov dword [ebx + 0x64], 0x17b711b5
mov dword [ebx + 0x68], 0x1b7a15bb
mov dword [ebx + 0x6c], 0x1f7e1972
mov dword [ebx + 0x70], 0x3a71db8
mov dword [ebx + 0x74], 0x76601ac
mov dword [ebx + 0x78], 0xb0a0562
mov dword [ebx + 0x80], 0
mov dword [ebx + 0x7c], 0
mov dword [esi], 0
mov ecx, dword [esi]
cmp ecx, 0x83
ja 0x40e1e5
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov ecx, dword [esi]
mov edx, dword [esi]
movzx edx, byte [ebx + edx]
mov edi, 0xc1
sub edi, ecx
add ecx, 0x6d11e63e
xor edi, ecx
and edi, edx
xor edi, ecx
mov dword [esi + 8], edi
mov ecx, dword [esi + 8]
add cl, 0x4e
mov edx, dword [esi]
mov byte [ebx + edx], cl
inc dword [esi]
mov ecx, dword [esi]
cmp ecx, 0x84
jb 0x40e1b0
movzx edx, word [ebx]
mov edi, dword [esi + 0x5c]
mov ecx, edi
test dx, dx
je 0x40e211
add ebx, 2
mov ecx, edi
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov word [ecx], dx
add ecx, 2
movzx edx, word [ebx]
add ebx, 2
test dx, dx
jne 0x40e200
mov word [ecx], 0
movzx edx, word [eax]
test dx, dx
je 0x40e241
add eax, 2
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov word [ecx], dx
add ecx, 2
movzx edx, word [eax]
add eax, 2
test dx, dx
jne 0x40e230
mov dword [ecx], 0x220022
mov dword [ecx + 4], 0x22
mov ebx, dword [esi + 0x84]
mov dword [ebx + 0x40], 0
mov dword [ebx + 0x3c], 0
mov dword [ebx + 0x38], 0
mov dword [ebx + 0x34], 0
mov dword [ebx + 0x30], 0
mov dword [ebx + 0x28], 0
mov dword [ebx + 0x24], 0
mov dword [ebx + 0x20], 0
mov dword [ebx + 0x1c], 0
mov dword [ebx + 0x18], 0
mov dword [ebx + 0x14], 0
mov dword [ebx + 0x10], 0
mov dword [ebx + 0xc], 0
mov dword [ebx + 8], 0
mov dword [ebx + 4], 0
mov dword [ebx], 0x44
mov dword [ebx + 0x2c], 1
push 0xd472a769
push dword [0x4412d0]
call fcn.00435100
add esp, 8
mov edi, dword [esi + 0x88]
push edi
push ebx
push 0
push 0
push 0x8000000
push 0
push 0
push 0
push dword [esi + 0x5c]
push 0
call eax
xor ecx, ecx
test eax, eax
setne cl
jmp dword [ecx*4 + 0x43c374]
mov eax, dword [edi]
mov dword [esi + 8], 0x3a393837
mov dword [esi + 0x10], 0
mov dword [esi + 0xc], 0
mov dword [esi + 0x28], 0
mov ecx, dword [esi + 0x28]
cmp ecx, 0xb
ja 0x40e367
nop
mov ecx, dword [esi + 0x28]
mov edx, dword [esi + 0x28]
movzx edx, byte [esi + edx + 8]
mov edi, 0x58
sub edi, ecx
add ecx, 0xe8f81ca7
xor edi, ecx
and edi, edx
xor edi, ecx
mov dword [esi], edi
mov ecx, dword [esi]
add cl, 0x6f
mov edx, dword [esi + 0x28]
mov byte [esi + edx + 8], cl
inc dword [esi + 0x28]
mov ecx, dword [esi + 0x28]
cmp ecx, 0xc
jb 0x40e330
mov ecx, dword [0x4412dc]
test ecx, ecx
je case.0x40e06f.4
mov edx, dword [esi + 8]
xor edi, edi
mov ebx, dword [0x4412e0]
nop
nop
nop
nop
cmp dword [ebx + edi*8], 0xa3c1f363
je 0x40e390
inc edi
cmp ecx, edi
jne 0x40e380
jmp case.0x40e06f.4
mov ecx, dword [ebx + edi*8 + 4]
cmp ecx, edx
jne 0x40e41e
mov ebx, dword [esi + 0x34]
mov edi, dword [esi + 0x30]
jmp dword [0x43c38c]
mov ecx, dword [esi + 0x50]
call fcn.00409b60
mov ecx, edi
call fcn.00409b60
mov ecx, ebx
call fcn.00409b60
mov ecx, dword [esi + 0x54]
call fcn.00409b60
mov ecx, dword [esi + 0x58]
call fcn.00409b60
mov ecx, dword [esi + 0x2c]
call fcn.00409b60
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov ecx, dword [esi + 0x50]
call fcn.00409b60
mov ecx, edi
call fcn.00409b60
mov ecx, ebx
call fcn.00409b60
mov ecx, dword [esi + 0x54]
call fcn.00409b60
mov ecx, dword [esi + 0x58]
call fcn.00409b60
mov ecx, dword [esi + 0x2c]
call fcn.00409b60
mov al, 1
jmp dword [0x43c398]
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
push eax
push 1
push dword [0x4412e4]
push ecx
call fcn.004337a0
add esp, 0x10
mov ebx, dword [esi + 0x34]
mov edi, dword [esi + 0x30]
jmp dword [0x43c38c]
int3
xor ebx, ebx
mov dword [esp + 0x150], edi
jmp 0x40e51f
mov ecx, esi
call fcn.00409b60
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov ebx, dword [esp + 0x154]
inc ebx
mov edi, dword [esp + 0x150]
push edi
call fcn.00402ec0
add esp, 4
xor ecx, ecx
cmp ebx, eax
setb cl
mov al, 1
jmp dword [ecx*4 + 0x43c3a4]
mov dword [esp + 0x154], ebx
push ebx
push edi
call fcn.00402ed0
add esp, 8
mov edi, eax
mov word [esp + 0x48], 0x39c2
mov dword [esp + 0x4a], 0
mov dword [esp + 0x4e], 0
mov dword [esp + 0x52], 0
mov word [esp + 0x56], 0
mov dword [esp], 0
mov eax, dword [esp]
cmp eax, 0xf
ja 0x40e5bf
mov eax, dword [esp]
mov ecx, dword [esp]
movzx ecx, byte [esp + ecx + 0x48]
mov edx, 8
sub edx, eax
add eax, 0x8f323cf7
xor edx, eax
and edx, ecx
xor edx, eax
mov dword [esp + 0xe8], edx
mov eax, dword [esp + 0xe8]
add al, 0x3f
mov ecx, dword [esp]
mov byte [esp + ecx + 0x48], al
inc dword [esp]
mov eax, dword [esp]
cmp eax, 0x10
jb case.default.0x40e5d2
push 3
push esi
push edi
call fcn.00402da0
add esp, 0xc
xor ecx, ecx
test eax, eax
sete cl
jmp dword [ecx*4 + 0x43c3ac]
mov word [esp + 0x48], 0x45d2
lea eax, [esp + 0x4b]
mov word [eax + 7], 0
mov dword [eax + 3], 0
mov dword [eax - 1], 0
mov dword [esp], 0
mov eax, dword [esp]
cmp eax, 0xb
ja 0x40e64f
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp]
mov ecx, dword [esp]
movzx ecx, byte [esp + ecx + 0x48]
mov edx, 0x4a
sub edx, eax
add eax, 0xad229cb5
xor edx, eax
and edx, ecx
xor edx, eax
mov dword [esp + 0xe8], edx
mov eax, dword [esp + 0xe8]
add al, 0xd
mov ecx, dword [esp]
mov byte [esp + ecx + 0x48], al
inc dword [esp]
mov eax, dword [esp]
cmp eax, 0xc
jb 0x40e610
push esi
push edi
call fcn.00402850
add esp, 8
fnstcw word [esp + 0xe6]
movzx eax, word [esp + 0xe6]
or eax, 0xc00
mov word [esp + 0x14e], ax
fldcw word [esp + 0x14e]
fistp dword [esp + 0x168]
fldcw word [esp + 0xe6]
mov eax, dword [esp + 0x168]
xor ecx, ecx
cmp eax, 2
setl cl
jmp dword [ecx*4 + 0x43c3b4]
xor ecx, ecx
cmp eax, 3
setl cl
jmp dword [ecx*4 + 0x43c3bc]
sete al
movzx eax, al
jmp dword [eax*4 + 0x43c3c4]
mov word [esp + 0x48], 0xd97
mov dword [esp + 0x4e], 0
mov dword [esp + 0x4a], 0
mov dword [esp], 0
mov eax, dword [esp]
cmp eax, 9
ja 0x40e72f
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp]
mov ecx, dword [esp]
movzx ecx, byte [esp + ecx + 0x48]
mov edx, 0x29
sub edx, eax
add eax, 0xe2ab9bd6
xor edx, eax
and edx, ecx
xor edx, eax
mov dword [esp + 0xe8], edx
mov eax, dword [esp + 0xe8]
add al, 0x26
mov ecx, dword [esp]
mov byte [esp + ecx + 0x48], al
inc dword [esp]
mov eax, dword [esp]
cmp eax, 0xa
jb 0x40e6f0
push 2
push esi
push edi
call fcn.00402da0
add esp, 0xc
xor ecx, ecx
test eax, eax
setne cl
jmp dword [ecx*4 + 0x43c484]
mov word [esp + 0xe8], 0x8d1c
lea eax, [esp + 0xea]
mov byte [eax + 0xc], 0
mov dword [eax + 8], 0
mov dword [eax + 4], 0
mov dword [eax], 0
mov dword [esp + 0x20], 0
mov eax, dword [esp + 0x20]
cmp eax, 0xe
ja 0x40e7d4
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp + 0x20]
mov ecx, dword [esp + 0x20]
movzx ecx, byte [esp + ecx + 0xe8]
mov edx, 0x41
sub edx, eax
add eax, 0x38ff53be
xor edx, eax
and edx, ecx
xor edx, eax
mov dword [esp + 0x14], edx
mov eax, dword [esp + 0x14]
add al, 0xce
mov ecx, dword [esp + 0x20]
mov byte [esp + ecx + 0xe8], al
inc dword [esp + 0x20]
mov eax, dword [esp + 0x20]
cmp eax, 0xf
jb 0x40e790
push 2
lea eax, [esp + 0xec]
push eax
push edi
call fcn.00402da0
add esp, 0xc
xor ecx, ecx
test eax, eax
setne cl
jmp dword [ecx*4 + 0x43c48c]
mov word [esp], 0xcda1
mov dword [esp + 6], 0
mov dword [esp + 2], 0
mov dword [esp + 0x20], 0
mov eax, dword [esp + 0x20]
cmp eax, 9
ja 0x40e85c
nop
nop
nop
nop
mov eax, dword [esp + 0x20]
mov ecx, dword [esp + 0x20]
movzx ecx, byte [esp + ecx]
mov edx, 0x21
sub edx, eax
add eax, 0x600339de
xor edx, eax
and edx, ecx
xor edx, eax
mov dword [esp + 0x14], edx
mov eax, dword [esp + 0x14]
add al, 0xee
mov ecx, dword [esp + 0x20]
mov byte [esp + ecx], al
inc dword [esp + 0x20]
mov eax, dword [esp + 0x20]
cmp eax, 0xa
jb 0x40e820
push 5
lea eax, [esp + 4]
push eax
push edi
call fcn.00402da0
add esp, 0xc
xor ecx, ecx
test eax, eax
setne cl
jmp dword [ecx*4 + 0x43c494]
mov word [esp + 0xb8], 0x21ac
lea eax, [esp + 0xba]
mov byte [eax + 8], 0
mov dword [eax + 4], 0
mov dword [eax], 0
mov dword [esp + 0x20], 0
mov eax, dword [esp + 0x20]
cmp eax, 0xa
ja 0x40e8f4
nop
nop
nop
mov eax, dword [esp + 0x20]
mov ecx, dword [esp + 0x20]
movzx ecx, byte [esp + ecx + 0xb8]
mov edx, 0x84
sub edx, eax
add eax, 0x2325fd7b
xor edx, eax
and edx, ecx
xor edx, eax
mov dword [esp + 0x14], edx
mov eax, dword [esp + 0x14]
add al, 0xa3
mov ecx, dword [esp + 0x20]
mov byte [esp + ecx + 0xb8], al
inc dword [esp + 0x20]
mov eax, dword [esp + 0x20]
cmp eax, 0xb
jb 0x40e8b0
push 2
lea eax, [esp + 0xbc]
push eax
push edi
call fcn.00402da0
add esp, 0xc
xor ecx, ecx
test eax, eax
setne cl
jmp dword [ecx*4 + 0x43c49c]
mov word [esp + 0x38], 0xad48
lea eax, [esp + 0x3a]
mov word [eax + 4], 0
mov dword [eax], 0
mov dword [esp + 0x20], 0
mov eax, dword [esp + 0x20]
cmp eax, 7
ja 0x40e97e
nop
nop
nop
mov eax, dword [esp + 0x20]
mov ecx, dword [esp + 0x20]
movzx ecx, byte [esp + ecx + 0x38]
mov edx, 0x19
sub edx, eax
add eax, 0x424a9ce6
xor edx, eax
and edx, ecx
xor edx, eax
mov dword [esp + 0x14], edx
mov eax, dword [esp + 0x14]
add al, 0xb6
mov ecx, dword [esp + 0x20]
mov byte [esp + ecx + 0x38], al
inc dword [esp + 0x20]
mov eax, dword [esp + 0x20]
cmp eax, 8
jb 0x40e940
push 3
lea eax, [esp + 0x3c]
push eax
push edi
call fcn.00402da0
add esp, 0xc
xor ecx, ecx
test eax, eax
setne cl
jmp dword [ecx*4 + 0x43c4a4]
jmp case.0x40ecd0.1
xor ecx, ecx
test eax, eax
setle cl
jmp dword [ecx*4 + 0x43c3cc]
mov word [esp + 0x48], 0xf956
lea eax, [esp + 0x4b]
mov dword [eax + 2], 0
mov dword [eax - 1], 0
mov dword [esp], 0
mov eax, dword [esp]
cmp eax, 8
ja 0x40ea2f
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp]
mov ecx, dword [esp]
movzx ecx, byte [esp + ecx + 0x48]
mov edx, 0x60
sub edx, eax
add eax, 0x3014c89f
xor edx, eax
and edx, ecx
xor edx, eax
mov dword [esp + 0xe8], edx
mov eax, dword [esp + 0xe8]
add al, 0xa7
mov ecx, dword [esp]
mov byte [esp + ecx + 0x48], al
inc dword [esp]
mov eax, dword [esp]
cmp eax, 9
jb 0x40e9f0
push esi
push edi
call fcn.00402720
add esp, 8
mov dword [esp + 0x1c], eax
mov word [esp + 0x48], 0x6dd2
lea eax, [esp + 0x4b]
mov dword [eax + 2], 0
mov dword [eax - 1], 0
mov dword [esp], 0
mov eax, dword [esp]
cmp eax, 8
ja 0x40eaaf
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp]
mov ecx, dword [esp]
movzx ecx, byte [esp + ecx + 0x48]
mov edx, 0x31
sub edx, eax
add eax, 0x75548dce
xor edx, eax
and edx, ecx
xor edx, eax
mov dword [esp + 0xe8], edx
mov eax, dword [esp + 0xe8]
add al, 0x5e
mov ecx, dword [esp]
mov byte [esp + ecx + 0x48], al
inc dword [esp]
mov eax, dword [esp]
cmp eax, 9
jb 0x40ea70
push esi
push edi
call fcn.00402720
add esp, 8
test eax, eax
sete dl
mov edi, dword [esp + 0x1c]
test edi, edi
sete cl
or cl, dl
movzx ecx, cl
jmp dword [ecx*4 + 0x43c5c4]
mov ecx, edi
mov edx, edi
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov edi, ecx
inc ecx
cmp byte [edi], 0
jne 0x40eae0
mov dword [esp + 0x18], eax
xor esi, esi
cmp edi, edx
jbe 0x40eb27
cmp byte [edx], 0
je 0x40eb27
xor esi, esi
mov ebx, dword [esp + 0x1c]
nop
nop
nop
mov dword [esp + 0x48], 0
lea eax, [esp + 0x48]
push eax
push edi
push ebx
call fcn.0040d060
add esp, 0xc
lea ecx, [ebx + eax]
inc esi
cmp ecx, edi
jae 0x40eb27
cmp byte [ebx + eax], 0
mov ebx, ecx
jne 0x40eb00
mov eax, esi
inc eax
lea eax, [esi + esi + 2]
jns 0x40eb35
mov eax, 0xffffffff
push eax
call fcn.00409030
add esp, 4
mov dword [esp + 0x48], 0
lea ecx, [eax + esi*2]
mov esi, eax
mov dword [esp + 0x34], eax
mov dword [esp + 0x24], ecx
cmp eax, ecx
mov eax, dword [esp + 0x18]
mov ebx, dword [esp + 0x1c]
jae 0x40f76a
mov esi, dword [esp + 0x34]
cmp ebx, edi
jae 0x40f76a
mov esi, dword [esp + 0x34]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp byte [ebx], 0
je 0x40f76a
lea eax, [esp + 0x48]
push eax
push edi
push ebx
call fcn.0040d060
add esp, 0xc
movzx ecx, word [esp + 0x48]
mov word [esi], cx
add esi, 2
cmp esi, dword [esp + 0x24]
jae 0x40f766
add ebx, eax
cmp ebx, edi
mov eax, dword [esp + 0x18]
jb 0x40eb80
jmp 0x40f76a
mov word [esp + 0x48], 0xb100
lea eax, [esp + 0x4b]
mov byte [eax + 7], 0
mov dword [eax + 3], 0
mov dword [eax - 1], 0
mov dword [esp], 0
mov eax, dword [esp]
cmp eax, 0xa
ja 0x40ec2f
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp]
mov ecx, dword [esp]
movzx ecx, byte [esp + ecx + 0x48]
mov edx, 0x67
sub edx, eax
add eax, 0x52d8fd98
xor edx, eax
and edx, ecx
xor edx, eax
mov dword [esp + 0xe8], edx
mov eax, dword [esp + 0xe8]
add al, 0xd8
mov ecx, dword [esp]
mov byte [esp + ecx + 0x48], al
inc dword [esp]
mov eax, dword [esp]
cmp eax, 0xb
jb 0x40ebf0
push esi
push edi
call fcn.00402720
add esp, 8
mov ebx, eax
mov word [esp + 0x48], 0x9912
lea eax, [esp + 0x4b]
mov dword [eax + 2], 0
mov dword [eax - 1], 0
mov dword [esp], 0
mov eax, dword [esp]
cmp eax, 8
ja 0x40ecaf
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp]
mov ecx, dword [esp]
movzx ecx, byte [esp + ecx + 0x48]
mov edx, 0x3b
sub edx, eax
add eax, 0xfddc8dc4
xor edx, eax
and edx, ecx
xor edx, eax
mov dword [esp + 0xe8], edx
mov eax, dword [esp + 0xe8]
add al, 0xa4
mov ecx, dword [esp]
mov byte [esp + ecx + 0x48], al
inc dword [esp]
mov eax, dword [esp]
cmp eax, 9
jb 0x40ec70
push esi
push edi
call fcn.00402720
add esp, 8
test ebx, ebx
sete dl
mov dword [esp + 0x1c], eax
test eax, eax
sete cl
or cl, dl
movzx eax, cl
mov dword [esp + 0x24], ebx
jmp dword [eax*4 + 0x43c67c]
mov eax, ebx
jmp dword [0x43c684]
mov eax, ebx
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov edi, eax
inc eax
cmp byte [edi], 0
jne 0x40ecf0
xor esi, esi
cmp edi, ebx
jbe 0x40ed37
cmp byte [ebx], 0
je 0x40ed37
xor esi, esi
mov ebx, dword [esp + 0x24]
nop
nop
nop
nop
nop
nop
nop
mov dword [esp + 0x48], 0
lea eax, [esp + 0x48]
push eax
push edi
push ebx
call fcn.0040d060
add esp, 0xc
lea ecx, [ebx + eax]
inc esi
cmp ecx, edi
jae 0x40ed37
cmp byte [ebx + eax], 0
mov ebx, ecx
jne 0x40ed10
mov eax, esi
inc eax
lea eax, [esi + esi + 2]
jns 0x40ed45
mov eax, 0xffffffff
push eax
call fcn.00409030
add esp, 4
mov ecx, eax
mov dword [esp + 0x48], 0
lea eax, [eax + esi*2]
mov dword [esp + 0x18], eax
cmp ecx, eax
mov ebx, dword [esp + 0x24]
jae 0x40eda3
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp ebx, edi
jae 0x40eda3
cmp byte [ebx], 0
je 0x40eda3
lea eax, [esp + 0x48]
push eax
push edi
push ebx
mov esi, ecx
call fcn.0040d060
add esp, 0xc
movzx ecx, word [esp + 0x48]
mov word [esi], cx
mov ecx, esi
add ecx, 2
cmp ecx, dword [esp + 0x18]
jae 0x40eda3
add ebx, eax
cmp ebx, edi
jb 0x40ed74
mov word [ecx], 0
xor ebx, ebx
mov edi, 0xfffffffe
mov eax, dword [esp + 0x1c]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
add edi, 2
cmp byte [eax + ebx], 0
lea ebx, [ebx + 1]
jne 0x40edc0
lea eax, [edi + 2]
test ebx, ebx
jns 0x40edd8
mov eax, 0xffffffff
push eax
call fcn.00409030
add esp, 4
mov edx, eax
mov dword [esp + 0x48], 0
add edi, eax
cmp eax, edi
jae 0x40ee31
mov eax, dword [esp + 0x1c]
lea esi, [eax + ebx]
dec esi
cmp eax, esi
jae 0x40ee31
mov ebx, eax
nop
cmp byte [ebx], 0
je 0x40ee31
lea eax, [esp + 0x48]
push eax
push esi
push ebx
mov dword [esp + 0x24], edx
call fcn.0040d060
mov edx, dword [esp + 0x24]
add esp, 0xc
movzx ecx, word [esp + 0x48]
mov word [edx], cx
add edx, 2
cmp edx, edi
jae 0x40ee31
add ebx, eax
cmp ebx, esi
jb 0x40ee00
mov word [edx], 0
mov word [esp + 0x48], 0x3539
mov byte [esp + 0x4a], 0xaa
mov dword [esp + 0x4f], 0
mov dword [esp + 0x4b], 0
mov dword [esp], 0
mov eax, dword [esp]
cmp eax, 0xa
ja 0x40eeaf
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp]
mov ecx, dword [esp]
movzx ecx, byte [esp + ecx + 0x48]
mov edx, 0xc5
sub edx, eax
add eax, 0x7270fd3a
xor edx, eax
and edx, ecx
xor edx, eax
mov dword [esp + 0xe8], edx
mov eax, dword [esp + 0xe8]
add al, 0x6a
mov ecx, dword [esp]
mov byte [esp + ecx + 0x48], al
inc dword [esp]
mov eax, dword [esp]
cmp eax, 0xb
jb 0x40ee70
lea eax, [esp + 0x48]
push eax
push dword [ebp + 8]
call fcn.00402980
add esp, 8
mov ebx, dword [esp + 0x24]
mov eax, ebx
jmp case.0x40ecd0.2
lea eax, [esp + 0x48]
push eax
push dword [ebp + 8]
call fcn.00402980
add esp, 8
mov edi, eax
mov ebx, dword [esp + 0x24]
mov eax, ebx
jmp dword [0x43c68c]
mov esi, eax
inc eax
cmp byte [esi], 0
jne case.0x40ecd0.2
xor edi, edi
cmp esi, ebx
jbe 0x40ef37
cmp byte [ebx], 0
je 0x40ef37
xor edi, edi
mov ebx, dword [esp + 0x24]
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov dword [esp + 0x48], 0
lea eax, [esp + 0x48]
push eax
push esi
push ebx
call fcn.0040d060
add esp, 0xc
lea ecx, [ebx + eax]
inc edi
cmp ecx, esi
jae 0x40ef37
cmp byte [ebx + eax], 0
mov ebx, ecx
jne 0x40ef10
mov eax, edi
inc eax
jns 0x40ef43
mov eax, 0xffffffff
jmp 0x40ef4a
lea eax, [edi*2 + 2]
push eax
call fcn.00409030
add esp, 4
mov dword [esp + 0x48], 0
lea ecx, [eax + edi*2]
mov edi, eax
mov dword [esp + 0x34], eax
mov dword [esp + 0x18], ecx
cmp eax, ecx
jae 0x40efb0
mov edi, dword [esp + 0x34]
cmp dword [esp + 0x24], esi
jae 0x40efb0
mov edi, dword [esp + 0x34]
mov ebx, dword [esp + 0x24]
nop
nop
cmp byte [ebx], 0
je 0x40efb0
lea eax, [esp + 0x48]
push eax
push esi
push ebx
call fcn.0040d060
add esp, 0xc
movzx ecx, word [esp + 0x48]
mov word [edi], cx
add edi, 2
cmp edi, dword [esp + 0x18]
jae 0x40efb0
add ebx, eax
cmp ebx, esi
jb 0x40ef80
nop
nop
nop
nop
nop
mov eax, dword [esp + 0x1c]
lea ecx, [eax - 1]
mov word [edi], 0
xor esi, esi
mov edi, 0xfffffffe
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
add edi, 2
cmp byte [eax + esi], 0
lea esi, [esi + 1]
jne 0x40efd0
test esi, esi
mov dword [esp + 0x18], ecx
jns 0x40efeb
mov eax, 0xffffffff
jmp 0x40efee
lea eax, [edi + 2]
push eax
call fcn.00409030
add esp, 4
mov dword [esp + 0x48], 0
add edi, eax
mov edx, eax
mov dword [esp + 0x28], eax
cmp eax, edi
mov ebx, dword [esp + 0x18]
jae 0x40f070
add ebx, esi
mov edx, dword [esp + 0x28]
cmp dword [esp + 0x1c], ebx
jae 0x40f070
mov edx, dword [esp + 0x28]
mov esi, dword [esp + 0x1c]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp byte [esi], 0
je 0x40f070
lea eax, [esp + 0x48]
push eax
push ebx
push esi
mov dword [esp + 0x24], edx
call fcn.0040d060
mov edx, dword [esp + 0x24]
add esp, 0xc
movzx ecx, word [esp + 0x48]
mov word [edx], cx
add edx, 2
cmp edx, edi
jae 0x40f070
add esi, eax
cmp esi, ebx
jb 0x40f030
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov word [edx], 0
mov word [esp + 0x48], 0x3539
mov byte [esp + 0x4a], 0xaa
mov dword [esp + 0x4f], 0
mov dword [esp + 0x4b], 0
mov dword [esp], 0
mov eax, dword [esp]
cmp eax, 0xa
ja 0x40eed0
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp]
mov ecx, dword [esp]
movzx ecx, byte [esp + ecx + 0x48]
mov edx, 0xc5
sub edx, eax
add eax, 0x7270fd3a
xor edx, eax
and edx, ecx
xor edx, eax
mov dword [esp + 0xe8], edx
mov eax, dword [esp + 0xe8]
add al, 0x6a
mov ecx, dword [esp]
mov byte [esp + ecx + 0x48], al
inc dword [esp]
mov eax, dword [esp]
cmp eax, 0xb
jb 0x40f0b0
jmp 0x40eed0
sete al
movzx eax, al
jmp dword [eax*4 + 0x43c3d4]
jmp dword [0x43c3dc]
mov word [esp + 0xc8], 0x39c6
lea eax, [esp + 0xcb]
mov word [eax + 3], 0
mov dword [eax - 1], 0
mov dword [esp + 0xe8], 0
mov eax, dword [esp + 0xe8]
cmp eax, 7
ja 0x40f193
nop
nop
nop
nop
mov eax, dword [esp + 0xe8]
mov ecx, dword [esp + 0xe8]
movzx ecx, byte [esp + ecx + 0xc8]
mov edx, 0x88
sub edx, eax
add eax, 0x82eec777
xor edx, eax
and edx, ecx
xor edx, eax
mov dword [esp + 0x48], edx
mov eax, dword [esp + 0x48]
add al, 0xbf
mov ecx, dword [esp + 0xe8]
mov byte [esp + ecx + 0xc8], al
inc dword [esp + 0xe8]
mov eax, dword [esp + 0xe8]
cmp eax, 8
jb 0x40f140
push 2
lea eax, [esp + 0xcc]
push eax
push edi
call fcn.00402da0
add esp, 0xc
jmp case.0x40e699.10
push 2
lea eax, [esp + 0xcc]
push eax
push edi
call fcn.00402da0
add esp, 0xc
jmp dword [0x43c3e4]
mov word [esp + 0xc8], 0x39c6
lea eax, [esp + 0xcb]
mov word [eax + 3], 0
mov dword [eax - 1], 0
mov dword [esp + 0x14], 0
mov eax, dword [esp + 0x14]
cmp eax, 7
ja 0x40f1b0
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x14]
movzx ecx, byte [esp + ecx + 0xc8]
mov edx, 0x88
sub edx, eax
add eax, 0x82eec777
xor edx, eax
and edx, ecx
xor edx, eax
mov dword [esp + 0x38], edx
mov eax, dword [esp + 0x38]
add al, 0xbf
mov ecx, dword [esp + 0x14]
mov byte [esp + ecx + 0xc8], al
inc dword [esp + 0x14]
mov eax, dword [esp + 0x14]
cmp eax, 8
jb 0x40f200
jmp 0x40f1b0
xor eax, eax
test edi, edi
setne al
mov dword [esp + 0x30], 0
mov dword [esp + 0x2c], 0
lea esi, [esp + 0x48]
jmp dword [eax*4 + 0x43c694]
mov ecx, esi
push 3
call fcn.00409b20
push dword [esp + 0x2c]
mov edi, dword [esp + 0x34]
push edi
push dword [esp + 0x30]
mov ebx, dword [esp + 0x40]
push ebx
push esi
call fcn.004163b0
add esp, 0x14
mov ecx, esi
call fcn.0040a460
xor eax, eax
test edi, edi
sete al
jmp dword [eax*4 + 0x43c6b4]
jmp dword [0x43c6c8]
mov edx, dword [esp + 0x30]
lea esi, [edx - 4]
mov eax, dword [edx - 4]
lea ecx, [eax + eax*2]
lea edi, [edx + ecx*4]
xor ecx, ecx
test eax, eax
sete cl
jmp dword [ecx*4 + 0x43c6cc]
push esi
call fcn.00409040
add esp, 4
lea esi, [esp + 0x48]
jmp dword [0x43c6dc]
add edi, 0xfffffff4
xor eax, eax
cmp edi, dword [esp + 0x30]
sete al
jmp dword [eax*4 + 0x43c6d4]
mov eax, dword [edi - 0xc]
test eax, eax
je 0x40f2f0
push eax
call fcn.00409040
add esp, 4
jmp 0x40f2f0
xor ecx, ecx
test eax, eax
setne cl
jmp dword [ecx*4 + 0x43c3ec]
mov word [esp + 0x48], 0x39d9
lea eax, [esp + 0x4b]
mov word [eax + 0xb], 0
mov dword [eax + 7], 0
mov dword [eax + 3], 0
mov dword [eax - 1], 0
mov dword [esp + 0x14], 0
mov eax, dword [esp + 0x14]
cmp eax, 0xf
ja 0x40f39e
nop
nop
nop
nop
nop
nop
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x14]
movzx ecx, byte [esp + ecx + 0x48]
mov edx, 8
sub edx, eax
add eax, 0xca326df7
xor edx, eax
and edx, ecx
xor edx, eax
mov dword [esp + 0x38], edx
mov eax, dword [esp + 0x38]
add al, 0x3f
mov ecx, dword [esp + 0x14]
mov byte [esp + ecx + 0x48], al
inc dword [esp + 0x14]
mov eax, dword [esp + 0x14]
cmp eax, 0x10
jb 0x40f360
push 5
push esi
push edi
call fcn.00402da0
add esp, 0xc
xor ecx, ecx
test eax, eax
setne cl
jmp dword [ecx*4 + 0x43c3f4]
jmp dword [0x43c3fc]
push edi
call fcn.00402ec0
add esp, 4
mov ecx, eax
mov dword [esp + 0x2c], eax
mov ecx, 0xc
mul ecx
seto dl
mov ecx, 0xffffffff
mov esi, 0xffffffff
add eax, 4
jb 0x40f3e8
mov esi, eax
test dl, dl
jne 0x40f3ee
mov ecx, esi
push ecx
call fcn.00409030
add esp, 4
mov ecx, dword [esp + 0x2c]
mov dword [eax], ecx
add eax, 4
mov dword [esp + 0x30], eax
xor eax, eax
test ecx, ecx
sete al
jmp dword [eax*4 + 0x43c69c]
mov eax, dword [esp + 0x2c]
lea eax, [eax + eax*2]
mov ecx, dword [esp + 0x30]
lea eax, [ecx + eax*4]
mov dword [ecx], 0
mov dword [ecx + 4], 0
mov dword [ecx + 8], 0
add ecx, 0xc
xor edx, edx
cmp ecx, eax
sete dl
jmp dword [edx*4 + 0x43c6a4]
mov dword [ecx], 0
mov dword [ecx + 4], 0
mov dword [ecx + 8], 0
add ecx, 0xc
xor edx, edx
cmp ecx, eax
sete dl
jmp dword [edx*4 + 0x43c6a4]
xor ecx, ecx
xor eax, eax
cmp ecx, dword [esp + 0x2c]
setb al
lea esi, [esp + 0x48]
mov dword [esp + 0xb4], edi
jmp dword [eax*4 + 0x43c6ac]
lea esi, [esp + 0x48]
mov word [edx], 0
mov ecx, dword [esp + 0x24]
inc ecx
xor eax, eax
cmp ecx, dword [esp + 0x2c]
setb al
mov edi, dword [esp + 0xb4]
jmp dword [eax*4 + 0x43c6ac]
mov dword [esp + 0x24], ecx
push ecx
push edi
call fcn.00402ed0
add esp, 8
mov ebx, eax
mov word [esp + 0x48], 0x5f49
mov byte [esp + 0x4a], 0xa2
lea eax, [esp + 0x4b]
mov word [eax + 4], 0
mov dword [eax], 0
mov dword [esp], 0
mov eax, dword [esp]
cmp eax, 8
ja 0x40f53f
mov eax, dword [esp]
mov ecx, dword [esp]
movzx ecx, byte [esp + ecx + 0x48]
mov edx, 0x99
sub edx, eax
add eax, 0x775c0766
xor edx, eax
and edx, ecx
xor edx, eax
mov dword [esp + 0xe8], edx
mov eax, dword [esp + 0xe8]
add al, 0x36
mov ecx, dword [esp]
mov byte [esp + ecx + 0x48], al
inc dword [esp]
mov eax, dword [esp]
cmp eax, 9
jb 0x40f500
push esi
push ebx
call fcn.00402720
add esp, 8
mov dword [esp + 0x1c], eax
mov word [esp + 0x48], 0x5b2d
mov byte [esp + 0x4a], 0xd4
lea eax, [esp + 0x4b]
mov byte [eax + 4], 0
mov dword [eax], 0
mov dword [esp], 0
mov eax, dword [esp]
cmp eax, 7
ja 0x40f5bf
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp]
mov ecx, dword [esp]
movzx ecx, byte [esp + ecx + 0x48]
mov edx, 0xe2
sub edx, eax
add eax, 0xd7d4501d
xor edx, eax
and edx, ecx
xor edx, eax
mov dword [esp + 0xe8], edx
mov eax, dword [esp + 0xe8]
add al, 0x35
mov ecx, dword [esp]
mov byte [esp + ecx + 0x48], al
inc dword [esp]
mov eax, dword [esp]
cmp eax, 8
jb 0x40f580
push esi
push ebx
call fcn.00402720
add esp, 8
mov dword [esp + 0x18], eax
mov word [esp + 0x48], 0xa1ad
mov byte [esp + 0x4a], 0x14
lea eax, [esp + 0x4b]
mov dword [eax + 7], 0
mov dword [eax + 4], 0
mov dword [eax], 0
mov dword [esp], 0
mov eax, dword [esp]
cmp eax, 0xd
ja 0x40f63f
mov eax, dword [esp]
mov ecx, dword [esp]
movzx ecx, byte [esp + ecx + 0x48]
mov edx, 2
sub edx, eax
add eax, 0x73eeabfd
xor edx, eax
and edx, ecx
xor edx, eax
mov dword [esp + 0xe8], edx
mov eax, dword [esp + 0xe8]
add al, 0x15
mov ecx, dword [esp]
mov byte [esp + ecx + 0x48], al
inc dword [esp]
mov eax, dword [esp]
cmp eax, 0xe
jb 0x40f600
push esi
push ebx
call fcn.00402720
add esp, 8
mov ecx, dword [esp + 0x24]
lea ecx, [ecx + ecx*2]
mov edx, dword [esp + 0x30]
mov dword [edx + ecx*4], 0
mov esi, dword [esp + 0x1c]
mov dword [edx + ecx*4 + 4], esi
lea ebx, [edx + ecx*4]
mov dword [edx + ecx*4 + 8], eax
xor esi, esi
mov edi, 0xfffffffe
mov eax, dword [esp + 0x18]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
add edi, 2
cmp byte [eax + esi], 0
lea esi, [esi + 1]
jne 0x40f680
test esi, esi
jns 0x40f6a0
mov eax, 0xffffffff
jmp 0x40f6a3
lea eax, [edi + 2]
push eax
call fcn.00409030
add esp, 4
mov edx, eax
mov dword [ebx], eax
mov eax, dword [esp + 0x18]
lea ebx, [eax + esi]
dec ebx
mov dword [esp + 0x48], 0
cmp ebx, eax
jbe 0x40f4a0
add edi, edx
cmp edx, edi
lea esi, [esp + 0x48]
jae 0x40f4a4
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp byte [eax], 0
je 0x40f4a4
push esi
push ebx
push eax
mov esi, eax
mov dword [esp + 0x24], edx
call fcn.0040d060
mov edx, dword [esp + 0x24]
add esp, 0xc
movzx ecx, word [esp + 0x48]
mov word [edx], cx
add edx, 2
cmp edx, edi
jae 0x40f4a0
add esi, eax
cmp esi, ebx
mov eax, esi
lea esi, [esp + 0x48]
jb 0x40f6e0
jmp 0x40f4a4
jmp dword [0x43c6dc]
jmp dword [0x43c6e8]
push ebx
call fcn.00409040
add esp, 4
nop
nop
nop
nop
nop
nop
nop
nop
nop
push ebx
call fcn.00409040
add esp, 4
jmp dword [0x43c6ec]
jmp dword [0x43c6f4]
push dword [esp + 0x28]
call fcn.00409040
add esp, 4
jmp case.0x40f4be.20
mov eax, dword [esp + 0x18]
mov word [esi], 0
lea edi, [eax - 1]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp byte [edi + 1], 0
lea edi, [edi + 1]
jne 0x40f780
xor esi, esi
cmp eax, edi
jae 0x40f7c7
cmp byte [eax], 0
je 0x40f7c7
xor esi, esi
mov ebx, dword [esp + 0x18]
nop
nop
nop
nop
nop
nop
mov dword [esp + 0x48], 0
lea eax, [esp + 0x48]
push eax
push edi
push ebx
call fcn.0040d060
add esp, 0xc
lea ecx, [ebx + eax]
inc esi
cmp ecx, edi
jae 0x40f7c7
cmp byte [ebx + eax], 0
mov ebx, ecx
jne 0x40f7a0
mov eax, esi
inc eax
lea eax, [esi + esi + 2]
jns 0x40f7d5
mov eax, 0xffffffff
push eax
call fcn.00409030
add esp, 4
mov dword [esp + 0x48], 0
lea ecx, [eax + esi*2]
mov esi, eax
mov dword [esp + 0x30], eax
mov dword [esp + 0x24], ecx
cmp eax, ecx
mov ebx, dword [esp + 0x18]
jae 0x40f83b
mov esi, dword [esp + 0x30]
cmp ebx, edi
jae 0x40f83b
mov esi, dword [esp + 0x30]
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp byte [ebx], 0
je 0x40f83b
lea eax, [esp + 0x48]
push eax
push edi
push ebx
call fcn.0040d060
add esp, 0xc
movzx ecx, word [esp + 0x48]
mov word [esi], cx
add esi, 2
cmp esi, dword [esp + 0x24]
jae 0x40f83b
add ebx, eax
cmp ebx, edi
jb 0x40f810
mov word [esi], 0
mov word [esp + 0x48], 0xf9c5
mov byte [esp + 0x4a], 0x62
mov dword [esp + 0x4f], 0
mov dword [esp + 0x4b], 0
mov dword [esp], 0
mov eax, dword [esp]
cmp eax, 0xa
ja 0x40f8af
nop
nop
nop
nop
nop
mov eax, dword [esp]
mov ecx, dword [esp]
movzx ecx, byte [esp + ecx + 0x48]
mov edx, 0x6f
sub edx, eax
add eax, 0xf85ad590
xor edx, eax
and edx, ecx
xor edx, eax
mov dword [esp + 0xe8], edx
mov eax, dword [esp + 0xe8]
add al, 0x10
mov ecx, dword [esp]
mov byte [esp + ecx + 0x48], al
inc dword [esp]
mov eax, dword [esp]
cmp eax, 0xb
jb 0x40f870
lea eax, [esp + 0x48]
push eax
push dword [ebp + 8]
call fcn.00402980
add esp, 8
xor ecx, ecx
mov dword [esp + 0x18], eax
test eax, eax
setne cl
mov dword [esp + 0x28], 0
mov dword [esp + 0x1c], 0
mov ebx, 0x51eb851f
jmp dword [ecx*4 + 0x43c5cc]
lea esi, [esp + 0x48]
mov ecx, esi
push 2
call fcn.00409b20
push dword [esp + 0x28]
mov edi, dword [esp + 0x20]
push edi
push dword [esp + 0x38]
push dword [esp + 0x40]
push esi
call fcn.00413a90
add esp, 0x14
mov ecx, esi
call fcn.0040a460
movzx eax, al
jmp dword [eax*4 + 0x43c60c]
mov eax, dword [esp + 0x4c]
mov byte [esp + 0xc2], 0
cmp eax, 0x3ff
ja 0x40f9f5
mov byte [esp + 0xc1], 0x30
lea esi, [esp + 0xc1]
mov ebx, dword [esp + 0x34]
jmp 0x40fa67
jmp dword [0x43c5d4]
push dword [esp + 0x18]
call fcn.00402ec0
add esp, 4
jmp case.0x40f8df.2
push ecx
call fcn.00409030
add esp, 4
mov dword [eax], edi
jmp dword [0x43c5dc]
push dword [esp + 0x18]
call fcn.00402ec0
add esp, 4
mov edi, eax
mov ecx, 0xc
mul ecx
seto dl
mov ecx, 0xffffffff
mov esi, 0xffffffff
add eax, 4
jb 0x40f9aa
mov esi, eax
test dl, dl
jne 0x40f970
mov ecx, esi
jmp 0x40f970
xor eax, eax
test edi, edi
sete al
mov ebx, dword [esp + 0x34]
jmp dword [eax*4 + 0x43c614]
add eax, 4
xor ecx, ecx
mov edx, edi
mov dword [esp + 0x28], edi
test edi, edi
sete cl
jmp dword [ecx*4 + 0x43c5e4]
mov ecx, dword [esp + 0x28]
lea ecx, [ecx + ecx*2]
lea edi, [eax + ecx*4]
mov ecx, dword [case.0x40f8df.9]
mov edx, dword [case.0x4104e9.71]
mov esi, eax
jmp ecx
mov ecx, eax
shr ecx, 0xa
lea esi, [esp + 0xc2]
cmp eax, 0x19000
jb 0x40fa49
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, ecx
mul ebx
shr edx, 5
imul eax, edx, 0x64
mov edi, ecx
sub edi, eax
movzx eax, word [edi + edi + 0x439520]
mov word [esi - 2], ax
add esi, 0xfffffffe
cmp ecx, 0x270f
mov ecx, edx
ja 0x40fa10
cmp edx, 9
ja 0x40fa50
movzx eax, byte [edx + str.0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ]
mov byte [esi - 1], al
dec esi
jmp 0x40fa5f
mov edx, ecx
cmp edx, 9
jbe 0x40fa3c
movzx eax, word [edx + edx + 0x439520]
mov word [esi - 2], ax
add esi, 0xfffffffe
mov ebx, dword [esp + 0x34]
mov edi, dword [esp + 0x1c]
mov dword [esp], 0xd3da9363
lea eax, [esp + 1]
mov byte [eax + 7], 0
mov dword [eax + 3], 0
mov dword [esp + 0xc8], 0
mov eax, dword [esp + 0xc8]
cmp eax, 8
ja 0x40faf1
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp + 0xc8]
mov ecx, dword [esp + 0xc8]
movzx ecx, byte [esp + ecx]
mov edx, 0x9c
sub edx, eax
add eax, 0x33180763
xor edx, eax
and edx, ecx
xor edx, eax
mov dword [esp + 0xe8], edx
mov eax, dword [esp + 0xe8]
add al, 0x4b
mov ecx, dword [esp + 0xc8]
mov byte [esp + ecx], al
inc dword [esp + 0xc8]
mov eax, dword [esp + 0xc8]
cmp eax, 9
jb 0x40faa0
mov dword [esp + 0xe8], 0x29283403
mov dword [esp + 0xec], 0xc7031713
mov dword [esp + 0xf0], 0x170b000e
mov dword [esp + 0xf4], 0x13ce0101
mov dword [esp + 0xf8], 0x619c91f
mov dword [esp + 0xfc], 0x14d61902
mov dword [esp + 0x100], 0x6050318
mov dword [esp + 0x104], 0xdf0b0015
mov dword [esp + 0x108], 0x10191808
mov dword [esp + 0x10c], 0x7ba67969
mov dword [esp + 0x110], 0x6b7ea177
mov dword [esp + 0x114], 0x627dad61
mov dword [esp + 0x118], 0x7967777a
mov dword [esp + 0x11c], 0x606ab5a0
mov dword [esp + 0x120], 0xb366706c
mov dword [esp + 0x124], 0x747d7c6c
mov dword [esp + 0x128], 0x68ba6575
mov dword [esp + 0x12c], 0x9d4b5f4d
mov word [esp + 0x130], 0xa180
lea eax, [esp + 0xea]
mov dword [eax + 0x4f], 0
mov dword [eax + 0x4c], 0
mov dword [eax + 0x48], 0
mov dword [esp + 0x38], 0
mov eax, dword [esp + 0x38]
cmp eax, 0x54
ja 0x40fc3a
nop
nop
mov eax, dword [esp + 0x38]
mov ecx, dword [esp + 0x38]
movzx ecx, byte [esp + ecx + 0xe8]
mov edx, 0x63
sub edx, eax
add eax, 0x65b3539c
xor edx, eax
and edx, ecx
xor edx, eax
mov dword [esp + 0xc8], edx
mov eax, dword [esp + 0xc8]
add al, 0xbc
mov ecx, dword [esp + 0x38]
mov byte [esp + ecx + 0xe8], al
inc dword [esp + 0x38]
mov eax, dword [esp + 0x38]
cmp eax, 0x55
jb 0x40fbf0
lea eax, [0x4402cf]
cmp byte [eax + 1], 0
lea eax, [eax + 1]
jne 0x40fc40
movzx ecx, byte [esp + 0xe8]
test cl, cl
je 0x40fc72
xor edx, edx
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov byte [eax + edx], cl
movzx ecx, byte [esp + edx + 0xe9]
inc edx
test cl, cl
jne 0x40fc60
add eax, edx
mov byte [eax], 0
movzx ecx, byte [esi]
test cl, cl
je 0x40fc8b
inc esi
nop
nop
nop
mov byte [eax], cl
inc eax
movzx ecx, byte [esi]
inc esi
test cl, cl
jne 0x40fc80
mov byte [eax], 0
movzx ecx, byte [esp]
test cl, cl
je 0x40fcad
lea edx, [esp + 1]
lea esi, [esp + 0x48]
nop
nop
mov byte [eax], cl
inc eax
movzx ecx, byte [edx]
inc edx
test cl, cl
jne 0x40fca0
jmp 0x40fcb1
lea esi, [esp + 0x48]
mov byte [eax], 0
xor eax, eax
test edi, edi
sete al
jmp dword [eax*4 + 0x43c614]
lea esi, [edi - 4]
mov eax, dword [edi - 4]
lea ecx, [eax + eax*2]
lea edi, [edi + ecx*4]
xor ecx, ecx
test eax, eax
sete cl
jmp dword [ecx*4 + 0x43c61c]
jmp dword [0x43c62c]
push esi
call fcn.00409040
add esp, 4
nop
nop
nop
nop
nop
push esi
call fcn.00409040
add esp, 4
jmp dword [0x43c634]
mov eax, dword [case.0x410ff9.5]
lea esi, [esp + 0x48]
nop
nop
nop
nop
nop
nop
nop
nop
jmp eax
jmp dword [0x43c64c]
push dword [esp + 0x30]
call fcn.00409040
add esp, 4
jmp dword [0x43c654]
add edi, 0xfffffff4
xor eax, eax
cmp edi, dword [esp + 0x1c]
sete al
jmp dword [eax*4 + 0x43c624]
mov eax, dword [edi - 0xc]
test eax, eax
je 0x40fd53
push eax
call fcn.00409040
add esp, 4
mov eax, dword [edi - 8]
test eax, eax
je 0x40fd30
push eax
call fcn.00409040
add esp, 4
jmp 0x40fd30
jmp dword [0x43c654]
jmp dword [0x43c660]
push ebx
call fcn.00409040
add esp, 4
nop
nop
nop
nop
nop
nop
push ebx
call fcn.00409040
add esp, 4
jmp dword [0x43c664]
jmp dword [0x43c670]
mov ecx, esi
call fcn.00409b60
nop
nop
nop
nop
mov ecx, esi
call fcn.00409b60
jmp dword [0x43c674]
mov word [esp + 0xc8], 0xacb8
mov byte [esp + 0xca], 0x20
lea eax, [esp + 0xcb]
mov byte [eax + 8], 0
mov dword [eax + 4], 0
mov dword [eax], 0
mov dword [esp + 0x20], 0
mov eax, dword [esp + 0x20]
cmp eax, 0xb
ja 0x40fe34
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp + 0x20]
mov ecx, dword [esp + 0x20]
movzx ecx, byte [esp + ecx + 0xc8]
mov edx, 0x84
sub edx, eax
add eax, 0xad5bd07b
xor edx, eax
and edx, ecx
xor edx, eax
mov dword [esp + 0x14], edx
mov eax, dword [esp + 0x14]
add al, 0xa3
mov ecx, dword [esp + 0x20]
mov byte [esp + ecx + 0xc8], al
inc dword [esp + 0x20]
mov eax, dword [esp + 0x20]
cmp eax, 0xc
jb 0x40fdf0
push 3
lea eax, [esp + 0xcc]
push eax
push edi
call fcn.00402da0
add esp, 0xc
xor ecx, ecx
test eax, eax
sete cl
jmp dword [ecx*4 + 0x43c4ac]
mov word [esp + 0x48], 0x6df7
lea eax, [esp + 0x4b]
mov dword [eax + 6], 0
mov dword [eax + 3], 0
mov dword [eax - 1], 0
mov dword [esp], 0
mov eax, dword [esp]
cmp eax, 0xc
ja 0x40fecf
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp]
mov ecx, dword [esp]
movzx ecx, byte [esp + ecx + 0x48]
mov edx, 0x8d
sub edx, eax
add eax, 0xcb24c572
xor edx, eax
and edx, ecx
xor edx, eax
mov dword [esp + 0xe8], edx
mov eax, dword [esp + 0xe8]
add al, 0xe2
mov ecx, dword [esp]
mov byte [esp + ecx + 0x48], al
inc dword [esp]
mov eax, dword [esp]
cmp eax, 0xd
jb 0x40fe90
push esi
push edi
call fcn.00402720
add esp, 8
mov dword [esp + 0x1c], eax
mov word [esp + 0x48], 0x2596
lea eax, [esp + 0x4b]
mov word [eax + 0xb], 0
mov dword [eax + 7], 0
mov dword [eax + 3], 0
mov dword [eax - 1], 0
mov dword [esp], 0
mov eax, dword [esp]
cmp eax, 0xf
ja 0x40ff5f
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp]
mov ecx, dword [esp]
movzx ecx, byte [esp + ecx + 0x48]
mov edx, 0x7a
sub edx, eax
add eax, 0xc26dfa85
xor edx, eax
and edx, ecx
xor edx, eax
mov dword [esp + 0xe8], edx
mov eax, dword [esp + 0xe8]
add al, 0x5d
mov ecx, dword [esp]
mov byte [esp + ecx + 0x48], al
inc dword [esp]
mov eax, dword [esp]
cmp eax, 0x10
jb 0x40ff20
push esi
push edi
call fcn.00402720
add esp, 8
mov dword [esp + 0x2c], eax
mov word [esp + 0x48], 0xad39
lea eax, [esp + 0x4b]
mov dword [eax + 2], 0
mov dword [eax - 1], 0
mov dword [esp], 0
mov eax, dword [esp]
cmp eax, 8
ja 0x40ffdf
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp]
mov ecx, dword [esp]
movzx ecx, byte [esp + ecx + 0x48]
mov edx, 0x65
sub edx, eax
add eax, 0x7450c89a
xor edx, eax
and edx, ecx
xor edx, eax
mov dword [esp + 0xe8], edx
mov eax, dword [esp + 0xe8]
add al, 0xca
mov ecx, dword [esp]
mov byte [esp + ecx + 0x48], al
inc dword [esp]
mov eax, dword [esp]
cmp eax, 9
jb 0x40ffa0
push esi
push edi
call fcn.00402980
add esp, 8
mov ebx, eax
mov word [esp + 0x48], 0xb13a
lea eax, [esp + 0x4b]
mov word [eax + 3], 0
mov dword [eax - 1], 0
mov dword [esp], 0
mov eax, dword [esp]
cmp eax, 7
ja 0x41005f
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp]
mov ecx, dword [esp]
movzx ecx, byte [esp + ecx + 0x48]
mov edx, 0x37
sub edx, eax
add eax, 0x2710ec8
xor edx, eax
and edx, ecx
xor edx, eax
mov dword [esp + 0xe8], edx
mov eax, dword [esp + 0xe8]
add al, 0x88
mov ecx, dword [esp]
mov byte [esp + ecx + 0x48], al
inc dword [esp]
mov eax, dword [esp]
cmp eax, 8
jb 0x410020
push esi
push edi
call fcn.00402720
add esp, 8
mov dword [esp + 0xd8], eax
mov word [esp + 0x48], 0x8d70
lea eax, [esp + 0x4b]
mov word [eax + 7], 0
mov dword [eax + 3], 0
mov dword [eax - 1], 0
mov dword [esp], 0
mov eax, dword [esp]
cmp eax, 0xb
ja 0x4100df
nop
nop
mov eax, dword [esp]
mov ecx, dword [esp]
movzx ecx, byte [esp + ecx + 0x48]
mov edx, 0x3d
sub edx, eax
add eax, 0x624c18c2
xor edx, eax
and edx, ecx
xor edx, eax
mov dword [esp + 0xe8], edx
mov eax, dword [esp + 0xe8]
add al, 0xb2
mov ecx, dword [esp]
mov byte [esp + ecx + 0x48], al
inc dword [esp]
mov eax, dword [esp]
cmp eax, 0xc
jb 0x4100a0
mov dword [esp + 0x28], ebx
push esi
push edi
call fcn.00402850
add esp, 8
mov word [esp + 0x48], 0xb2c6
mov byte [esp + 0x4a], 0x2a
lea eax, [esp + 0x4b]
mov word [eax + 8], 0
mov dword [eax + 4], 0
mov dword [eax], 0
fnstcw word [esp + 0xe4]
movzx eax, word [esp + 0xe4]
or eax, 0xc00
mov word [esp + 0x14c], ax
fldcw word [esp + 0x14c]
fistp dword [esp + 0x15c]
fldcw word [esp + 0xe4]
mov eax, dword [esp + 0x15c]
mov dword [esp + 0x34], eax
mov dword [esp], 0
mov eax, dword [esp]
cmp eax, 0xc
ja 0x41019f
nop
nop
nop
nop
nop
mov eax, dword [esp]
mov ecx, dword [esp]
movzx ecx, byte [esp + ecx + 0x48]
mov edx, 0x85
sub edx, eax
add eax, 0x3a52927a
xor edx, eax
and edx, ecx
xor edx, eax
mov dword [esp + 0xe8], edx
mov eax, dword [esp + 0xe8]
add al, 0xaa
mov ecx, dword [esp]
mov byte [esp + ecx + 0x48], al
inc dword [esp]
mov eax, dword [esp]
cmp eax, 0xd
jb 0x410160
push esi
push edi
call fcn.00402850
add esp, 8
xor esi, esi
mov ebx, 0xfffffffe
mov eax, dword [esp + 0x1c]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
add ebx, 2
cmp byte [eax + esi], 0
lea esi, [esi + 1]
jne 0x4101c0
fnstcw word [esp + 0xe2]
movzx eax, word [esp + 0xe2]
or eax, 0xc00
mov word [esp + 0x14a], ax
fldcw word [esp + 0x14a]
fistp dword [esp + 0x158]
fldcw word [esp + 0xe2]
mov eax, dword [esp + 0x158]
mov dword [esp + 0x30], eax
lea eax, [ebx + 2]
test esi, esi
jns 0x410214
mov eax, 0xffffffff
push eax
call fcn.00409030
add esp, 4
mov dword [esp + 0x48], 0
add ebx, eax
mov dword [esp + 0x18], eax
mov dword [esp + 0x24], eax
cmp eax, ebx
mov ecx, dword [esp + 0x1c]
jae 0x410284
lea edi, [ecx + esi]
dec edi
mov eax, dword [esp + 0x24]
mov dword [esp + 0x18], eax
cmp ecx, edi
jae 0x410284
mov eax, dword [esp + 0x24]
mov dword [esp + 0x18], eax
cmp byte [ecx], 0
je 0x410284
lea eax, [esp + 0x48]
push eax
push edi
push ecx
mov esi, ecx
call fcn.0040d060
add esp, 0xc
movzx ecx, word [esp + 0x48]
mov edx, dword [esp + 0x18]
mov word [edx], cx
add edx, 2
mov dword [esp + 0x18], edx
cmp edx, ebx
jae 0x410284
add esi, eax
cmp esi, edi
mov ecx, esi
jb 0x41024f
mov eax, dword [esp + 0x18]
mov word [eax], 0
mov dword [esp + 0xe8], 0
mov dword [esp + 0xec], 0
mov dword [esp + 0xf0], 0
lea ecx, [esp + 0xe8]
mov esi, dword [esp + 0x24]
push esi
call fcn.00431c10
jmp dword [0x43c4b4]
push esi
call fcn.00409040
add esp, 4
lea ecx, [esp + 0xe8]
push 0x400
call fcn.00431e70
mov ecx, dword [case.0x40fe4e.7]
lea esi, [esp + 0x48]
nop
nop
nop
nop
nop
nop
nop
jmp ecx
not eax
shr eax, 0x1f
jmp dword [eax*4 + 0x43c4cc]
jmp dword [0x43c5a8]
mov dword [esp + 0xc8], 0
mov ecx, dword [esp + 0xe8]
mov dword [esp + 0x48], 0x3a393837
mov dword [esp + 0x50], 0
mov dword [esp + 0x4c], 0
mov dword [esp + 0xb8], 0
mov eax, dword [esp + 0xb8]
cmp eax, 0xb
ja 0x410390
mov eax, dword [esp + 0xb8]
mov edx, dword [esp + 0xb8]
movzx edx, byte [esp + edx + 0x48]
mov esi, 0x58
sub esi, eax
add eax, 0xe8f81ca7
xor esi, eax
and esi, edx
xor esi, eax
mov dword [esp], esi
mov eax, dword [esp]
add al, 0x6f
mov edx, dword [esp + 0xb8]
mov byte [esp + edx + 0x48], al
inc dword [esp + 0xb8]
mov eax, dword [esp + 0xb8]
cmp eax, 0xc
jb 0x410345
mov eax, dword [esp + 0x48]
mov edx, dword [0x4412dc]
test edx, edx
je case.default.0x4103e8
xor esi, esi
mov edi, dword [0x4412e0]
cmp dword [edi + esi*8], 0xe812c154
je 0x4103b6
inc esi
cmp edx, esi
jne 0x4103a6
jmp case.default.0x4103e8
mov edx, dword [edi + esi*8 + 4]
cmp edx, eax
je case.default.0x4103e8
lea eax, [esp + 0xc8]
push eax
push 0
push 0
push 0x2b
push ecx
push 5
push dword [0x4412e4]
push edx
call fcn.004337a0
add esp, 0x20
xor ecx, ecx
cmp eax, 0xc0000004
sete cl
jmp dword [ecx*4 + 0x43c4d4]
lea esi, [esp + 0x48]
jmp dword [0x43c5a8]
mov eax, dword [esp + 0xc8]
add eax, 2
push eax
call fcn.00431ab0
add esp, 4
mov dword [esp + 0x44], eax
mov edx, dword [esp + 0xc8]
mov ecx, dword [esp + 0xe8]
mov dword [esp + 0x48], 0x3a393837
mov dword [esp + 0x50], 0
mov dword [esp + 0x4c], 0
add edx, 2
mov dword [esp + 0xb8], 0
mov eax, dword [esp + 0xb8]
cmp eax, 0xb
ja 0x41049b
mov eax, dword [esp + 0xb8]
mov esi, dword [esp + 0xb8]
movzx esi, byte [esp + esi + 0x48]
mov edi, 0x58
sub edi, eax
add eax, 0xe8f81ca7
xor edi, eax
and edi, esi
xor edi, eax
mov dword [esp], edi
mov eax, dword [esp]
add al, 0x6f
mov esi, dword [esp + 0xb8]
mov byte [esp + esi + 0x48], al
inc dword [esp + 0xb8]
mov eax, dword [esp + 0xb8]
cmp eax, 0xc
jb 0x410450
mov eax, dword [esp + 0x48]
mov esi, dword [0x4412dc]
test esi, esi
je case.default.0x4104e9
xor edi, edi
mov ebx, dword [0x4412e0]
cmp dword [ebx + edi*8], 0xe812c154
je 0x4104c1
inc edi
cmp esi, edi
jne 0x4104b1
jmp case.default.0x4104e9
mov esi, dword [ebx + edi*8 + 4]
cmp esi, eax
je case.default.0x4104e9
push 0
push edx
push dword [esp + 0x4c]
push 0x2b
push ecx
push 5
push dword [0x4412e4]
push esi
call fcn.004337a0
add esp, 0x20
not eax
shr eax, 0x1f
jmp dword [eax*4 + 0x43c4dc]
mov ecx, dword [esp + 0x2c]
mov eax, ecx
mov esi, eax
inc eax
cmp byte [esi], 0
jne 0x4104f6
mov edi, esi
sub edi, ecx
mov eax, edi
inc eax
mov dword [esp + 0x1c], eax
lea eax, [edi + edi + 2]
jns 0x410514
mov eax, 0xffffffff
push eax
call fcn.00409030
add esp, 4
mov dword [esp + 0x48], 0
lea ecx, [eax + edi*2]
mov ebx, eax
mov dword [esp + 0x24], eax
mov dword [esp + 0x18], ecx
cmp eax, ecx
mov edi, dword [esp + 0x2c]
jae 0x410571
mov ebx, dword [esp + 0x24]
cmp edi, esi
jae 0x410571
mov ebx, dword [esp + 0x24]
cmp byte [edi], 0
je 0x410571
lea eax, [esp + 0x48]
push eax
push esi
push edi
call fcn.0040d060
add esp, 0xc
movzx ecx, word [esp + 0x48]
mov word [ebx], cx
add ebx, 2
cmp ebx, dword [esp + 0x18]
jae 0x410571
add edi, eax
cmp edi, esi
jb 0x410546
mov word [ebx], 0
mov eax, dword [case.0x4104e9.5]
jmp eax
mov eax, dword [esp + 0x44]
mov edi, dword [eax + 4]
movzx eax, word [eax]
and eax, 0xfffffffe
lea esi, [edi + eax]
add esi, 0xfffffffe
mov eax, dword [case.0x4104e9.10]
xor edx, edx
cmp esi, edi
setae dl
mov ecx, esi
jmp dword [edx*4 + 0x43c4f4]
jmp eax
movzx edx, word [ecx]
xor ebx, ebx
test dx, dx
setne bl
jmp dword [ebx*4 + 0x43c50c]
xor ebx, ebx
cmp dx, 0x5c
sete bl
jmp dword [ebx*4 + 0x43c514]
add ecx, 0xfffffffe
xor edx, edx
cmp ecx, edi
setae dl
jmp dword [edx*4 + 0x43c4f4]
mov esi, ecx
jmp dword [0x43c528]
mov dword [esp + 0x2c], esi
mov ebx, edi
sub esi, edi
sar esi, 1
mov ecx, dword [esp + 0x1c]
add ecx, esi
lea eax, [ecx + ecx]
test ecx, ecx
jns 0x410609
mov eax, 0xffffffff
push eax
call fcn.00409030
add esp, 4
mov dword [esp + 0x18], eax
mov edi, eax
cmp dword [esp + 0x2c], ebx
je 0x4106c5
mov eax, dword [esp + 0x44]
mov eax, dword [eax + 4]
lea ecx, [esi - 1]
mov edx, esi
and edx, 3
je 0x41066a
mov dword [esp + 0x2c], esi
mov dword [esp + 0x1c], ecx
xor ebx, ebx
mov edi, dword [esp + 0x18]
movzx ecx, word [eax]
mov esi, edx
xor edx, edx
test cx, cx
setne dl
lea eax, [eax + edx*2]
mov edx, esi
mov word [edi], cx
add edi, 2
inc ebx
cmp esi, ebx
jne 0x410641
mov esi, dword [esp + 0x2c]
sub esi, ebx
mov ecx, dword [esp + 0x1c]
jmp 0x41066e
mov edi, dword [esp + 0x18]
cmp ecx, 3
jb 0x4106c5
movzx ecx, word [eax]
xor edx, edx
test cx, cx
setne dl
mov word [edi], cx
lea ecx, [eax + edx*2]
movzx eax, word [eax + edx*2]
xor edx, edx
test ax, ax
setne dl
mov word [edi + 2], ax
lea eax, [ecx + edx*2]
movzx ecx, word [ecx + edx*2]
xor edx, edx
test cx, cx
setne dl
mov word [edi + 4], cx
lea ecx, [eax + edx*2]
movzx edx, word [eax + edx*2]
xor eax, eax
test dx, dx
setne al
lea eax, [ecx + eax*2]
mov word [edi + 6], dx
add edi, 8
add esi, 0xfffffffc
jne 0x410673
mov edx, dword [esp + 0x24]
movzx eax, word [edx]
test ax, ax
je 0x410992
mov ecx, edx
add ecx, 2
mov esi, dword [esp + 0x18]
mov word [edi], ax
add edi, 2
movzx eax, word [ecx]
add ecx, 2
test ax, ax
jne 0x4106de
mov word [edi], 0
jmp dword [0x43c52c]
push edx
call fcn.00409040
add esp, 4
sub edi, esi
mov eax, 0xffffffff
cmp edi, 0xfffffffe
jl 0x410714
add edi, 2
mov eax, edi
push eax
call fcn.00409030
add esp, 4
mov dword [esp + 0xb4], eax
mov eax, dword [case.0x4104e9.29]
jmp eax
push dword [esp + 0xb4]
push esi
call fcn.0042f100
add esp, 8
mov edx, dword [esp + 0xd8]
mov eax, edx
jmp dword [0x43c554]
push esi
call fcn.00409040
mov edx, dword [esp + 0xdc]
add esp, 4
mov ecx, dword [case.0x4104e9.31]
mov eax, edx
jmp ecx
mov edi, eax
inc eax
cmp byte [edi], 0
jne case.0x4104e9.31
push edi
push edx
call fcn.00413540
add esp, 8
mov esi, eax
inc eax
lea eax, [esi + esi + 2]
jns 0x410784
mov eax, 0xffffffff
push eax
call fcn.00409030
add esp, 4
mov dword [esp + 0x48], 0
lea ecx, [eax + esi*2]
mov esi, eax
mov dword [esp + 0x2c], eax
mov dword [esp + 0x18], ecx
cmp eax, ecx
mov ebx, dword [esp + 0xd8]
jae 0x4107e4
mov esi, dword [esp + 0x2c]
cmp ebx, edi
jae 0x4107e4
mov esi, dword [esp + 0x2c]
cmp byte [ebx], 0
je 0x4107e4
lea eax, [esp + 0x48]
push eax
push edi
push ebx
call fcn.0040d060
add esp, 0xc
movzx ecx, word [esp + 0x48]
mov word [esi], cx
add esi, 2
cmp esi, dword [esp + 0x18]
jae 0x4107e4
add ebx, eax
cmp ebx, edi
jb 0x4107b9
mov word [esi], 0
lea esi, [esp + 0x48]
mov ecx, esi
push 1
call fcn.00409b20
xor edi, edi
mov ebx, dword [esp + 0x28]
jmp 0x410803
mov edi, dword [esp + 0x24]
inc edi
push ebx
call fcn.00402ec0
add esp, 4
xor ecx, ecx
cmp edi, eax
setb cl
jmp dword [ecx*4 + 0x43c56c]
mov dword [esp + 0x24], edi
push edi
push ebx
call fcn.00402ea0
add esp, 8
push eax
call fcn.00402830
add esp, 4
mov edi, eax
xor eax, eax
test edi, edi
sete al
jmp dword [eax*4 + 0x43c58c]
mov eax, edi
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov ebx, eax
inc eax
cmp byte [ebx], 0
jne 0x410850
mov esi, ebx
sub esi, edi
mov eax, esi
inc eax
jns 0x410868
mov eax, 0xffffffff
jmp 0x41086f
lea eax, [esi*2 + 2]
push eax
call fcn.00409030
add esp, 4
mov dword [esp], 0
lea ecx, [eax + esi*2]
mov esi, eax
mov dword [esp + 0x1c], eax
mov dword [esp + 0x18], ecx
cmp eax, ecx
jae 0x4108c8
mov esi, dword [esp + 0x1c]
cmp edi, ebx
jae 0x4108c8
mov esi, dword [esp + 0x1c]
nop
nop
nop
nop
cmp byte [edi], 0
je 0x4108c8
mov eax, esp
push eax
push ebx
push edi
call fcn.0040d060
add esp, 0xc
movzx ecx, word [esp]
mov word [esi], cx
add esi, 2
cmp esi, dword [esp + 0x18]
jae 0x4108c8
add edi, eax
cmp edi, ebx
jb 0x4108a0
mov word [esi], 0
push 0
push 0
push dword [esp + 0x3c]
push dword [esp + 0x3c]
mov edi, dword [esp + 0x2c]
push edi
push dword [esp + 0xc8]
push dword [esp + 0x44]
lea esi, [esp + 0x64]
push esi
call fcn.00418630
add esp, 0x20
mov ebx, dword [esp + 0x28]
jmp dword [0x43c594]
push edi
call fcn.00409040
add esp, 4
jmp case.0x4104e9.45
jmp dword [0x43c580]
jmp dword [0x43c584]
push dword [esp + 0x2c]
call fcn.00409040
add esp, 4
jmp dword [0x43c59c]
jmp dword [0x43c59c]
push dword [esp + 0xb4]
call fcn.00409040
add esp, 4
mov ecx, esi
call fcn.0040a460
mov ecx, esi
call fcn.00409b60
push dword [esp + 0x44]
call fcn.00431b40
add esp, 4
lea esi, [esp + 0x48]
jmp dword [0x43c5a8]
lea ecx, [esp + 0xe8]
call fcn.00431fa0
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
lea ecx, [esp + 0xe8]
call fcn.00431fa0
jmp dword [0x43c5b0]
mov esi, dword [esp + 0x18]
mov word [edi], 0
jmp dword [0x43c52c]
xor ecx, ecx
test eax, eax
setne cl
jmp dword [ecx*4 + 0x43c40c]
mov word [esp], 0xcd70
lea eax, [esp + 1]
mov byte [eax + 9], 0
mov dword [eax + 5], 0
mov dword [eax + 1], 0
mov dword [esp + 0x14], 0
mov eax, dword [esp + 0x14]
cmp eax, 0xa
ja 0x410a1c
nop
nop
nop
nop
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x14]
movzx ecx, byte [esp + ecx]
mov edx, 0xdd
sub edx, eax
add eax, 0x99f3d522
xor edx, eax
and edx, ecx
xor edx, eax
mov dword [esp + 0x38], edx
mov eax, dword [esp + 0x38]
add al, 0x12
mov ecx, dword [esp + 0x14]
mov byte [esp + ecx], al
inc dword [esp + 0x14]
mov eax, dword [esp + 0x14]
cmp eax, 0xb
jb 0x4109e0
push 3
lea eax, [esp + 4]
push eax
push edi
call fcn.00402da0
add esp, 0xc
xor ecx, ecx
test eax, eax
setne cl
jmp dword [ecx*4 + 0x43c414]
jmp case.0x40ecd0.1
mov word [esp + 0xb8], 0xe2f6
mov byte [esp + 0xba], 0x6a
lea eax, [esp + 0xba]
mov word [eax + 9], 0
mov dword [eax + 5], 0
mov dword [eax + 1], 0
mov dword [esp + 0x14], 0
mov eax, dword [esp + 0x14]
cmp eax, 0xc
ja 0x410ac4
nop
nop
nop
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x14]
movzx ecx, byte [esp + ecx + 0xb8]
mov edx, 0x4d
sub edx, eax
add eax, 0xf82405b2
xor edx, eax
and edx, ecx
xor edx, eax
mov dword [esp + 0x38], edx
mov eax, dword [esp + 0x38]
add al, 0x22
mov ecx, dword [esp + 0x14]
mov byte [esp + ecx + 0xb8], al
inc dword [esp + 0x14]
mov eax, dword [esp + 0x14]
cmp eax, 0xd
jb 0x410a80
push 3
lea eax, [esp + 0xbc]
push eax
push edi
call fcn.00402da0
add esp, 0xc
xor ecx, ecx
test eax, eax
sete cl
jmp dword [ecx*4 + 0x43c41c]
mov word [esp + 0x48], 0xd9c
lea eax, [esp + 0x4b]
mov dword [eax + 6], 0
mov dword [eax + 3], 0
mov dword [eax - 1], 0
mov dword [esp], 0
mov eax, dword [esp]
cmp eax, 0xc
ja 0x410b5f
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp]
mov ecx, dword [esp]
movzx ecx, byte [esp + ecx + 0x48]
mov edx, 0x81
sub edx, eax
add eax, 0x3b17c67e
xor edx, eax
and edx, ecx
xor edx, eax
mov dword [esp + 0xe8], edx
mov eax, dword [esp + 0xe8]
add al, 0x8e
mov ecx, dword [esp]
mov byte [esp + ecx + 0x48], al
inc dword [esp]
mov eax, dword [esp]
cmp eax, 0xd
jb 0x410b20
push esi
push edi
call fcn.00402720
add esp, 8
mov dword [esp + 0x28], eax
mov word [esp + 0x48], 0x2d91
lea eax, [esp + 0x4b]
mov word [eax + 7], 0
mov dword [eax + 3], 0
mov dword [eax - 1], 0
mov dword [esp], 0
mov eax, dword [esp]
cmp eax, 0xb
ja 0x410bdf
nop
nop
nop
nop
nop
mov eax, dword [esp]
mov ecx, dword [esp]
movzx ecx, byte [esp + ecx + 0x48]
mov edx, 0x79
sub edx, eax
add eax, 0x621d5c86
xor edx, eax
and edx, ecx
xor edx, eax
mov dword [esp + 0xe8], edx
mov eax, dword [esp + 0xe8]
add al, 0x56
mov ecx, dword [esp]
mov byte [esp + ecx + 0x48], al
inc dword [esp]
mov eax, dword [esp]
cmp eax, 0xc
jb 0x410ba0
push esi
push edi
call fcn.00402980
add esp, 8
mov dword [esp + 0x34], eax
mov word [esp + 0x48], 0x59c2
lea eax, [esp + 0x4b]
mov word [eax + 3], 0
mov dword [eax - 1], 0
mov dword [esp], 0
mov eax, dword [esp]
cmp eax, 7
ja 0x410c5f
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp]
mov ecx, dword [esp]
movzx ecx, byte [esp + ecx + 0x48]
mov edx, 0x33
sub edx, eax
add eax, 0x42601ecc
xor edx, eax
and edx, ecx
xor edx, eax
mov dword [esp + 0xe8], edx
mov eax, dword [esp + 0xe8]
add al, 0x6c
mov ecx, dword [esp]
mov byte [esp + ecx + 0x48], al
inc dword [esp]
mov eax, dword [esp]
cmp eax, 8
jb 0x410c20
push esi
push edi
call fcn.00402720
add esp, 8
mov dword [esp + 0x1c], eax
mov word [esp + 0x48], 0x2d48
lea eax, [esp + 0x4b]
mov byte [eax + 7], 0
mov dword [eax + 3], 0
mov dword [eax - 1], 0
mov dword [esp], 0
mov eax, dword [esp]
cmp eax, 0xa
ja 0x410cdf
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp]
mov ecx, dword [esp]
movzx ecx, byte [esp + ecx + 0x48]
mov edx, 0xd9
sub edx, eax
add eax, 0xccb2c126
xor edx, eax
and edx, ecx
xor edx, eax
mov dword [esp + 0xe8], edx
mov eax, dword [esp + 0xe8]
add al, 0xf6
mov ecx, dword [esp]
mov byte [esp + ecx + 0x48], al
inc dword [esp]
mov eax, dword [esp]
cmp eax, 0xb
jb 0x410ca0
push esi
push edi
call fcn.00402850
add esp, 8
mov word [esp + 0x48], 0x1a06
mov byte [esp + 0x4a], 0x72
lea eax, [esp + 0x4b]
mov byte [eax + 4], 0
mov dword [eax], 0
fnstcw word [esp + 0xe0]
movzx eax, word [esp + 0xe0]
or eax, 0xc00
mov word [esp + 0x148], ax
fldcw word [esp + 0x148]
fistp dword [esp + 0x164]
fldcw word [esp + 0xe0]
mov eax, dword [esp + 0x164]
mov dword [esp + 0x2c], eax
mov dword [esp], 0
mov eax, dword [esp]
cmp eax, 7
ja 0x410d8f
nop
nop
mov eax, dword [esp]
mov ecx, dword [esp]
movzx ecx, byte [esp + ecx + 0x48]
mov edx, 0x91
sub edx, eax
add eax, 0x42c8b66e
xor edx, eax
and edx, ecx
xor edx, eax
mov dword [esp + 0xe8], edx
mov eax, dword [esp + 0xe8]
add al, 0xfe
mov ecx, dword [esp]
mov byte [esp + ecx + 0x48], al
inc dword [esp]
mov eax, dword [esp]
cmp eax, 8
jb 0x410d50
push esi
push edi
call fcn.00402850
add esp, 8
mov word [esp + 0x48], 0x2126
mov byte [esp + 0x4a], 0xf2
lea eax, [esp + 0x4b]
mov word [eax + 8], 0
mov dword [eax + 4], 0
mov dword [eax], 0
fnstcw word [esp + 0xde]
movzx eax, word [esp + 0xde]
or eax, 0xc00
mov word [esp + 0x146], ax
fldcw word [esp + 0x146]
fistp dword [esp + 0x160]
fldcw word [esp + 0xde]
mov eax, dword [esp + 0x160]
mov dword [esp + 0xb4], eax
mov dword [esp], 0
mov eax, dword [esp]
cmp eax, 0xc
ja 0x410e4f
nop
nop
nop
nop
nop
nop
mov eax, dword [esp]
mov ecx, dword [esp]
movzx ecx, byte [esp + ecx + 0x48]
mov edx, 0xc1
sub edx, eax
add eax, 0x2a17863e
xor edx, eax
and edx, ecx
xor edx, eax
mov dword [esp + 0xe8], edx
mov eax, dword [esp + 0xe8]
add al, 0x4e
mov ecx, dword [esp]
mov byte [esp + ecx + 0x48], al
inc dword [esp]
mov eax, dword [esp]
cmp eax, 0xd
jb 0x410e10
push esi
push edi
call fcn.00402ab0
add esp, 8
mov dword [esp + 0xd8], eax
mov eax, dword [esp + 0x28]
lea esi, [eax - 1]
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp byte [esi + 1], 0
lea esi, [esi + 1]
jne 0x410e70
xor edi, edi
cmp eax, esi
jae 0x410eb7
cmp byte [eax], 0
je 0x410eb7
xor edi, edi
mov ebx, dword [esp + 0x28]
nop
nop
nop
nop
nop
nop
mov dword [esp + 0x48], 0
lea eax, [esp + 0x48]
push eax
push esi
push ebx
call fcn.0040d060
add esp, 0xc
lea ecx, [ebx + eax]
inc edi
cmp ecx, esi
jae 0x410eb7
cmp byte [ebx + eax], 0
mov ebx, ecx
jne 0x410e90
mov eax, edi
inc eax
lea eax, [edi + edi + 2]
jns 0x410ec5
mov eax, 0xffffffff
push eax
call fcn.00409030
add esp, 4
mov dword [esp + 0x48], 0
lea ecx, [eax + edi*2]
mov ebx, eax
mov dword [esp + 0x44], eax
mov dword [esp + 0x18], ecx
cmp eax, ecx
mov ecx, dword [esp + 0x28]
jae 0x410f39
mov ebx, dword [esp + 0x44]
cmp ecx, esi
jae 0x410f39
mov ebx, dword [esp + 0x44]
mov dword [esp + 0x24], edi
nop
nop
nop
nop
nop
cmp byte [ecx], 0
je 0x410f39
lea eax, [esp + 0x48]
push eax
push esi
push ecx
mov edi, ecx
call fcn.0040d060
add esp, 0xc
movzx ecx, word [esp + 0x48]
mov word [ebx], cx
add ebx, 2
cmp ebx, dword [esp + 0x18]
jae 0x410f35
add edi, eax
cmp edi, esi
mov ecx, edi
mov edi, dword [esp + 0x24]
jb 0x410f00
jmp 0x410f39
mov edi, dword [esp + 0x24]
mov word [ebx], 0
mov eax, esp
push eax
push 0
push 0
push edi
mov ebx, dword [esp + 0x54]
push ebx
push 0
call dword [0x4412d8]
mov esi, dword [esp]
lea eax, [esi + esi]
test esi, esi
jns 0x410f62
mov eax, 0xffffffff
push eax
call fcn.00409030
add esp, 4
mov ecx, eax
mov eax, esp
push eax
push esi
mov dword [esp + 0x38], ecx
push ecx
push edi
push ebx
push 0
call dword [0x4412d8]
jmp dword [0x43c424]
push ebx
call fcn.00409040
add esp, 4
mov ecx, dword [esp + 0x1c]
mov eax, ecx
jmp 0x41120a
mov ecx, dword [esp + 0x1c]
mov edi, ecx
jmp 0x411202
jmp dword [0x43c46c]
lea eax, [esp + 0x48]
push eax
push esi
call fcn.00402ab0
add esp, 8
xor edx, edx
test eax, eax
setg dl
lea eax, [edi + edi*2]
mov ecx, dword [esp + 0x1c]
lea ecx, [ecx + eax*4]
push edx
push dword [esp + 0x28]
push ebx
call fcn.00413590
inc edi
xor eax, eax
cmp edi, dword [esp + 0x28]
setb al
mov ebx, 0x51eb851f
jmp dword [eax*4 + 0x43c604]
push edi
push dword [esp + 0x1c]
call fcn.00402ed0
add esp, 8
mov esi, eax
mov word [esp + 0x48], 0x67a1
mov byte [esp + 0x4a], 0xf8
lea eax, [esp + 0x4b]
mov byte [eax + 4], 0
mov dword [eax], 0
mov dword [esp], 0
mov eax, dword [esp]
cmp eax, 7
ja 0x41107f
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp]
mov ecx, dword [esp]
movzx ecx, byte [esp + ecx + 0x48]
mov edx, 0x80
sub edx, eax
add eax, 0x2cce77f
xor edx, eax
and edx, ecx
xor edx, eax
mov dword [esp + 0xe8], edx
mov eax, dword [esp + 0xe8]
add al, 0x87
mov ecx, dword [esp]
mov byte [esp + ecx + 0x48], al
inc dword [esp]
mov eax, dword [esp]
cmp eax, 8
jb 0x411040
lea eax, [esp + 0x48]
push eax
push esi
call fcn.00402720
add esp, 8
mov dword [esp + 0x24], eax
mov word [esp + 0x48], 0xdbcd
mov byte [esp + 0x4a], 0x54
mov dword [esp + 0x4f], 0
mov dword [esp + 0x4b], 0
mov dword [esp], 0
mov eax, dword [esp]
cmp eax, 0xa
ja 0x4110ff
nop
nop
nop
nop
mov eax, dword [esp]
mov ecx, dword [esp]
movzx ecx, byte [esp + ecx + 0x48]
mov edx, 0x32
sub edx, eax
add eax, 0x17cde9cd
xor edx, eax
and edx, ecx
xor edx, eax
mov dword [esp + 0xe8], edx
mov eax, dword [esp + 0xe8]
add al, 0x65
mov ecx, dword [esp]
mov byte [esp + ecx + 0x48], al
inc dword [esp]
mov eax, dword [esp]
cmp eax, 0xb
jb 0x4110c0
lea eax, [esp + 0x48]
push eax
push esi
call fcn.00402720
add esp, 8
mov ebx, eax
mov dword [esp + 0x48], 0xdb38352c
lea eax, [esp + 0x4b]
mov dword [eax + 4], 0
mov dword [eax + 1], 0
mov dword [esp], 0
mov eax, dword [esp]
cmp eax, 0xa
ja 0x410fc0
nop
nop
nop
nop
mov eax, dword [esp]
mov ecx, dword [esp]
movzx ecx, byte [esp + ecx + 0x48]
mov edx, 0x63
sub edx, eax
add eax, 0x799e99c
xor edx, eax
and edx, ecx
xor edx, eax
mov dword [esp + 0xe8], edx
mov eax, dword [esp + 0xe8]
add al, 0xbc
mov ecx, dword [esp]
mov byte [esp + ecx + 0x48], al
inc dword [esp]
mov eax, dword [esp]
cmp eax, 0xb
jb 0x411140
jmp 0x410fc0
mov dword [esi], 0
mov dword [esi + 4], 0
mov byte [esi + 8], 0
jmp edx
jmp ecx
mov dword [esi], 0
mov dword [esi + 4], 0
mov byte [esi + 8], 0
mov dword [esi], 0
mov dword [esi + 4], 0
mov byte [esi + 8], 0
jmp edx
add esi, 0xc
xor ebx, ebx
cmp esi, edi
sete bl
jmp dword [ebx*4 + 0x43c5fc]
mov dword [esp + 0x1c], eax
xor edi, edi
xor eax, eax
cmp edi, dword [esp + 0x28]
setb al
mov ebx, 0x51eb851f
jmp dword [eax*4 + 0x43c604]
lea eax, [edi + 1]
cmp byte [edi], 0
je 0x41120e
mov edi, eax
jmp 0x411202
xor esi, esi
cmp edi, ecx
jbe 0x411247
cmp byte [ecx], 0
je 0x411247
xor esi, esi
mov ebx, dword [esp + 0x1c]
nop
mov dword [esp + 0x48], 0
lea eax, [esp + 0x48]
push eax
push edi
push ebx
call fcn.0040d060
add esp, 0xc
lea ecx, [ebx + eax]
inc esi
cmp ecx, edi
jae 0x411247
cmp byte [ebx + eax], 0
mov ebx, ecx
jne 0x411220
mov eax, esi
inc eax
lea eax, [esi + esi + 2]
jns 0x411255
mov eax, 0xffffffff
push eax
call fcn.00409030
add esp, 4
mov dword [esp + 0x48], 0
lea ecx, [eax + esi*2]
mov esi, eax
mov dword [esp + 0x28], eax
mov dword [esp + 0x18], ecx
cmp eax, ecx
mov ebx, dword [esp + 0x1c]
jae 0x4112bb
mov esi, dword [esp + 0x28]
cmp ebx, edi
jae 0x4112bb
mov esi, dword [esp + 0x28]
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp byte [ebx], 0
je 0x4112bb
lea eax, [esp + 0x48]
push eax
push edi
push ebx
call fcn.0040d060
add esp, 0xc
movzx ecx, word [esp + 0x48]
mov word [esi], cx
add esi, 2
cmp esi, dword [esp + 0x18]
jae 0x4112bb
add ebx, eax
cmp ebx, edi
jb 0x411290
mov word [esi], 0
lea esi, [esp + 0x48]
mov ecx, esi
push 1
call fcn.00409b20
xor ebx, ebx
mov edi, dword [esp + 0x34]
jmp 0x4112e5
push edi
call fcn.00402ec0
add esp, 4
xor ecx, ecx
cmp ebx, eax
setb cl
jmp dword [ecx*4 + 0x43c42c]
push ebx
push edi
call fcn.00402ea0
add esp, 8
push eax
call fcn.00402830
add esp, 4
mov esi, eax
xor eax, eax
test esi, esi
sete al
jmp dword [eax*4 + 0x43c44c]
mov dword [esp + 0x1c], ebx
mov eax, esi
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov edi, eax
inc eax
cmp byte [edi], 0
jne 0x411330
mov ebx, edi
sub ebx, esi
mov eax, ebx
inc eax
jns 0x411350
mov eax, 0xffffffff
jmp 0x411357
lea eax, [ebx*2 + 2]
push eax
call fcn.00409030
add esp, 4
mov dword [esp + 0xe8], 0
lea ecx, [eax + ebx*2]
mov ebx, eax
mov dword [esp + 0x24], eax
mov dword [esp + 0x18], ecx
cmp eax, ecx
jae 0x4113d0
mov ebx, dword [esp + 0x24]
cmp esi, edi
jae 0x4113d0
mov ebx, dword [esp + 0x24]
nop
nop
nop
nop
nop
nop
nop
nop
cmp byte [esi], 0
je 0x4113d0
lea eax, [esp + 0xe8]
push eax
push edi
push esi
call fcn.0040d060
add esp, 0xc
movzx ecx, word [esp + 0xe8]
mov word [ebx], cx
add ebx, 2
cmp ebx, dword [esp + 0x18]
jae 0x4113d0
add esi, eax
cmp esi, edi
jb 0x411390
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
xor eax, eax
cmp dword [esp + 0xd8], 0
setg al
mov word [ebx], 0
push 0
push eax
push dword [esp + 0x34]
push dword [esp + 0xc0]
mov esi, dword [esp + 0x34]
push esi
push dword [esp + 0x44]
push dword [esp + 0x40]
lea eax, [esp + 0x64]
push eax
call fcn.00418630
add esp, 0x20
jmp dword [0x43c454]
jmp dword [0x43c43c]
jmp dword [0x43c444]
push dword [esp + 0x28]
call fcn.00409040
add esp, 4
jmp dword [0x43c46c]
mov word [esp + 0xe8], 0xc540
lea eax, [esp + 0xea]
mov byte [eax + 8], 0
mov dword [eax + 4], 0
mov dword [eax], 0
mov dword [esp + 0x14], 0
mov eax, dword [esp + 0x14]
cmp eax, 0xa
ja 0x4114e4
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x14]
movzx ecx, byte [esp + ecx + 0xe8]
mov edx, 0x1e
sub edx, eax
add eax, 0x6a0cd5e1
xor edx, eax
and edx, ecx
xor edx, eax
mov dword [esp + 0x38], edx
mov eax, dword [esp + 0x38]
add al, 0xd9
mov ecx, dword [esp + 0x14]
mov byte [esp + ecx + 0xe8], al
inc dword [esp + 0x14]
mov eax, dword [esp + 0x14]
cmp eax, 0xb
jb 0x4114a0
push 2
lea eax, [esp + 0xec]
push eax
push edi
call fcn.00402da0
add esp, 0xc
mov word [esp + 0xe8], 0xc540
lea eax, [esp + 0xea]
mov byte [eax + 8], 0
mov dword [eax + 4], 0
mov dword [eax], 0
mov dword [esp + 0x14], 0
mov eax, dword [esp + 0x14]
cmp eax, 0xa
ja 0x411574
nop
nop
nop
nop
nop
nop
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x14]
movzx ecx, byte [esp + ecx + 0xe8]
mov edx, 0x1e
sub edx, eax
add eax, 0x6a0cd5e1
xor edx, eax
and edx, ecx
xor edx, eax
mov dword [esp + 0x38], edx
mov eax, dword [esp + 0x38]
add al, 0xd9
mov ecx, dword [esp + 0x14]
mov byte [esp + ecx + 0xe8], al
inc dword [esp + 0x14]
mov eax, dword [esp + 0x14]
cmp eax, 0xb
jb 0x411530
push 2
lea eax, [esp + 0xec]
push eax
push edi
call fcn.00402da0
add esp, 0xc
jmp dword [0x43c408]
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
int3
push eax
sub esp, 0xc
mov eax, esp
and eax, 0xfffffff8
mov dword [esi + 0x80], eax
mov esp, eax
push eax
sub esp, 0xc
mov eax, esp
and eax, 0xfffffff8
mov dword [esi + 0xbc], eax
mov esp, eax
push eax
sub esp, 0xc
mov edx, esp
and edx, 0xfffffff8
mov esp, edx
push eax
sub esp, 0xc
mov edi, esp
and edi, 0xfffffff8
mov esp, edi
push eax
sub esp, 0xc
mov eax, esp
and eax, 0xfffffff8
mov esp, eax
push eax
sub esp, 0xc
mov ebx, esp
and ebx, 0xfffffff8
mov esp, ebx
push eax
sub esp, 0x3fc
mov dword [esi + 0x5c], esp
push eax
mov dword [esi + 0x34], esp
push eax
mov dword [esi + 0x44], esp
sub esp, 0x10
mov ecx, esp
and ecx, 0xfffffff8
mov esp, ecx
jmp dword [esi + 0x48]
mov dword [esi + 0x104], ecx
mov dword [esi + 0x70], ebx
mov dword [esi + 0x74], eax
mov dword [esi + 0x78], edi
mov dword [esi + 0x48], edx
push eax
mov dword [esi + 0x90], esp
jmp dword [0x43c710]
inc ebx
push dword [esi + 0x7c]
call fcn.00402ec0
add esp, 4
xor ecx, ecx
cmp ebx, eax
setb cl
mov al, 1
mov dword [esi + 0x2c], ebx
jmp dword [ecx*4 + 0x43c734]
mov edi, dword [esi + 0x80]
jmp dword [0x43c740]
mov eax, dword [esi + 0x60]
jmp dword [eax*4 + 0x43c80c]
xor eax, eax
cmp ecx, 2
setl al
jmp dword [eax*4 + 0x43c84c]
sete al
movzx eax, al
jmp dword [eax*4 + 0x43c854]
mov edi, dword [esi + 0x11c]
mov dword [edi + 0x40], 0
mov dword [edi + 0x3c], 0
mov dword [edi + 0x38], 0
mov dword [edi + 0x34], 0
mov dword [edi + 0x30], 0
mov dword [edi + 0x2c], 0
mov dword [edi + 0x28], 0
mov dword [edi + 0x24], 0
mov dword [edi + 0x20], 0
mov dword [edi + 0x1c], 0
mov dword [edi + 0x18], 0
mov dword [edi + 0x14], 0
mov dword [edi + 0x10], 0
mov dword [edi + 0xc], 0
mov dword [edi + 8], 0
mov dword [edi + 4], 0
mov dword [edi], 0x44
push 0xd472a769
push dword [0x4412d0]
call fcn.00435100
add esp, 8
mov ebx, dword [esi + 0x118]
push ebx
push edi
push 0
push 0
push 0x8000000
push 0
push 0
push 0
push dword [esi + 0x10]
push 0
call eax
xor ecx, ecx
test eax, eax
setne cl
jmp dword [ecx*4 + 0x43c87c]
jmp case.default.0x412151
mov eax, dword [ebx]
mov dword [esi + 0x18], 0x3a393837
mov dword [esi + 0x20], 0
mov dword [esi + 0x1c], 0
mov dword [esi + 0xc], 0
mov ecx, dword [esi + 0xc]
cmp ecx, 0xb
ja 0x4117e9
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov ecx, dword [esi + 0xc]
mov edx, dword [esi + 0xc]
movzx edx, byte [esi + edx + 0x18]
mov edi, 0x58
sub edi, ecx
add ecx, 0xe8f81ca7
xor edi, ecx
and edi, edx
xor edi, ecx
mov dword [esi + 4], edi
mov ecx, dword [esi + 4]
add cl, 0x6f
mov edx, dword [esi + 0xc]
mov byte [esi + edx + 0x18], cl
inc dword [esi + 0xc]
mov ecx, dword [esi + 0xc]
cmp ecx, 0xc
jb 0x4117b0
mov ecx, dword [0x4412dc]
test ecx, ecx
je case.default.0x412151
mov edx, dword [esi + 0x18]
xor edi, edi
mov ebx, dword [0x4412e0]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp dword [ebx + edi*8], 0xa3c1f363
je 0x411823
inc edi
cmp ecx, edi
jne 0x411810
jmp case.default.0x412151
mov ecx, dword [ebx + edi*8 + 4]
cmp ecx, edx
je case.default.0x412151
push eax
push 1
push dword [0x4412e4]
push ecx
call fcn.004337a0
add esp, 0x10
jmp case.default.0x412151
xor eax, eax
cmp ebx, 1
sete al
jmp dword [eax*4 + 0x43c7e4]
xor ecx, ecx
cmp ebx, 2
sete cl
mov eax, 1
mov dword [esi + 0x10], 0
jmp dword [ecx*4 + 0x43c824]
mov ecx, edx
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, ecx
add ecx, 2
cmp word [eax], 0
jne 0x411880
mov ecx, eax
not ecx
and ecx, edx
not edx
and edx, eax
sub edx, ecx
lea eax, [edx + 0x3c]
cmp edx, 0xffffffc3
jge 0x4118a4
mov eax, 0xffffffff
push eax
call fcn.00409030
add esp, 4
mov dword [esi + 0x10], eax
mov edx, dword [esi + 0x58]
mov dword [edx], 0x5b5a597a
mov dword [edx + 8], 0
mov dword [edx + 4], 0
mov dword [esi + 4], 0
mov eax, dword [esi + 4]
cmp eax, 0xb
ja 0x411918
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esi + 4]
mov ecx, dword [esi + 4]
movzx ecx, byte [edx + ecx]
mov edx, 0xf3
sub edx, eax
add eax, 0x3660000c
xor edx, eax
and edx, ecx
xor edx, eax
mov dword [esi + 0x18], edx
mov edx, dword [esi + 0x58]
mov eax, dword [esi + 0x18]
add al, 0xac
mov ecx, dword [esi + 4]
mov byte [edx + ecx], al
inc dword [esi + 4]
mov eax, dword [esi + 4]
cmp eax, 0xc
jb 0x4118e0
mov edx, dword [esi + 0x6c]
mov dword [edx], 0x1bed19e8
mov dword [edx + 4], 0x17eb159b
mov dword [edx + 8], 0x13e111e2
mov dword [edx + 0xc], 0x2fd32dd4
mov dword [edx + 0x10], 0x2bde29dc
mov dword [edx + 0x14], 0x27132504
mov dword [edx + 0x18], 0x23aa21dd
mov dword [edx + 0x1c], 0x3fdd3dc1
mov dword [edx + 0x20], 0x3bd83918
mov dword [edx + 0x24], 0x37c635bd
mov dword [edx + 0x28], 0x33c131d1
mov dword [edx + 0x2c], 0xcfeecd3f
mov dword [edx + 0x30], 0xcb34c9fd
mov dword [edx + 0x34], 0xc7e4c5e4
mov word [edx + 0x38], 0xc1c0
mov eax, dword [esi + 0xd4]
mov dword [eax + 7], 0
mov dword [eax + 4], 0
mov dword [eax], 0
mov dword [esi + 4], 0
mov eax, dword [esi + 4]
cmp eax, 0x44
mov ebx, dword [esi + 0x2c]
ja 0x4119e8
nop
nop
mov eax, dword [esi + 4]
mov ecx, dword [esi + 4]
movzx ecx, byte [edx + ecx]
mov edx, 0xab
sub edx, eax
add eax, 0x6ee98c54
xor edx, eax
and edx, ecx
xor edx, eax
mov dword [esi + 0x18], edx
mov edx, dword [esi + 0x6c]
mov eax, dword [esi + 0x18]
add al, 0xb4
mov ecx, dword [esi + 4]
mov byte [edx + ecx], al
inc dword [esi + 4]
mov eax, dword [esi + 4]
cmp eax, 0x45
jb 0x4119b0
movzx ecx, word [edx]
mov eax, dword [esi + 0x10]
test cx, cx
je 0x411a11
mov edx, dword [esi + 0xc8]
mov eax, dword [esi + 0x10]
nop
nop
nop
nop
mov word [eax], cx
add eax, 2
movzx ecx, word [edx]
add edx, 2
test cx, cx
jne 0x411a00
mov word [eax], 0
mov edx, dword [esi + 8]
movzx ecx, word [edx]
test cx, cx
je 0x411a41
add edx, 2
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov word [eax], cx
add eax, 2
movzx ecx, word [edx]
add edx, 2
test cx, cx
jne 0x411a30
mov word [eax], 0
mov ecx, dword [esi + 0x58]
movzx ecx, word [ecx]
test cx, cx
je 0x411a71
mov edx, dword [esi + 0xcc]
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov word [eax], cx
add eax, 2
movzx ecx, word [edx]
add edx, 2
test cx, cx
jne 0x411a60
mov word [eax], 0
mov eax, 1
mov edx, dword [esi + 8]
jmp dword [eax*4 + 0x43c82c]
mov edi, dword [esi + 0xa8]
mov word [edi], 0x6f66
mov byte [edi + 2], 2
mov eax, dword [esi + 0xe0]
mov byte [eax + 4], 0
mov dword [eax], 0
mov dword [esi + 4], 0
mov eax, dword [esi + 4]
cmp eax, 7
ja 0x411af5
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esi + 4]
mov ecx, dword [esi + 4]
movzx ecx, byte [edi + ecx]
mov edx, 0x7f
sub edx, eax
add eax, 0xd7433b80
xor edx, eax
and edx, ecx
xor edx, eax
mov dword [esi + 0x18], edx
mov eax, dword [esi + 0x18]
add al, 0x80
mov ecx, dword [esi + 4]
mov byte [edi + ecx], al
inc dword [esi + 4]
mov eax, dword [esi + 4]
cmp eax, 8
jb 0x411ac0
push edi
push dword [esi + 0x14]
call fcn.00402720
add esp, 8
mov dword [esi + 0x30], eax
mov edi, dword [esi + 0xa4]
mov word [edi], 0xab55
mov byte [edi + 2], 0x38
mov eax, dword [esi + 0xe4]
mov dword [eax], 0
mov dword [eax + 4], 0
mov word [eax + 8], 0
mov dword [esi + 4], 0
mov eax, dword [esi + 4]
cmp eax, 0xc
ja 0x411b75
nop
nop
nop
nop
nop
mov eax, dword [esi + 4]
mov ecx, dword [esi + 4]
movzx ecx, byte [edi + ecx]
mov edx, 0x58
sub edx, eax
add eax, 0x5fd8faa7
xor edx, eax
and edx, ecx
xor edx, eax
mov dword [esi + 0x18], edx
mov eax, dword [esi + 0x18]
add al, 0x6f
mov ecx, dword [esi + 4]
mov byte [edi + ecx], al
inc dword [esi + 4]
mov eax, dword [esi + 4]
cmp eax, 0xd
jb 0x411b40
push edi
push dword [esi + 0x14]
call fcn.00402720
add esp, 8
mov dword [esi + 0x28], eax
xor eax, eax
mov edi, dword [esi + 8]
nop
nop
nop
nop
nop
nop
nop
cmp word [edi + eax], 0
lea eax, [eax + 2]
jne case.default.0x411bc2
lea ecx, [edi + eax]
add ecx, 0xfffffffe
add eax, edi
mov edx, 1
sub edx, eax
mov eax, edi
not eax
and eax, ecx
and edx, edi
sub eax, edx
sar eax, 1
xor edx, edx
mov ecx, dword [esi + 0x30]
test ecx, ecx
setne dl
mov dword [esi + 0x14], edx
jmp dword [edx*4 + 0x43c7ec]
mov dword [esi + 0x3c], 0
xor ebx, ebx
mov ecx, dword [esi + 0x28]
test ecx, ecx
setne bl
mov edx, dword [esi + 0x64]
mov dword [esi + 0x60], ebx
jmp dword [ebx*4 + 0x43c7f4]
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov edi, ecx
inc ecx
cmp byte [edi], 0
jne 0x411bf0
sub edi, dword [esi + 0x28]
inc edi
mov dword [esi + 0x38], edi
jmp 0x411c3a
mov edx, dword [esi + 0x64]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov edi, ecx
inc ecx
cmp byte [edi], 0
jne case.default.0x411c2c
sub edi, dword [esi + 0x30]
inc edi
mov dword [esi + 0x3c], edi
xor ebx, ebx
mov ecx, dword [esi + 0x28]
test ecx, ecx
setne bl
mov dword [esi + 0x60], ebx
jmp dword [ebx*4 + 0x43c7f4]
mov dword [esi + 0x38], 0
mov dword [edx], 0x73c76dda
mov dword [edx + 4], 0x77d271c2
mov dword [edx + 8], 0x7bd675d8
mov dword [edx + 0xc], 0x7f88798f
lea ecx, [edx + 0x10]
mov dword [esi + 0x10], ecx
mov word [edx + 0x10], 0x7d7c
mov ecx, dword [esi + 0xe8]
mov dword [ecx + 7], 0
mov dword [ecx + 4], 0
mov dword [ecx], 0
mov dword [esi + 4], 0
mov ecx, dword [esi + 4]
cmp ecx, 0x1c
ja 0x411cc7
nop
nop
nop
nop
nop
nop
mov ecx, dword [esi + 4]
mov edi, dword [esi + 4]
movzx edi, byte [edx + edi]
mov ebx, 0xf1
sub ebx, ecx
add ecx, 0x5f82310e
xor ebx, ecx
and ebx, edi
xor ebx, ecx
mov dword [esi + 0x18], ebx
mov ecx, dword [esi + 0x18]
add cl, 0x9e
mov edi, dword [esi + 4]
mov byte [edx + edi], cl
inc dword [esi + 4]
mov ecx, dword [esi + 4]
cmp ecx, 0x1d
jb 0x411c90
mov ebx, dword [esi + 0xa0]
mov edi, ebx
mov ecx, 4
xchg esi, edx
rep movsd dword es:[edi], dword [esi]
xchg esi, edx
lea edi, [ebx + 0x10]
mov ecx, 1
mov edx, dword [esi + 0x10]
xchg esi, edx
rep movsw word es:[edi], word [esi]
xchg esi, edx
xor ecx, ecx
nop
nop
cmp word [ebx + ecx], 0
lea ecx, [ecx + 2]
jne 0x411cf0
mov edx, dword [esi + 0xec]
add edx, ecx
mov edi, dword [esi + 0xf0]
sub edi, ecx
mov ecx, ebx
not ecx
and ecx, edx
and edi, ebx
sub ecx, edi
sar ecx, 1
add eax, dword [esi + 0x3c]
add eax, dword [esi + 0x38]
lea edx, [eax + ecx]
add ecx, eax
add ecx, 2
lea eax, [edx*2 + 4]
test ecx, ecx
jns 0x411d34
mov eax, 0xffffffff
push eax
call fcn.00409030
add esp, 4
mov edi, eax
movzx eax, word [ebx]
mov dword [esi + 0x10], edi
test ax, ax
je 0x411d71
mov ecx, dword [esi + 0xd8]
mov edi, dword [esi + 0x10]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov word [edi], ax
add edi, 2
movzx eax, word [ecx]
add ecx, 2
test ax, ax
jne 0x411d60
mov dword [edi], 0x220020
add edi, 4
mov edx, dword [esi + 8]
movzx eax, word [edx]
test ax, ax
je 0x411da1
lea ecx, [edx + 2]
nop
nop
nop
nop
nop
nop
nop
nop
mov word [edi], ax
add edi, 2
movzx eax, word [ecx]
add ecx, 2
test ax, ax
jne 0x411d90
lea ebx, [edi + 2]
mov word [edi], 0x22
jmp dword [0x43c7fc]
push edx
call fcn.00409040
add esp, 4
mov ecx, dword [esi + 0x28]
mov eax, dword [esi + 0x14]
jmp dword [eax*4 + 0x43c804]
mov ecx, dword [esi + 0x28]
mov eax, dword [esi + 0x14]
jmp dword [eax*4 + 0x43c804]
mov word [ebx], 0x2c
mov edx, dword [esi + 0x30]
lea eax, [edi + 4]
mov dword [esi + 0x50], eax
lea ebx, [edx - 1]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp byte [ebx + 1], 0
lea ebx, [ebx + 1]
jne 0x411df0
mov dword [esi + 0x18], 0
mov eax, dword [esi + 0x50]
mov dword [esi + 0x14], eax
cmp dword [esi + 0x3c], 2
jl 0x411e6a
mov eax, dword [esi + 0x50]
mov dword [esi + 0x14], eax
cmp edx, ebx
jae 0x411e6a
mov eax, dword [esi + 0x3c]
lea eax, [edi + eax*2]
add eax, 2
mov dword [esi + 8], eax
mov eax, dword [esi + 0x50]
mov dword [esi + 0x14], eax
nop
nop
nop
nop
nop
nop
nop
nop
cmp byte [edx], 0
je 0x411e6a
lea eax, [esi + 0x18]
push eax
push ebx
push edx
mov edi, edx
call fcn.0040d060
add esp, 0xc
movzx ecx, word [esi + 0x18]
mov edx, dword [esi + 0x14]
mov word [edx], cx
add edx, 2
mov dword [esi + 0x14], edx
cmp edx, dword [esi + 8]
jae 0x411e67
add edi, eax
cmp edi, ebx
mov ecx, dword [esi + 0x28]
mov edx, edi
jb 0x411e30
jmp 0x411e6a
mov ecx, dword [esi + 0x28]
mov edx, dword [esi + 0x14]
mov word [edx], 0
mov eax, dword [esi + 0x50]
mov ebx, eax
not ebx
and ebx, edx
not edx
and edx, eax
sub ebx, edx
add ebx, eax
mov eax, dword [esi + 0x60]
jmp dword [eax*4 + 0x43c80c]
lea edx, [ebx + 2]
mov edi, ebx
mov word [ebx], 0x2c
lea ebx, [ecx - 1]
mov eax, dword [esi + 0x38]
nop
nop
nop
cmp byte [ebx + 1], 0
lea ebx, [ebx + 1]
jne 0x411ea0
mov dword [esi + 0x18], 0
cmp eax, 2
jl 0x411ef2
cmp ecx, ebx
jae 0x411ef2
lea eax, [edi + eax*2]
mov dword [esi + 8], eax
nop
cmp byte [ecx], 0
je 0x411ef2
lea eax, [esi + 0x18]
push eax
push ebx
push ecx
mov edi, ecx
mov dword [esi + 0x14], edx
call fcn.0040d060
mov edx, dword [esi + 0x14]
add esp, 0xc
movzx ecx, word [esi + 0x18]
mov word [edx], cx
add edx, 2
cmp edx, dword [esi + 8]
jae 0x411ef2
add edi, eax
cmp edi, ebx
mov ecx, edi
jb 0x411ec0
mov word [edx], 0
mov ecx, dword [case.0x413125.0]
nop
nop
nop
mov eax, 1
xor edx, edx
xor ebx, ebx
jmp ecx
mov dword [ebx], 0xfb68f918
mov dword [ebx + 4], 0xff2ffd6f
mov word [ebx + 8], 0xf1fe
mov eax, dword [esi + 0xc4]
mov byte [eax + 0xc], 0
mov dword [eax + 8], 0
mov dword [eax + 4], 0
mov dword [eax], 0
mov dword [esi + 4], 0
mov eax, dword [esi + 4]
cmp eax, 0x16
mov edi, dword [esi + 0x40]
ja 0x411f85
nop
nop
mov eax, dword [esi + 4]
mov ecx, dword [esi + 4]
movzx ecx, byte [ebx + ecx]
mov edx, 0x60
sub edx, eax
add eax, 0xab63999f
xor edx, eax
and edx, ecx
xor edx, eax
mov dword [esi + 0x18], edx
mov eax, dword [esi + 0x18]
add al, 0xa7
mov ecx, dword [esi + 4]
mov byte [ebx + ecx], al
inc dword [esi + 4]
mov eax, dword [esi + 4]
cmp eax, 0x17
jb 0x411f50
mov edx, dword [esi + 8]
mov eax, edx
add eax, 0xfffffffe
nop
nop
nop
cmp word [eax + 2], 0
lea eax, [eax + 2]
jne 0x411f90
movzx ecx, word [ebx]
test cx, cx
je 0x411fc6
xor edx, edx
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov word [eax + edx], cx
movzx ecx, word [ebx + edx + 2]
add edx, 2
test cx, cx
jne 0x411fb0
add eax, edx
mov edx, dword [esi + 8]
mov word [eax], 0
jmp 0x413009
mov dword [edx + 4], 0xffffffff
mov dword [edx], 0xb8797400
mov dword [esi + 0x18], 0x3a393837
mov dword [esi + 0x20], 0
mov dword [esi + 0x1c], 0
mov dword [esi + 0xc], 0
mov ecx, dword [esi + 0xc]
cmp ecx, 0xb
ja 0x412049
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov ecx, dword [esi + 0xc]
mov edx, dword [esi + 0xc]
movzx edx, byte [esi + edx + 0x18]
mov edi, 0x58
sub edi, ecx
add ecx, 0xe8f81ca7
xor edi, ecx
and edi, edx
xor edi, ecx
mov dword [esi + 4], edi
mov ecx, dword [esi + 4]
add cl, 0x6f
mov edx, dword [esi + 0xc]
mov byte [esi + edx + 0x18], cl
inc dword [esi + 0xc]
mov ecx, dword [esi + 0xc]
cmp ecx, 0xc
jb 0x412010
mov ecx, dword [0x4412dc]
test ecx, ecx
je 0x412096
mov edx, dword [esi + 0x18]
xor edi, edi
mov ebx, dword [0x4412e0]
nop
nop
cmp dword [ebx + edi*8], 0x39c83604
je 0x412070
inc edi
cmp ecx, edi
jne 0x412060
jmp 0x412096
mov ecx, dword [ebx + edi*8 + 4]
cmp ecx, edx
je 0x412096
push dword [esi + 0x8c]
push 0
push eax
push 3
push dword [0x4412e4]
push ecx
mov edi, eax
call fcn.004337a0
mov eax, edi
add esp, 0x18
mov dword [esi + 0x18], 0x3a393837
mov dword [esi + 0x20], 0
mov dword [esi + 0x1c], 0
mov dword [esi + 0xc], 0
mov ecx, dword [esi + 0xc]
cmp ecx, 0xb
ja 0x4120f9
nop
nop
nop
nop
nop
nop
mov ecx, dword [esi + 0xc]
mov edx, dword [esi + 0xc]
movzx edx, byte [esi + edx + 0x18]
mov edi, 0x58
sub edi, ecx
add ecx, 0xe8f81ca7
xor edi, ecx
and edi, edx
xor edi, ecx
mov dword [esi + 4], edi
mov ecx, dword [esi + 4]
add cl, 0x6f
mov edx, dword [esi + 0xc]
mov byte [esi + edx + 0x18], cl
inc dword [esi + 0xc]
mov ecx, dword [esi + 0xc]
cmp ecx, 0xc
jb 0x4120c0
mov ecx, dword [0x4412dc]
test ecx, ecx
je case.default.0x412151
mov edx, dword [esi + 0x18]
xor edi, edi
mov ebx, dword [0x4412e0]
nop
nop
cmp dword [ebx + edi*8], 0xa3c1f363
je 0x412120
inc edi
cmp ecx, edi
jne 0x412110
jmp case.default.0x412151
mov ecx, dword [ebx + edi*8 + 4]
cmp ecx, edx
jne 0x412130
mov ebx, dword [esi + 0x2c]
jmp case.0x413125.30
push eax
push 1
push dword [0x4412e4]
push ecx
call fcn.004337a0
add esp, 0x10
mov eax, dword [esi + 0x34]
mov eax, dword [eax]
xor ecx, ecx
test eax, eax
setne cl
mov ebx, dword [esi + 0x2c]
jmp dword [ecx*4 + 0x43c884]
xor edx, 1
mov ecx, dword [esi + 0x28]
xor ecx, 2
xor eax, eax
or ecx, edx
sete al
mov dword [esi + 0x10], 0
xor edx, edx
jmp dword [eax*4 + 0x43c834]
mov eax, dword [esi + 0x34]
mov ebx, dword [eax]
movzx eax, byte [ebx]
xor edi, edi
test al, al
je 0x4121a1
lea ecx, [ebx + 1]
xor edi, edi
nop
nop
nop
nop
nop
shr al, 7
movzx eax, al
add edi, eax
inc edi
movzx eax, byte [ecx]
inc ecx
test al, al
jne 0x412190
mov eax, edi
inc eax
lea eax, [edi + edi + 2]
jns 0x4121af
mov eax, 0xffffffff
push eax
call fcn.00409030
add esp, 4
mov ecx, dword [esi + 0x44]
mov edx, dword [ecx]
mov dword [esi + 0x18], 0
lea edi, [eax + edi*2]
mov dword [esi + 0x14], eax
mov dword [esi + 8], edi
cmp eax, edi
mov dword [esi + 0x30], eax
jae 0x41221a
mov dword [esi + 0x14], eax
test edx, edx
jle 0x41221a
add edx, ebx
mov dword [esi + 0x14], eax
cmp byte [ebx], 0
je 0x41221a
lea eax, [esi + 0x18]
push eax
push edx
push ebx
mov edi, edx
call fcn.0040d060
add esp, 0xc
movzx ecx, word [esi + 0x18]
mov edx, dword [esi + 0x14]
mov word [edx], cx
add edx, 2
mov dword [esi + 0x14], edx
cmp edx, dword [esi + 8]
jae 0x412217
add ebx, eax
cmp ebx, edi
mov ecx, dword [esi + 0x44]
mov edx, edi
jb 0x4121e0
jmp 0x41221a
mov ecx, dword [esi + 0x44]
mov eax, dword [esi + 0x14]
mov word [eax], 0
mov ecx, dword [ecx]
lea eax, [ecx*2 + 0x32]
add ecx, 0x19
jns 0x412235
mov eax, 0xffffffff
push eax
call fcn.00409030
add esp, 4
mov dword [esi + 0x10], eax
mov edx, dword [esi + 0x54]
mov dword [edx], 0xb3cdb1c0
mov dword [edx + 4], 0xb7d3b5c3
mov dword [edx + 8], 0xcbb9c9ba
mov dword [edx + 0xc], 0xcfabcdb4
mov dword [edx + 0x10], 0xc3bec1bc
mov dword [edx + 0x14], 0xc7fbc5e4
mov dword [edx + 0x18], 0xdb52d9bd
mov dword [edx + 0x1c], 0xdfbdddb9
mov dword [edx + 0x20], 0xd3b0d1f0
mov dword [edx + 0x24], 0xd7a6d55d
mov dword [edx + 0x28], 0xeb99e989
mov dword [edx + 0x2c], 0xefceed9f
mov word [edx + 0x30], 0xe1e0
mov eax, dword [esi + 0xfc]
mov dword [eax], 0
mov dword [eax + 3], 0
mov dword [esi + 4], 0
mov eax, dword [esi + 4]
cmp eax, 0x38
mov ebx, dword [esi + 0x2c]
ja 0x412308
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esi + 4]
mov ecx, dword [esi + 4]
movzx ecx, byte [edx + ecx]
mov edx, 0x47
sub edx, eax
add eax, 0x89e72ab8
xor edx, eax
and edx, ecx
xor edx, eax
mov dword [esi + 0x18], edx
mov edx, dword [esi + 0x54]
mov eax, dword [esi + 0x18]
add al, 0xf8
mov ecx, dword [esi + 4]
mov byte [edx + ecx], al
inc dword [esi + 4]
mov eax, dword [esi + 4]
cmp eax, 0x39
jb 0x4122d0
movzx ecx, word [edx]
mov eax, dword [esi + 0x10]
test cx, cx
je 0x412331
mov edx, dword [esi + 0xf8]
mov eax, dword [esi + 0x10]
nop
nop
nop
nop
mov word [eax], cx
add eax, 2
movzx ecx, word [edx]
add edx, 2
test cx, cx
jne 0x412320
mov word [eax], 0
mov edx, dword [esi + 0x30]
movzx ecx, word [edx]
test cx, cx
je 0x412361
add edx, 2
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov word [eax], cx
add eax, 2
movzx ecx, word [edx]
add edx, 2
test cx, cx
jne 0x412350
mov word [eax], 0
xor edx, edx
jmp dword [0x43c83c]
push dword [esi + 0x30]
call fcn.00409040
add esp, 4
mov dword [esi + 8], 0
xor eax, eax
mov ecx, dword [esi + 0x28]
test ecx, ecx
setle al
jmp dword [eax*4 + 0x43c844]
and eax, 0xf
or eax, 0x10
xor edi, edi
xor ecx, ecx
cmp edi, eax
setb cl
mov ebx, dword [esi + 0x88]
mov dword [esi + 8], eax
jmp dword [ecx*4 + 0x43c7a4]
mov word [ebx], 0
mov edi, dword [esi + 0xb8]
mov dword [edi], 0xb358b56d
mov dword [edi + 4], 0xaf43b149
mov dword [edi + 8], 0xab77ad5e
mov dword [edi + 0xc], 0xa7a8a94e
mov byte [edi + 0x10], 0
mov dword [esi + 4], 0
mov eax, dword [esi + 4]
cmp eax, 0x10
ja 0x412425
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esi + 4]
mov ecx, dword [esi + 4]
movzx ecx, byte [edi + ecx]
mov edx, 0x16
sub edx, eax
add eax, 0x56b097e9
xor edx, eax
and edx, ecx
xor edx, eax
mov dword [esi + 0x18], edx
mov eax, dword [esi + 0x18]
add al, 0xa1
mov ecx, dword [esi + 4]
mov byte [edi + ecx], al
inc dword [esi + 4]
mov eax, dword [esi + 4]
cmp eax, 0x11
jb 0x4123f0
movzx eax, word [edi]
mov edx, dword [esi + 0x9c]
mov edi, edx
test ax, ax
mov ebx, dword [esi + 0x68]
je 0x412451
mov ecx, dword [esi + 0xf4]
mov edi, edx
mov word [edi], ax
add edi, 2
movzx eax, word [ecx]
add ecx, 2
test ax, ax
jne 0x412440
mov word [edi], 0
mov eax, dword [esi + 0x88]
movzx eax, word [eax]
test ax, ax
je 0x412481
mov ecx, ebx
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov word [edi], ax
add edi, 2
movzx eax, word [ecx]
add ecx, 2
test ax, ax
jne 0x412470
mov word [edi], 0
sub edi, edx
sar edi, 1
mov ebx, dword [esi + 0x98]
push ebx
push 0
push 0
push edi
push edx
push 0
call dword [0x4412d8]
mov ebx, dword [ebx]
mov eax, ebx
and eax, 4
mov ecx, ebx
xor ecx, 4
lea ecx, [ecx + eax*2]
lea eax, [ecx + ecx]
test ecx, ecx
jns 0x4124ba
mov eax, 0xffffffff
push eax
call fcn.00409030
add esp, 4
push dword [esi + 0x98]
push ebx
mov dword [esi + 8], eax
push eax
push edi
push dword [esi + 0x9c]
push 0
call dword [0x4412d8]
xor eax, eax
mov ecx, dword [esi + 0x28]
test ecx, ecx
sete al
jmp dword [eax*4 + 0x43c7ac]
xor eax, eax
cmp ecx, 1
sete al
mov edi, dword [esi + 0xb0]
mov ebx, dword [esi + 0xac]
jmp dword [eax*4 + 0x43c7c4]
xor eax, eax
cmp ecx, 2
sete al
jmp dword [eax*4 + 0x43c7cc]
mov edi, dword [esi + 0x40]
mov edx, dword [esi + 8]
jmp 0x413009
inc edi
add ebx, 2
xor ecx, ecx
mov eax, dword [esi + 8]
cmp edi, eax
setb cl
jmp dword [ecx*4 + 0x43c7a4]
jmp dword [0x43c7b4]
call fcn.00409870
mov ecx, eax
mov edx, 0x38e38e39
imul edx
mov eax, edx
shr eax, 0x1f
sar edx, 3
add edx, eax
shl edx, 2
lea eax, [edx + edx*8]
neg eax
movsx eax, byte [ecx + eax + str.0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ]
mov word [ebx], ax
call fcn.00409870
mov ecx, eax
mov edx, 0x38e38e39
imul edx
mov eax, edx
shr eax, 0x1f
sar edx, 3
add edx, eax
shl edx, 2
lea eax, [edx + edx*8]
neg eax
movsx eax, byte [ecx + eax + str.0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ]
mov word [ebx], ax
jmp dword [0x43c7c0]
mov edi, dword [esi + 0xb4]
mov dword [edi], 0xfb9ff998
mov dword [edi + 4], 0xff9bfd72
mov word [edi + 8], 0xf1fe
mov eax, dword [esi + 0xdc]
mov word [eax + 8], 0
mov dword [eax + 4], 0
mov dword [eax], 0
mov dword [esi + 4], 0
mov eax, dword [esi + 4]
cmp eax, 0x13
ja 0x412625
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esi + 4]
mov ecx, dword [esi + 4]
movzx ecx, byte [edi + ecx]
mov edx, 0x20
sub edx, eax
add eax, 0x71c7e9df
xor edx, eax
and edx, ecx
xor edx, eax
mov dword [esi + 0x18], edx
mov eax, dword [esi + 0x18]
add al, 0xe7
mov ecx, dword [esi + 4]
mov byte [edi + ecx], al
inc dword [esi + 4]
mov eax, dword [esi + 4]
cmp eax, 0x14
jb 0x4125f0
mov edx, dword [esi + 8]
mov eax, edx
add eax, 0xfffffffe
nop
nop
nop
cmp word [eax + 2], 0
lea eax, [eax + 2]
jne 0x412630
movzx ecx, word [edi]
test cx, cx
je 0x412716
xor edx, edx
nop
nop
nop
nop
nop
nop
nop
nop
mov word [eax + edx], cx
movzx ecx, word [edi + edx + 2]
add edx, 2
test cx, cx
jne 0x412650
jmp 0x412711
mov dword [edi], 0x63c6618e
mov dword [edi + 4], 0x67ca65c8
mov word [edi + 8], 0x6968
mov eax, dword [esi + 0xd0]
mov byte [eax + 8], 0
mov dword [eax + 4], 0
mov dword [eax], 0
mov dword [esi + 4], 0
mov eax, dword [esi + 4]
cmp eax, 0x12
ja 0x4126d5
nop
mov eax, dword [esi + 4]
mov ecx, dword [esi + 4]
movzx ecx, byte [edi + ecx]
mov edx, 0x6f
sub edx, eax
add eax, 0x5711e390
xor edx, eax
and edx, ecx
xor edx, eax
mov dword [esi + 0x18], edx
mov eax, dword [esi + 0x18]
add al, 0x10
mov ecx, dword [esi + 4]
mov byte [edi + ecx], al
inc dword [esi + 4]
mov eax, dword [esi + 4]
cmp eax, 0x13
jb 0x4126a0
mov edx, dword [esi + 8]
mov eax, edx
add eax, 0xfffffffe
nop
nop
nop
cmp word [eax + 2], 0
lea eax, [eax + 2]
jne 0x4126e0
movzx ecx, word [edi]
test cx, cx
je 0x412716
xor edx, edx
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov word [eax + edx], cx
movzx ecx, word [edi + edx + 2]
add edx, 2
test cx, cx
jne 0x412700
add eax, edx
mov edx, dword [esi + 8]
mov word [eax], 0
mov edi, dword [esi + 0x40]
jmp 0x413009
xor eax, eax
mov ecx, dword [esi + 8]
test ecx, ecx
sete al
jmp dword [eax*4 + 0x43c89c]
push ecx
call fcn.00409040
add esp, 4
xor eax, eax
cmp dword [esi + 0x10], 0
sete al
jmp dword [eax*4 + 0x43c8a4]
mov eax, dword [esi + 0x94]
mov eax, dword [eax]
mov dword [esi + 0x18], 0x3a393837
mov dword [esi + 0x20], 0
mov dword [esi + 0x1c], 0
mov dword [esi + 0xc], 0
mov ecx, dword [esi + 0xc]
cmp ecx, 0xb
ja 0x4127b9
nop
nop
nop
nop
nop
nop
nop
mov ecx, dword [esi + 0xc]
mov edx, dword [esi + 0xc]
movzx edx, byte [esi + edx + 0x18]
mov edi, 0x58
sub edi, ecx
add ecx, 0xe8f81ca7
xor edi, ecx
and edi, edx
xor edi, ecx
mov dword [esi + 4], edi
mov ecx, dword [esi + 4]
add cl, 0x6f
mov edx, dword [esi + 0xc]
mov byte [esi + edx + 0x18], cl
inc dword [esi + 0xc]
mov ecx, dword [esi + 0xc]
cmp ecx, 0xc
jb 0x412780
mov ecx, dword [0x4412dc]
test ecx, ecx
je case.default.0x41281f
mov edx, dword [esi + 0x18]
xor edi, edi
mov ebx, dword [0x4412e0]
nop
nop
cmp dword [ebx + edi*8], 0xa3c1f363
je 0x4127e0
inc edi
cmp ecx, edi
jne 0x4127d0
jmp case.default.0x41281f
mov ecx, dword [ebx + edi*8 + 4]
cmp ecx, edx
jne 0x4127fe
mov eax, dword [esi + 0x34]
mov eax, dword [eax]
xor ecx, ecx
test eax, eax
setne cl
mov ebx, dword [esi + 0x2c]
jmp dword [ecx*4 + 0x43c884]
push eax
push 1
push dword [0x4412e4]
push ecx
call fcn.004337a0
add esp, 0x10
mov eax, dword [esi + 0x34]
mov eax, dword [eax]
xor ecx, ecx
test eax, eax
setne cl
mov ebx, dword [esi + 0x2c]
jmp dword [ecx*4 + 0x43c884]
mov edi, dword [esi + 0x120]
jmp dword [0x43c794]
mov dword [edi], 0x20a0adac
mov dword [edi + 4], 0
mov dword [esi + 4], 0
mov eax, dword [esi + 4]
cmp eax, 7
ja 0x412885
nop
nop
mov eax, dword [esi + 4]
mov ecx, dword [esi + 4]
movzx ecx, byte [edi + ecx]
mov edx, 0x99
sub edx, eax
add eax, 0xd7aa8666
xor edx, eax
and edx, ecx
xor edx, eax
mov dword [esi + 0x18], edx
mov eax, dword [esi + 0x18]
add al, 0x36
mov ecx, dword [esi + 4]
mov byte [edi + ecx], al
inc dword [esi + 4]
mov eax, dword [esi + 4]
cmp eax, 8
jb 0x412850
mov eax, dword [edi]
push dword [eax + 0x14]
call fcn.00409860
add esp, 4
call fcn.00409870
jmp case.0x412eb8.4
mov eax, dword [edi]
push dword [eax + 0x14]
call fcn.00409860
add esp, 4
call fcn.00409870
jmp dword [0x43c79c]
mov dword [edi], 0x20a0adac
mov dword [edi + 4], 0
mov dword [esi + 4], 0
mov eax, dword [esi + 4]
cmp eax, 7
ja 0x4128a0
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esi + 4]
mov ecx, dword [esi + 4]
movzx ecx, byte [edi + ecx]
mov edx, 0x99
sub edx, eax
add eax, 0xd7aa8666
xor edx, eax
and edx, ecx
xor edx, eax
mov dword [esi + 0x18], edx
mov eax, dword [esi + 0x18]
add al, 0x36
mov ecx, dword [esi + 4]
mov byte [edi + ecx], al
inc dword [esi + 4]
mov eax, dword [esi + 4]
cmp eax, 8
jb 0x4128e0
jmp 0x4128a0
push ebx
mov eax, dword [esi + 0x7c]
push eax
call fcn.00402ed0
add esp, 8
mov word [edi], 0xd925
mov ecx, dword [esi + 0xc0]
mov dword [ecx], 0
mov dword [ecx + 4], 0
mov dword [ecx + 8], 0
mov byte [ecx + 0xc], 0
mov dword [esi + 4], 0
mov ecx, dword [esi + 4]
cmp ecx, 0xe
ja 0x41299d
nop
mov ecx, dword [esi + 4]
mov edx, dword [esi + 4]
movzx edx, byte [edi + edx]
mov edi, 0xe3
sub edi, ecx
add ecx, 0x6e52751c
xor edi, ecx
and edi, edx
xor edi, ecx
mov dword [esi + 0x18], edi
mov edi, dword [esi + 0x80]
mov ecx, dword [esi + 0x18]
add cl, 0x3c
mov edx, dword [esi + 4]
mov byte [edi + edx], cl
inc dword [esi + 4]
mov ecx, dword [esi + 4]
cmp ecx, 0xf
jb 0x412960
push 2
push edi
push eax
call fcn.00402da0
add esp, 0xc
mov ebx, dword [esi + 0x2c]
push ebx
push dword [esi + 0x7c]
call fcn.00402ed0
add esp, 8
mov dword [esi + 0x14], eax
mov word [edi], 0xd925
mov eax, dword [esi + 0xc0]
mov dword [eax], 0
mov dword [eax + 4], 0
mov dword [eax + 8], 0
mov byte [eax + 0xc], 0
mov dword [esi + 4], 0
mov eax, dword [esi + 4]
cmp eax, 0xe
ja 0x412a25
nop
nop
nop
mov eax, dword [esi + 4]
mov ecx, dword [esi + 4]
movzx ecx, byte [edi + ecx]
mov edx, 0xe3
sub edx, eax
add eax, 0x6e52751c
xor edx, eax
and edx, ecx
xor edx, eax
mov dword [esi + 0x18], edx
mov eax, dword [esi + 0x18]
add al, 0x3c
mov ecx, dword [esi + 4]
mov byte [edi + ecx], al
inc dword [esi + 4]
mov eax, dword [esi + 4]
cmp eax, 0xf
jb 0x4129f0
push 2
push edi
push dword [esi + 0x14]
call fcn.00402da0
add esp, 0xc
jmp dword [0x43c748]
xor ecx, ecx
test eax, eax
setne cl
mov edi, dword [esi + 0xbc]
jmp dword [ecx*4 + 0x43c74c]
mov word [edi], 0xb1a6
mov byte [edi + 2], 0xa
mov eax, dword [esi + 0x114]
mov dword [eax + 3], 0
mov dword [eax], 0
mov dword [esi + 4], 0
mov eax, dword [esi + 4]
cmp eax, 9
ja 0x412ab5
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esi + 4]
mov ecx, dword [esi + 4]
movzx ecx, byte [edi + ecx]
mov edx, 0x55
sub edx, eax
add eax, 0x31db62aa
xor edx, eax
and edx, ecx
xor edx, eax
mov dword [esi + 0x18], edx
mov eax, dword [esi + 0x18]
add al, 0x5a
mov ecx, dword [esi + 4]
mov byte [edi + ecx], al
inc dword [esi + 4]
mov eax, dword [esi + 4]
cmp eax, 0xa
jb 0x412a80
push 3
push edi
push dword [esi + 0x14]
call fcn.00402da0
add esp, 0xc
xor ecx, ecx
test eax, eax
setne cl
jmp dword [ecx*4 + 0x43c754]
mov edi, dword [esi + 0x48]
jmp dword [0x43c760]
mov word [edi], 0x6df1
mov dword [edi + 6], 0
mov dword [edi + 2], 0
mov dword [esi + 4], 0
mov eax, dword [esi + 4]
cmp eax, 9
ja 0x412b38
nop
nop
nop
nop
mov eax, dword [esi + 4]
mov ecx, dword [esi + 4]
movzx ecx, byte [edi + ecx]
mov edx, 0xd
sub edx, eax
add eax, 0xf673d5f2
xor edx, eax
and edx, ecx
xor edx, eax
mov dword [esi + 0x18], edx
mov edi, dword [esi + 0x48]
mov eax, dword [esi + 0x18]
add al, 0x62
mov ecx, dword [esi + 4]
mov byte [edi + ecx], al
inc dword [esi + 4]
mov eax, dword [esi + 4]
cmp eax, 0xa
jb 0x412b00
push 3
push edi
push dword [esi + 0x14]
call fcn.00402da0
add esp, 0xc
mov word [edi], 0x6df1
mov dword [edi + 6], 0
mov dword [edi + 2], 0
mov dword [esi + 4], 0
mov eax, dword [esi + 4]
cmp eax, 9
ja 0x412ba8
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esi + 4]
mov ecx, dword [esi + 4]
movzx ecx, byte [edi + ecx]
mov edx, 0xd
sub edx, eax
add eax, 0xf673d5f2
xor edx, eax
and edx, ecx
xor edx, eax
mov dword [esi + 0x18], edx
mov edi, dword [esi + 0x48]
mov eax, dword [esi + 0x18]
add al, 0x62
mov ecx, dword [esi + 4]
mov byte [edi + ecx], al
inc dword [esi + 4]
mov eax, dword [esi + 4]
cmp eax, 0xa
jb 0x412b70
push 3
push edi
push dword [esi + 0x14]
call fcn.00402da0
add esp, 0xc
jmp dword [0x43c768]
xor ecx, ecx
test eax, eax
sete cl
jmp dword [ecx*4 + 0x43c76c]
mov edx, dword [esi + 0x78]
mov word [edx], 0x159d
mov eax, dword [esi + 0x108]
mov byte [eax + 0xc], 0
mov dword [eax + 8], 0
mov dword [eax + 4], 0
mov dword [eax], 0
mov dword [esi + 4], 0
mov eax, dword [esi + 4]
cmp eax, 0xe
ja 0x412c38
nop
mov eax, dword [esi + 4]
mov ecx, dword [esi + 4]
movzx ecx, byte [edx + ecx]
mov edx, 0x52
sub edx, eax
add eax, 0xd959d8ad
xor edx, eax
and edx, ecx
xor edx, eax
mov dword [esi + 0x18], edx
mov edx, dword [esi + 0x78]
mov eax, dword [esi + 0x18]
add al, 0x45
mov ecx, dword [esi + 4]
mov byte [edx + ecx], al
inc dword [esi + 4]
mov eax, dword [esi + 4]
cmp eax, 0xf
jb 0x412c00
push edx
push dword [esi + 0x14]
call fcn.00402720
add esp, 8
mov dword [esi + 8], eax
mov edx, dword [esi + 0x74]
mov word [edx], 0x392c
mov byte [edx + 2], 0xb4
mov eax, dword [esi + 0x10c]
mov dword [eax], 0
mov word [eax + 4], 0
mov dword [esi + 4], 0
mov eax, dword [esi + 4]
cmp eax, 8
ja 0x412cb8
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esi + 4]
mov ecx, dword [esi + 4]
movzx ecx, byte [edx + ecx]
mov edx, 0x16
sub edx, eax
add eax, 0xf9e3aae9
xor edx, eax
and edx, ecx
xor edx, eax
mov dword [esi + 0x18], edx
mov edx, dword [esi + 0x74]
mov eax, dword [esi + 0x18]
add al, 0xa1
mov ecx, dword [esi + 4]
mov byte [edx + ecx], al
inc dword [esi + 4]
mov eax, dword [esi + 4]
cmp eax, 9
jb 0x412c80
push edx
push dword [esi + 0x14]
call fcn.00402850
add esp, 8
mov edx, dword [esi + 0x70]
mov word [edx], 0x6dc9
mov eax, dword [esi + 0x110]
mov dword [eax], 0
mov dword [eax + 4], 0
mov byte [eax + 8], 0
fnstcw word [esi + 0x4e]
movzx eax, word [esi + 0x4e]
or eax, 0xc00
mov word [esi + 0x86], ax
fldcw word [esi + 0x86]
fistp dword [esi + 0x12c]
fldcw word [esi + 0x4e]
mov eax, dword [esi + 0x12c]
mov dword [esi + 0x28], eax
mov dword [esi + 4], 0
mov eax, dword [esi + 4]
cmp eax, 0xa
ja 0x412d58
nop
nop
nop
mov eax, dword [esi + 4]
mov ecx, dword [esi + 4]
movzx ecx, byte [edx + ecx]
mov edx, 0xb1
sub edx, eax
add eax, 0xf026e94e
xor edx, eax
and edx, ecx
xor edx, eax
mov dword [esi + 0x18], edx
mov edx, dword [esi + 0x70]
mov eax, dword [esi + 0x18]
add al, 0xde
mov ecx, dword [esi + 4]
mov byte [edx + ecx], al
inc dword [esi + 4]
mov eax, dword [esi + 4]
cmp eax, 0xb
jb 0x412d20
push edx
push dword [esi + 0x14]
call fcn.00402850
add esp, 8
mov eax, dword [esi + 8]
lea edi, [eax - 1]
nop
nop
nop
nop
nop
nop
cmp byte [edi + 1], 0
lea edi, [edi + 1]
jne 0x412d70
fnstcw word [esi + 0x4c]
movzx eax, word [esi + 0x4c]
or eax, 0xc00
mov word [esi + 0x84], ax
fldcw word [esi + 0x84]
fistp dword [esi + 0x128]
fldcw word [esi + 0x4c]
mov eax, dword [esi + 0x128]
mov dword [esi + 0x30], eax
mov dword [esi + 0x18], 0
mov edx, dword [esi + 0x5c]
mov ecx, edx
cmp dword [esi + 8], edi
jae 0x412e0b
xor eax, eax
mov ebx, dword [esi + 8]
nop
nop
nop
nop
nop
nop
cmp byte [ebx], 0
je 0x412e01
mov dword [esi + 8], eax
lea eax, [esi + 0x18]
push eax
push edi
push ebx
call fcn.0040d060
add esp, 0xc
mov dword [esi + 0x10], eax
movzx ecx, word [esi + 0x18]
mov eax, dword [esi + 8]
mov edx, dword [esi + 0x5c]
mov word [edx + eax], cx
lea ecx, [eax + 2]
cmp eax, 0x7fb
ja 0x412dfa
add ebx, dword [esi + 0x10]
mov eax, ecx
cmp ebx, edi
jb 0x412dc0
mov edx, dword [esi + 0x5c]
add ecx, edx
jmp 0x412e08
mov edx, dword [esi + 0x5c]
add eax, edx
mov ecx, eax
mov ebx, dword [esi + 0x2c]
mov word [ecx], 0
push dword [esi + 0x44]
push dword [esi + 0x34]
push edx
call fcn.0040b940
add esp, 0xc
movzx eax, al
jmp dword [eax*4 + 0x43c774]
xor eax, eax
mov edx, dword [esi + 0x30]
test edx, edx
sete al
mov dword [esi + 0x100], eax
jmp dword [eax*4 + 0x43c77c]
mov edi, dword [esi + 0x104]
mov word [edi], 0x6ddc
mov dword [edi + 6], 0
mov dword [edi + 2], 0
mov dword [esi + 4], 0
mov eax, dword [esi + 4]
cmp eax, 9
ja 0x412ea5
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esi + 4]
mov ecx, dword [esi + 4]
movzx ecx, byte [edi + ecx]
mov edx, 0xf1
sub edx, eax
add eax, 0xfa8f190e
xor edx, eax
and edx, ecx
xor edx, eax
mov dword [esi + 0x18], edx
mov eax, dword [esi + 0x18]
add al, 0x9e
mov ecx, dword [esi + 4]
mov byte [edi + ecx], al
inc dword [esi + 4]
mov eax, dword [esi + 4]
cmp eax, 0xa
jb 0x412e70
push edi
push dword [esi + 0x14]
call fcn.00402720
add esp, 8
xor ecx, ecx
test eax, eax
setne cl
jmp dword [ecx*4 + 0x43c784]
mov ecx, eax
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov ebx, ecx
inc ecx
cmp byte [ebx], 0
jne 0x412ed0
mov dword [esi + 8], 0
cmp ebx, eax
mov dword [esi + 0x38], eax
jbe 0x412f27
cmp byte [eax], 0
je 0x412f27
mov dword [esi + 8], 0
mov edi, dword [esi + 0x38]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov dword [esi + 0x18], 0
lea eax, [esi + 0x18]
push eax
push ebx
push edi
call fcn.0040d060
add esp, 0xc
lea ecx, [edi + eax]
inc dword [esi + 8]
cmp ecx, ebx
jae 0x412f27
cmp byte [edi + eax], 0
mov edi, ecx
jne 0x412f00
mov ecx, dword [esi + 8]
mov eax, ecx
inc eax
lea eax, [ecx + ecx + 2]
jns 0x412f38
mov eax, 0xffffffff
push eax
call fcn.00409030
add esp, 4
mov edx, eax
mov dword [esi + 0x18], 0
mov eax, dword [esi + 8]
lea eax, [edx + eax*2]
mov dword [esi + 0x10], edx
mov dword [esi + 0x3c], eax
cmp edx, eax
mov edi, dword [esi + 0x38]
mov dword [esi + 0x30], edx
jae 0x412fa6
mov dword [esi + 0x10], edx
cmp edi, ebx
jae 0x412fa6
mov dword [esi + 0x10], edx
nop
nop
nop
nop
nop
nop
cmp byte [edi], 0
je 0x412fa6
lea eax, [esi + 0x18]
push eax
push ebx
push edi
call fcn.0040d060
add esp, 0xc
movzx ecx, word [esi + 0x18]
mov edx, dword [esi + 0x10]
mov word [edx], cx
add edx, 2
mov dword [esi + 0x10], edx
cmp edx, dword [esi + 0x3c]
jae 0x412fa3
add edi, eax
cmp edi, ebx
mov edx, dword [esi + 0x30]
jb 0x412f70
jmp 0x412fa6
mov edx, dword [esi + 0x30]
mov eax, dword [esi + 0x10]
mov word [eax], 0
mov edi, dword [esi + 0x90]
push edi
push 0
push 0
push dword [esi + 8]
push edx
push 0
call dword [0x4412d8]
mov edi, dword [edi]
lea eax, [edi + edi]
test edi, edi
jns 0x412fd3
mov eax, 0xffffffff
push eax
call fcn.00409030
add esp, 4
push dword [esi + 0x90]
push edi
mov ebx, eax
push eax
push dword [esi + 8]
mov edi, dword [esi + 0x30]
push edi
push 0
call dword [0x4412d8]
jmp dword [0x43c78c]
push edi
call fcn.00409040
add esp, 4
mov edi, dword [esi + 0x40]
mov edx, ebx
push 0x80
push 0x60
push 5
push 0
push 0x100002
push edi
mov dword [esi + 8], edx
push edx
call fcn.004359b0
add esp, 0x1c
mov ebx, eax
not eax
shr eax, 0x1f
jmp dword [eax*4 + 0x43c7d4]
jmp case.default.0x413125
push 0
mov eax, dword [esi + 0x44]
push dword [eax]
mov eax, dword [esi + 0x34]
push dword [eax]
push dword [edi]
call fcn.00436210
add esp, 0x10
mov ebx, eax
mov edi, dword [edi]
mov dword [esi + 0x18], 0x3a393837
mov dword [esi + 0x20], 0
mov dword [esi + 0x1c], 0
mov dword [esi + 0xc], 0
mov eax, dword [esi + 0xc]
cmp eax, 0xb
ja 0x4130b7
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esi + 0xc]
mov ecx, dword [esi + 0xc]
movzx ecx, byte [esi + ecx + 0x18]
mov edx, 0x58
sub edx, eax
add eax, 0xe8f81ca7
xor edx, eax
and edx, ecx
xor edx, eax
mov dword [esi + 4], edx
mov eax, dword [esi + 4]
add al, 0x6f
mov ecx, dword [esi + 0xc]
mov byte [esi + ecx + 0x18], al
inc dword [esi + 0xc]
mov eax, dword [esi + 0xc]
cmp eax, 0xc
jb 0x413080
mov ecx, dword [0x4412dc]
test ecx, ecx
je case.default.0x413125
mov dword [esi + 0x10], edi
mov edx, dword [esi + 0x18]
xor edi, edi
mov eax, dword [0x4412e0]
nop
nop
cmp dword [eax + edi*8], 0xa3c1f363
je 0x4130e0
inc edi
cmp ecx, edi
jne 0x4130d0
jmp case.default.0x413125
mov eax, dword [eax + edi*8 + 4]
cmp eax, edx
je case.default.0x413125
push dword [esi + 0x10]
push 1
push dword [0x4412e4]
push eax
call fcn.004337a0
add esp, 0x10
mov edi, dword [esi + 0x34]
push dword [edi]
call fcn.00431b40
add esp, 4
mov dword [edi], 0
not ebx
shr ebx, 0x1f
mov dword [esi + 0x10], 0
xor eax, eax
mov edx, dword [esi + 8]
mov ecx, ebx
mov ebx, dword [esi + 0x28]
jmp dword [ecx*4 + 0x43c7dc]
mov dword [esi + 0x28], ebx
mov ebx, dword [esi + 0x2c]
jmp dword [eax*4 + 0x43c82c]
mov dword [esi + 8], edx
xor eax, eax
mov ecx, dword [esi + 0x28]
test ecx, ecx
setle al
jmp dword [eax*4 + 0x43c844]
xor eax, eax
test ecx, ecx
sete al
mov ecx, dword [esi + 0x124]
jmp dword [eax*4 + 0x43c85c]
mov eax, dword [esi + 0x100]
jmp dword [eax*4 + 0x43c864]
push 0x9f7704b7
push dword [0x4412d0]
call fcn.00435100
add esp, 8
push 0
push 0
mov ecx, dword [esi + 0x34]
push dword [ecx]
push 0x41a180
push 0
push 0
call eax
xor ecx, ecx
test eax, eax
setne cl
mov edx, dword [esi + 0x8c]
jmp dword [ecx*4 + 0x43c874]
mov eax, dword [esi + 0x34]
mov eax, dword [eax]
xor ecx, ecx
test eax, eax
setne cl
jmp dword [ecx*4 + 0x43c884]
push eax
call fcn.00431b40
add esp, 4
xor eax, eax
mov ecx, dword [esi + 8]
test ecx, ecx
sete al
jmp dword [eax*4 + 0x43c89c]
xor eax, eax
cmp dword [esi + 0x10], 0
sete al
jmp dword [eax*4 + 0x43c8a4]
push dword [esi + 0x10]
call fcn.00409040
add esp, 4
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
jmp dword [0x43c8b8]
inc ebx
jmp 0x411671
mov dword [ecx + 0x40], 0
mov dword [ecx + 0x3c], 0
mov dword [ecx + 0x38], 0
mov dword [ecx + 0x34], 0
mov dword [ecx + 0x30], 0
mov dword [ecx + 0x2c], 0
mov dword [ecx + 0x28], 0
mov dword [ecx + 0x24], 0
mov dword [ecx + 0x20], 0
mov dword [ecx + 0x1c], 0
mov dword [ecx + 0x18], 0
mov dword [ecx + 0x14], 0
mov dword [ecx + 0x10], 0
mov dword [ecx + 0xc], 0
mov dword [ecx + 8], 0
mov dword [ecx + 4], 0
mov dword [ecx], 0x44
push 0xd472a769
push dword [0x4412d0]
mov edi, ecx
call fcn.00435100
add esp, 8
push dword [esi + 0x94]
push edi
push 0
push 0
push 0
push 0
push 0
push 0
push dword [esi + 0x10]
push dword [esi + 8]
call eax
xor ecx, ecx
test eax, eax
setne cl
jmp dword [ecx*4 + 0x43c86c]
mov eax, dword [esi + 0x34]
mov eax, dword [eax]
xor ecx, ecx
test eax, eax
setne cl
jmp dword [ecx*4 + 0x43c884]
xor ebx, ebx
mov eax, dword [esi + 0x54]
add eax, 2
mov dword [esi + 0xf8], eax
mov eax, dword [esi + 0x58]
add eax, 2
mov dword [esi + 0xcc], eax
mov ecx, 1
mov eax, dword [esi + 0xa0]
sub ecx, eax
mov dword [esi + 0xf0], ecx
add dword [esi + 0x68], 2
mov ecx, dword [esi + 0x6c]
lea edx, [ecx + 2]
mov dword [esi + 0xc8], edx
lea edx, [eax + 2]
mov dword [esi + 0xd8], edx
add eax, 0xfffffffe
mov dword [esi + 0xec], eax
mov eax, dword [esi + 0xb8]
lea eax, [eax + 2]
mov dword [esi + 0xf4], eax
mov eax, dword [esi + 0x54]
lea eax, [eax + 0x32]
mov dword [esi + 0xfc], eax
lea eax, [ecx + 0x3a]
mov dword [esi + 0xd4], eax
mov eax, dword [esi + 0x64]
lea eax, [eax + 0x12]
mov dword [esi + 0xe8], eax
mov eax, dword [esi + 0xa4]
lea eax, [eax + 3]
mov dword [esi + 0xe4], eax
mov eax, dword [esi + 0xa8]
lea eax, [eax + 3]
mov dword [esi + 0xe0], eax
mov eax, dword [esi + 0xac]
lea eax, [eax + 0xa]
mov dword [esi + 0xc4], eax
mov eax, dword [esi + 0xb0]
lea eax, [eax + 0xa]
mov dword [esi + 0xd0], eax
mov eax, dword [esi + 0xb4]
lea eax, [eax + 0xa]
mov dword [esi + 0xdc], eax
mov eax, dword [esi + 0x70]
lea eax, [eax + 2]
mov dword [esi + 0x110], eax
mov eax, dword [esi + 0x74]
lea eax, [eax + 3]
mov dword [esi + 0x10c], eax
mov eax, dword [esi + 0x78]
add eax, 2
mov dword [esi + 0x108], eax
lea eax, [edi + 3]
mov dword [esi + 0x114], eax
mov eax, dword [esi + 0x80]
add eax, 2
mov dword [esi + 0xc0], eax
jmp 0x411671
mov eax, dword [esi + 0x68]
mov dword [esi + 0x88], eax
mov eax, dword [case.0x40f4be.33]
mov edi, edx
nop
nop
jmp eax
mov dword [esi + 0x8c], ebx
mov dword [esi + 0x54], edi
xor ecx, ecx
test eax, eax
sete cl
mov dword [esi + 0x7c], eax
xor eax, eax
mov edx, dword [esi + 0xbc]
jmp dword [ecx*4 + 0x43c71c]
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
push dword [ebp + 8]
call fcn.00402a90
add esp, 4
push eax
push eax
mov eax, esp
and eax, 0xfffffff8
mov dword [esi + 0x120], eax
mov esp, eax
push eax
sub esp, 0x3c
mov dword [esi + 0x68], esp
sub esp, 0x60
mov dword [esi + 0x9c], esp
sub esp, 0x18
mov eax, esp
and eax, 0xfffffff8
mov dword [esi + 0xb8], eax
mov esp, eax
push eax
mov dword [esi + 0x98], esp
sub esp, 0x18
mov eax, esp
and eax, 0xfffffff8
mov dword [esi + 0xb4], eax
mov esp, eax
push eax
sub esp, 0x14
mov eax, esp
and eax, 0xfffffff8
mov dword [esi + 0xb0], eax
mov esp, eax
push eax
sub esp, 0x14
mov eax, esp
and eax, 0xfffffff8
mov dword [esi + 0xac], eax
mov esp, eax
push eax
mov dword [esi + 0x40], esp
sub esp, 8
mov eax, esp
and eax, 0xfffffff8
mov dword [esi + 0xa8], eax
mov esp, eax
push eax
sub esp, 0xc
mov eax, esp
and eax, 0xfffffff8
mov dword [esi + 0xa4], eax
mov esp, eax
push eax
sub esp, 0x10
mov dword [esi + 0xa0], esp
sub esp, 0x20
mov eax, esp
and eax, 0xfffffff8
mov dword [esi + 0x64], eax
mov esp, eax
push eax
sub esp, 0xc
mov eax, esp
and eax, 0xfffffff8
mov dword [esi + 0x58], eax
mov esp, eax
push eax
sub esp, 0x44
mov eax, esp
and eax, 0xfffffff8
mov dword [esi + 0x6c], eax
mov esp, eax
push eax
sub esp, 0x3c
mov edi, esp
and edi, 0xfffffff8
mov esp, edi
push eax
sub esp, 0x40
mov dword [esi + 0x124], esp
sub esp, 0x10
mov dword [esi + 0x94], esp
sub esp, 8
mov ebx, esp
and ebx, 0xfffffff8
mov esp, ebx
push eax
sub esp, 0x40
mov dword [esi + 0x11c], esp
sub esp, 0x10
mov dword [esi + 0x118], esp
push dword [ebp + 8]
call fcn.00402a90
add esp, 4
jmp dword [0x43c718]
xlatb
inc eax
add byte [esi], dl
in al, 0x40
add byte [ebx - 0x29], ah
inc eax
add byte [edi + edx*8 + 0x40], dh
add byte [edx - 0x29], bh
inc eax
add byte [edx], dl
fadd dword [eax]
adc bl, al
inc eax
add byte [ebp - 0x5dffbf28], al
fadd dword [eax]
xchg ebx, eax
fadd dword [eax]
mov byte [0x9a0040d8], al
loopne 4440939
add byte [ebx - 0x26], ah
inc eax
add byte [edx - 0x26], bl
inc eax
add byte [esi - 0x22], bl
fiadd word [eax]
lodsd eax, dword [esi]
fiadd word [eax]
invalid
fiadd word [eax]
lodsd eax, dword [esi]
fiadd word [eax]
adc bl, bh
fild word [eax]
jb 0x43c320
fild word [eax]
jb 0x43c320
inc eax
add byte [esi + ebx*8 - 0x216effc0], al
inc eax
add byte [eax - 0x7effbf21], dl
fild word [eax]
nop
fild word [eax]
xchg esi, eax
fild word [eax]
movsb byte es:[edi], byte [esi]
fild word [eax]
mov ah, 0xdf
inc eax
add byte [esi + 0x760040e0], cl
loopne 0x43c3a7
add byte [esi - 0x20], dh
inc eax
loopne 0x43c3a7
add byte [esi - 0x20], dh
inc eax
add byte [esi - 0x53ffbf20], cl
loopne 0x43c3b3
add byte [ebx - 0x1cf6ffc0], bl
inc eax
add byte [ecx], al
add byte [eax], al
add byte [ecx], al
add byte [eax], al
add byte [ecx], al
add byte [eax], al
add byte [esp], bh
inc eax
add al, ah
jecxz 0x43c3cf
add byte [eax - 0x1fffbf1d], ch
jecxz 0x43c3d7
add byte [esi], dl
in al, 0x40
add cl, dh
in al, 0x40
add byte [edi - 0x50ffbeeb], ch
adc eax, 0xe5380041
inc eax
add byte [eax], bh
in eax, 0x40
add cl, bl
in eax, 0x40
add byte [eax], dl
in eax, 0x40
add byte [eax - 0x4fffbf1a], ah
jmp 0xe6f2c3fe
add ah, dh
invalid
add byte [ecx], al
int1
inc eax
add cl, cl
int1
inc eax
add byte [edi], al
int1
inc eax
add byte [0xc90040f3], dl
int1
inc eax
add byte [edx], bh
or al, byte [ecx]
and esi, ebx
inc eax
add byte [edx], bh
or al, byte [ecx]
mov eax, 0xf70040f3
adc al, 65
add byte [esp + edx + 0x41], ah
add byte [esp + edx + 0x41], ah
add byte [ecx + 0x3a004109], ah
or al, byte [ecx]
scasd eax, dword es:[edi]
or dword [ecx], eax
cmp cl, byte [edx]
inc ecx
add byte [edi], bh
or al, byte [ecx]
in eax, 0xa
inc ecx
add byte [eax], dl
in eax, 0x40
add byte [esi - 0x65ffbef1], al
cmovno eax, dword [eax]
inc eax
adc al, 65
add ah, bh
adc al, byte [ecx]
inc eax
adc al, 65
add byte [eax + 0x14], al
inc ecx
add byte [esi + 0x14], al
inc ecx
add byte [eax + 0x14], al
inc ecx
add byte [esp + edx + 0x41], cl
add byte [ebp + 0x1f00410f], ah
adc eax, dword [ecx]
loopne 0x43c464
inc ecx
add byte [eax], dl
adc al, 0x41
add byte [ecx], bl
adc al, 0x41
add byte [eax], dh
adc al, 0x41
add byte [eax], dh
adc al, 0x41
add al, ah
adc al, byte [ecx]
xor byte [ecx + eax*2], dl
loopne 0x43c478
inc ecx
add byte [eax], dh
adc al, 0x41
add byte [ebx + 0x5e00410f], ch
adc al, 0x41
add byte [ebx - 0x72ffbeeb], bl
adc eax, 0x158d0041
lea edx, [0x158d0041]
inc ecx
add byte [eax], dl
in eax, 0x40
add byte [ecx + ebp*8 - 0x18b6ffc0], bl
inc eax
add byte [ecx + ebp*8 - 0x180affc0], bl
inc eax
add byte [ecx + ebp*8 - 0x1785ffc0], bl
inc eax
add byte [ecx + ebp*8 - 0x16eaffc0], bl
inc eax
add byte [ecx + ebp*8 - 0x252ffc0], bl
inc eax
add byte [ebp - 2], dl
inc eax
add byte [eax], dl
in eax, 0x40
add ch, al
add al, byte [ecx]
into
add al, byte [ecx]
lock add al, byte [ecx]
lock add al, byte [ecx]
lock add al, byte [ecx]
add al, byte [ecx]
inc byte [edx]
inc ecx
add byte [ebx + eax], al
inc ecx
add bh, ch
add eax, dword [ecx]
stc
add eax, dword [ecx]
dec edi
or dword [ecx], eax
invalid
inc eax
add ch, al
hlt
xor dword [ecx], eax
inc esi
sbb byte [ecx], al
push ebp
sbb byte [ecx], al
test dword [edx], ebx
inc ecx
add cl, cl
sbb eax, dword [ecx]
add dword [ecx + eax*2], ebx
add byte [ebx], dh
sbb al, 0x41
add bh, ah
sbb eax, dword [ecx]
scasd eax, dword es:[edi]
sbb eax, 499449921
inc ecx
add byte [ebx - 0x2dffbeea], bl
sbb eax, 0x1ef70041
inc ecx
add byte [ebp + 0x411e], cl
pop ds
inc ecx
add byte [eax], al
pop ds
inc ecx
add byte [ecx + esi], ch
inc ecx
add byte [eax], al
pop ds
inc ecx
add byte [ecx + esi], ch
inc ecx
add byte [eax + 0x18], dh
inc ecx
add byte [esi], al
xor al, byte [ecx]
cmp dword [ecx], esi
inc ecx
add byte [ecx], bh
xor dword [ecx], eax
js 0x43c85b
inc ecx
add byte [esi + 0x23], ch
inc ecx
add byte [ecx], bh
xor dword [ecx], eax
movsd dword es:[edi], dword [esi]
push ss
inc ecx
add byte [ebp + 0x31], cl
inc ecx
add byte [esi + edx + 0x316e0041], dh
inc ecx
add byte [ecx - 0x3effbecf], ch
push ss
inc ecx
add byte [ecx + 0x61004131], ch
xor dword [ecx], eax
outsb dx, byte [esi]
xor dword [ecx], eax
or al, 0x32
inc ecx
add al, al
xor al, byte [ecx]
dec ebp
daa
inc ecx
add byte [ecx - 0x2fffbecf], ch
pop ds
inc ecx
add byte [edi + edx + 0x41], bh
add byte [ecx + 0x23004117], al
daa
inc ecx
add byte [ecx + esi + 0x10041], bh
add byte [eax], al
add dword [eax], eax
add byte [eax], al
and esp, dword [edi]
inc ecx
add byte [ecx], al
add byte [eax], al
add byte [edi], dh
inc ecx
add dh, dl
xor dword [ecx], eax
out 0x31, al
inc ecx
add byte [eax], al
xor al, byte [ecx]
add byte [edx], dh
inc ecx
add byte [eax], al
xor al, byte [ecx]
add byte [edx], dh
inc ecx
add byte [esi], al
xor al, byte [ecx]
add byte [eax], al
add byte [eax], al
loope 0x43c8f9
inc ecx
add byte [edi], al
cmp byte [ecx], al
cmp edi, dword [eax]
inc ecx
add byte [eax + 0x39], ah
inc ecx
add byte [edi + 0x39], ch
inc ecx
add byte [edi + 0x39], ch
inc ecx
add byte [ebp + 0x39], dh
inc ecx
add byte [ecx - 0x7effbec7], al
cmp dword [ecx], eax
cmp dword [ecx], 0x37d90041
inc ecx
add byte [ebx], dh
cmp al, byte [ecx]
jns 0x43c92c
inc ecx
add byte [eax + 0x3a], ah
inc ecx
add byte [eax + 0x3a], ah
inc ecx
add byte [eax + 0x3a], ah
inc ecx
add byte [esi + 0x3a], ah
inc ecx
add byte [esi + 0x3a], ah
inc ecx
add byte [eax + 0x3a], dh
cmp al, byte [ecx]
pushal
cmp al, byte [ecx]
cmp al, byte [ecx]
cmp al, byte [ecx]
jo 0x43c944
inc ecx
add byte [eax + 0x3a], ah
inc ecx
add cl, bl
aaa
inc ecx
add cl, ah
aaa
inc ecx
add byte [ecx + 0x7004139], al
cmp byte [ecx], al
outsd dx, dword [esi]
cmp dword [ecx], eax
cmp edi, dword [eax]
inc ecx
add byte [eax + 0x39], ah
inc ecx
add byte [edi + 0x39], ch
inc ecx
add byte [ebp + 0x39], dh
outsd dx, dword [esi]
cmp dword [ecx], eax
jne 0x43c96b
inc ecx
add byte [ecx + 0x33004139], al
cmp al, byte [ecx]
cmp al, byte [ecx]
jo 0x43c97c
inc ecx
add byte [ecx + 0x3a], bh
jns 0x43c980
inc ecx
add byte [eax + 0x3a], ah
inc ecx
add byte [eax + 0x3a], dh
inc ecx
add byte [eax + 0x3a], ah
inc ecx
add byte [eax + 0x3a], ah
inc ecx
add byte [eax + 0x3a], ah
inc ecx
add byte [esi + 0x3a], ah
inc ecx
add cl, dh
cmp al, byte [ecx]
jmp 0x99440aa4
add byte [eax], bl
dec ebx
inc ecx
add cl, bh
dec edx
inc ecx
add byte [ebx], ah
dec ecx
inc ecx
add byte [ecx + ecx*2 + 0x41], dl
add dl, ch
dec edx
inc ecx
add bl, dh
dec edx
ljmp 0x414a:0xf300414a
dec edx
inc ecx
add byte [esi + 0x49], cl
inc ecx
add byte [esi + 0x49], cl
inc ecx
add byte [ebx - 0x63ffbeba], dl
inc esi
inc ecx
add byte [esi + eax*2 + 0x474c0041], bl
inc ecx
add byte [edx + 0x47], dl
inc ecx
add byte [ebx + 0x47], bl
inc ecx
add cl, bl
dec eax
inc ecx
add bh, bl
dec eax
inc ecx
add al, dh
dec eax
inc ecx
add al, bh
dec eax
inc ecx
add byte [ebx], al
dec ecx
inc ecx
add byte [edx + 0x41], ah
inc ecx
add byte [ebx + 0x41], dl
inc ecx
add byte [eax + 0x41], ch
inc ecx
add byte [eax - 0x53ffbebf], dl
inc ecx
inc ecx
add byte [eax + 0x42], ah
inc ecx
add byte [edi + 0x4b], dl
inc ecx
add byte [esp + edi + 0x3cb40041], ah
inc ecx
add al, bl
cmp al, 0x41
add cl, ah
cmp al, 0x41
add byte [ebp - 0x65ffbeb5], al
cmp eax, 0x3e0e0041
inc ecx
add byte [ecx + 0x3f], al
inc ecx
add dh, al
aas
inc ecx
add byte [esi], dh
inc ecx
inc ecx
add byte [ecx + 0x41], cl
inc ecx
add byte [eax - 0x6dffbec1], cl
aas
inc ecx
add byte [esi - 0x61ffbec1], bl
aas
inc ecx
add byte [esi - 0x4fffbec1], bl
aas
inc ecx
add byte [edx - 0x47ffbec1], dh
aas
inc ecx
add byte [ecx + eax*2 + 0x41bc0041], bh
inc ecx
add byte [ebx], al
dec ecx
inc ecx
add byte [edx - 0x1affbebe], al
inc ebx
inc ecx
add al, dh
inc ebx
inc ecx
add dl, dh
inc ebx
inc ecx
add dl, dh
inc ebx
inc ecx
add byte [edx + 0x46], cl
inc ecx
add byte [edx + 0x44], al
inc ecx
add byte [ebp + eax*2 + 0x45c50041], dh
inc ecx
add dh, dh
inc ebp
inc ecx
add byte [ebx], ah
inc esi
inc ecx
add byte [eax + 0x46], al
inc ecx
add byte [eax], dl
inc esp
inc ecx
add byte [esp + eax*2], bl
inc ecx
add byte [ecx], al
add byte [eax], al
add byte [ebp + 0x3000414b], al
inc ebx
inc ecx
add byte [ebx], bh
inc ebx
inc ecx
add byte [edi + 0x4a00413c], bl
inc esi
inc ecx
add byte [ebp + 0x46], bl
inc ecx
add byte [esi + 0x46], ah
inc ecx
add byte [ebx], al
dec ecx
inc ecx
add byte [ebx], al
dec ecx
inc ecx
add byte [0x6e00414b], al
inc ecx
inc ecx
add byte [ecx], dh
dec ebx
inc ecx
add byte [eax - 0xfffbec1], dh
inc ebx
inc ecx
add byte [ecx], al
add byte [eax], al
add byte [eax + 0x5000414b], dh
dec esp
inc ecx
add dh, bh
dec edi
inc ecx
add dh, bh
dec edi
inc ecx
add byte [eax + 0x50], dl
inc ecx
add byte [edx + 0x50], dl
inc ecx
add byte [eax + 0x6100414c], al
push eax
inc ecx
add byte [eax + edx*2 + 0x53e40041], cl
inc ecx
add byte [eax], dh
push eax
inc ecx
add byte [eax], dh
push eax
inc ecx
add byte [eax - 0x55ffbeb4], al
push esp
inc ecx
add byte [ebx - 0x52ffbeac], bl
push esp
inc ecx
add dh, ch
push ebp
inc ecx
add byte [esp + edx*2 + 0x54c00041], dh
inc ecx
add byte [eax], al
push edi
inc ecx
add dl, bl
push esp
inc ecx
add dh, dl
pop ecx
inc ecx
add byte [edx - 0x69ffbea3], cl
pop ebp
inc ecx
add byte [ecx - 0x50ffbea3], ch
pop ebp
inc ecx
add byte [edi - 0x58ffbea3], ah
pop ebp
inc ecx
add byte [edi], cl
push edi
inc ecx
add byte [eax + 0x5000414b], dh
push eax
inc ecx
add dh, ah
push esp
inc ecx
add byte [edx + 0x41], ah
add byte [ebx + 0x62], dh
inc ecx
add byte [ecx + 0x62], bh
inc ecx
add byte [ebp - 0x70ffbe9e], al
bound eax, qword [ecx]
test dword [edx + 0x41], esp
add byte [edi + eax*2 + 0x41], cl
add byte [ecx + 0x500413c], bl
dec ebx
inc ecx
add byte [eax], bl
dec ebx
inc ecx
add cl, bh
dec edx
inc ecx
add byte [0x9c00414b], al
inc esi
inc ecx
add byte [ebx], ah
dec ecx
inc ecx
add byte [esi + 0x49], cl
inc ecx
add byte [ecx + ecx*2 + 0x41], dl
add dl, ch
dec edx
inc ecx
add bl, dh
dec edx
inc ecx
add byte [ebx - 0x63ffbeba], dl
inc esi
inc ecx
add byte [edx + 0x47], dl
inc ecx
add byte [ebx + 0x47], bl
inc ecx
add cl, bl
dec eax
inc ecx
add byte [edx + 0x41], ah
inc ecx
add bh, bl
dec eax
inc ecx
add al, dh
dec eax
inc ecx
add al, bh
dec eax
inc ecx
add byte [ebx], al
dec ecx
inc ecx
add byte [ebx + 0x41], dl
inc ecx
add byte [eax + 0x41], ch
inc ecx
add byte [esi + 0x41], ch
inc ecx
add byte [eax - 0x6fffbebf], dl
inc ecx
inc ecx
add byte [ecx + eax*2 + 0x41bc0041], ch
inc ecx
add byte [eax + 0x42], ah
inc ecx
add byte [ecx], dh
dec ebx
inc ecx
add byte [edi + 0x4b], dl
inc ecx
add byte [ecx], dh
dec ebx
inc ecx
add byte [esp + edi + 0x3f9e0041], ah
inc ecx
add byte [esp + edi + 0x3f9e0041], dh
inc ecx
add al, bl
cmp al, 0x41
add byte [esi - 0x65ffbec1], bl
cmp eax, 0x3f880041
inc ecx
add dh, al
aas
inc ecx
add byte [esi], dh
inc ecx
inc ecx
add byte [ecx + 0x41], cl
inc ecx
add byte [edx - 0x61ffbec1], dl
aas
inc ecx
add byte [eax - 0x4fffbec1], dh
aas
inc ecx
add byte [edx - 0x4fffbec1], dh
aas
inc ecx
add byte [eax - 0x43ffbec1], bh
inc ecx
inc ecx
add byte [edx + 0x3004142], al
dec ecx
inc ecx
add byte [eax], dh
inc ebx
inc ecx
add ch, ah
inc ebx
inc ecx
add al, dh
inc ebx
inc ecx
add al, dh
inc ebx
inc ecx
add al, dh
inc ebx
inc ecx
add dl, dh
inc ebx
inc ecx
add byte [edx + 0x46], cl
inc ecx
add byte [edx + 0x44], al
inc ecx
add ch, al
inc ebp
inc ecx
add byte [ebp + eax*2 + 0x45f60041], dh
inc ecx
add ch, al
inc ebp
inc ecx
add byte [ebx], ah
inc esi
inc ecx
add byte [eax + 0x46], al
inc ecx
add byte [eax], dl
inc esp
inc ecx
add byte [esp + eax*2], bl
inc ecx
add byte [ecx], al
add byte [eax], al
add byte [ecx], al
add byte [eax], al
add byte [ebp + 0x100414b], al
add byte [eax], al
add byte [ebp + 0x46], bl
inc ecx
add byte [esi + 0x46], ah
inc ecx
add byte [eax - 0x4fffbeb5], dh
dec ebx
inc ecx
add byte [eax + 0x5000414b], dh
dec esp
inc ecx
add byte [eax - 0x1ffbeb4], al
dec edi
inc ecx
add byte [eax + 0x50], dl
inc ecx
add byte [eax + 0x50], dl
inc ecx
add byte [eax + 0x50], dl
inc ecx
add byte [edx + 0x50], dl
inc ecx
add byte [eax + 0x6100414c], al
push eax
inc ecx
add byte [eax], dh
push eax
inc ecx
add byte [eax + edx*2 + 0x53e40041], cl
inc ecx
add byte [eax], dh
push eax
inc ecx
add byte [ebx - 0x52ffbeac], bl
push esp
inc ecx
add byte [ebp - 0x55ffbeac], ch
push esp
inc ecx
add byte [esp + edx*2 + 0x55ee0041], dh
inc ecx
add al, al
push esp
inc ecx
add byte [eax], al
push edi
inc ecx
add byte [edi], cl
push edi
inc ecx
add dl, bl
push esp
inc ecx
add dh, dl
pop ecx
inc ecx
add dh, ah
push esp
inc ecx
add dh, dl
pop ecx
inc ecx
add byte [edx - 0x69ffbea3], cl
pop ebp
inc ecx
add byte [ecx - 0x50ffbea3], ch
pop ebp
inc ecx
add byte [edi + 0x6400415d], ah
bound eax, qword [ecx]
jae 0x43cd5c
inc ecx
add byte [ecx + 0x62], bh
inc ecx
add byte [ebp + 0x4162], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [edx + 0x1f004164], al
inc ecx
add byte [esi], ch
inc ecx
add byte [ecx], al
add byte [eax], al
add byte [esi], ch
inc ecx
add dh, cl
arpl word [ecx], ax
salc
arpl word [ecx], ax
invalid
add dword [eax], eax
add byte [eax], al
jo 0x43cdd5
inc ecx
add byte [ebx + 0x74], dl
inc ecx
add byte [esi + 0x4e004171], bl
jp 0x43cdb0
add byte [esi + 0x7a], bh
inc ecx
add byte [edi], ch
jp 0x43cdb8
add byte [eax], bl
jb 0x43cdbc
add bh, dh
jns 0x43cdc0
add byte [edx + 0x79], cl
inc ecx
add byte [edi + 0x7f004179], bh
jae 0x43cdcc
add byte [eax], al
jb 0x43cdd0
add ah, cl
ja 0x43cdd4
add ah, dl
jns 0x43cdd8
add byte [ebx], bh
je 0x43cddc
add ah, dl
jae 0x43cde0
add byte [ecx + edi*2 + 0x76980041], al
inc ecx
add byte [ecx - 0x5bffbe8f], cl
jns 0x43cdf0
add byte [ebx + 0x71], ah
inc ecx
arpl word [ecx + 0x41], si
add byte [ecx + 0x7a], ch
inc ecx
add al, ah
jno 0x43cdfc
loopne 0x43ce2b
inc ecx
add dl, bh
cli
jae 0x43ce00
add byte [ebx - 0x47ffbe8a], al
jbe 0x43ce08
xor dword [esi + 0x41], 0
mov eax, 0x14004176
jp 0x43ce0c
add byte [edx + edi*2], dl
inc ecx
add byte [edi + 0x73], al
inc ecx
inc edi
jae 0x43ce10
add dh, dl
salc
jp 0x43ce14
add byte [0x6b004174], ch
sub eax, 0x6b004174
je 0x43ce18
add byte [ebx + 0x79], ch
inc ecx
imul edi, dword [ecx + 0x41], 0
jns 0x43ce1c
add byte [esp + esi*2], dl
adc al, 0x74
inc ecx
add byte [esi + edi*2 + 0x41], bl
pop esp
jle 0x43ce24
add byte [ecx + 0x7e], ch
inc ecx
add byte [edx + 0x70004180], ch
add dword [ecx], 0x418150
pop ebx
add dword [ecx], 0x41815b
push eax
add dword [ecx], 0x41815b
pop ebx
add dword [ecx], 0x41815b
pop ebx
add dword [ecx], 0x41815b
and byte [ecx + eax*2], 0xff
arpl word [ecx], ax
pop ebx
add dword [ecx], 0x416482
jmp dword [ebx + 0x41]
jmp dword [ebx + 0x41]
pop ds
inc ecx
add dh, cl
into
arpl word [ecx], ax
inc ecx
add byte [ecx], al
add byte [eax], al
add byte [ecx], al
add byte [eax], al
add byte [esi], ch
inc ecx
add dword [eax], eax
add byte [eax], al
add dword [eax], eax
add byte [eax], al
inc ecx
add byte [ecx], al
add byte [eax], al
add byte [edx + 0x65], al
inc ecx
add dh, cl
arpl word [ecx], ax
salc
arpl word [ecx], ax
inc edx
inc ecx
add ah, bl
arpl word [ecx], ax
invalid