Function at 0x40e354
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff8
sub esp, 0x590
mov esi, esp
push eax
sub esp, 0xc
mov eax, esp
and eax, 0xfffffff8
mov dword [esi + 0x24], eax
mov esp, eax
push eax
sub esp, 0xc
mov eax, esp
and eax, 0xfffffff8
mov dword [esi + 0x48], eax
mov esp, eax
push eax
sub esp, 0x1c
mov eax, esp
and eax, 0xfffffff8
mov dword [esi + 0x20], eax
mov esp, eax
push eax
mov dword [esi + 0x44], esp
push eax
mov dword [esi + 0x40], esp
sub esp, 0x70
mov eax, esp
and eax, 0xfffffff8
mov dword [esi + 0x30], eax
mov esp, eax
push eax
sub esp, 0x14
mov eax, esp
and eax, 0xfffffff8
mov dword [esi + 0x50], eax
mov esp, eax
push eax
sub esp, 0xc
mov eax, esp
and eax, 0xfffffff8
mov dword [esi + 0x60], eax
mov esp, eax
push eax
sub esp, 0x64
mov eax, esp
and eax, 0xfffffff8
mov dword [esi + 0x3c], eax
mov esp, eax
push eax
sub esp, 0x14
mov eax, esp
and eax, 0xfffffff8
mov dword [esi + 0x38], eax
mov esp, eax
push eax
sub esp, 0x7fc
mov dword [esi + 0x2c], esp
sub esp, 0x88
mov eax, esp
and eax, 0xfffffff8
mov dword [esi + 8], eax
mov esp, eax
push eax
sub esp, 0x40
mov dword [esi + 0x4c], esp
sub esp, 0x10
mov dword [esi + 0x28], esp
mov ecx, dword [0x4397f4]
mov dword [esi + 0xd0], 0x83cf13d6
mov dword [esi + 0xd4], 0
mov dword [esi + 0xd7], 0
mov dword [esi + 0x340], 0
mov eax, dword [esi + 0x340]
cmp eax, 0xa
ja 0x40cda2
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esi + 0x340]
mov edx, dword [esi + 0x340]
movzx edx, byte [esi + edx + 0xd0]
mov edi, 0xe9
sub edi, eax
add eax, 0xa7c74016
xor edi, eax
and edi, edx
xor edi, eax
mov dword [esi + 0x138], edi
mov eax, dword [esi + 0x138]
add al, 0x66
mov edx, dword [esi + 0x340]
mov byte [esi + edx + 0xd0], al
inc dword [esi + 0x340]
mov eax, dword [esi + 0x340]
cmp eax, 0xb
jb 0x40cd50
mov edx, dword [str.bcmcEw__VisaSoftware]
mov dword [esi + 0x138], 0xbe766261
mov dword [esi + 0x13c], 0x6e656076
mov dword [esi + 0x140], 0x66956c7e
mov dword [esi + 0x144], 0x6e7d7e69
mov dword [esi + 0x148], 0x65b47477
mov dword [esi + 0x14c], 0xa3ab6771
mov dword [esi + 0x150], 0x77bca9b6
mov dword [esi + 0x154], 0xdfa37975
mov byte [esi + 0x158], 0
mov dword [esi + 0x68], 0
mov eax, dword [esi + 0x68]
cmp eax, 0x20
ja 0x40ce53
nop
nop
mov eax, dword [esi + 0x68]
mov edi, dword [esi + 0x68]
movzx edi, byte [esi + edi + 0x138]
mov ebx, 0x1f
sub ebx, eax
add eax, 0x34bf2fe0
xor ebx, eax
and ebx, edi
xor ebx, eax
mov dword [esi + 0x340], ebx
mov eax, dword [esi + 0x340]
add al, 0xe0
mov edi, dword [esi + 0x68]
mov byte [esi + edi + 0x138], al
inc dword [esi + 0x68]
mov eax, dword [esi + 0x68]
cmp eax, 0x21
jb 0x40ce10
movzx ebx, byte [esi + 0x138]
lea eax, [esi + 0x340]
test bl, bl
je 0x40ce7b
lea edi, [esi + 0x139]
nop
nop
nop
nop
nop
nop
mov byte [eax], bl
inc eax
movzx ebx, byte [edi]
inc edi
test bl, bl
jne 0x40ce70
mov byte [eax], 0
movzx ebx, byte [edx]
test bl, bl
je 0x40ce9b
inc edx
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov byte [eax], bl
inc eax
movzx ebx, byte [edx]
inc edx
test bl, bl
jne 0x40ce90
mov byte [eax], 0
movzx edx, byte [esi + 0xd0]
test dl, dl
je 0x40cebb
lea edi, [esi + 0xd1]
nop
mov byte [eax], dl
inc eax
movzx edx, byte [edi]
inc edi
test dl, dl
jne 0x40ceb0
mov byte [eax], 0
movzx edx, byte [ecx]
test dl, dl
je 0x40cedb
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 0x40ced0
mov byte [eax], 0
mov dword [esi + 0x138], 0x8b059553
mov dword [esi + 0x13c], 0x8f1c8918
mov dword [esi + 0x140], 0x831e8d15
mov dword [esi + 0x144], 0x87538116
mov dword [esi + 0x148], 0x7b0b8532
mov dword [esi + 0x14c], 0x7fe379ea
mov dword [esi + 0x150], 0x739c7db0
mov dword [esi + 0x154], 0x77e071d5
mov dword [esi + 0x158], 0x6be875e6
mov dword [esi + 0x15c], 0x6fcd69f5
mov dword [esi + 0x160], 0x63f86dc9
mov dword [esi + 0x164], 0x67f161fd
mov dword [esi + 0x168], 0x5bb565f4
mov dword [esi + 0x16c], 0x5f8b59d2
mov dword [esi + 0x170], 0x53d55dd7
mov dword [esi + 0x174], 0x578351db
mov dword [esi + 0x178], 0x4bc555cc
mov dword [esi + 0x17c], 0x4fdb49dc
mov dword [esi + 0x180], 0x43c74d9d
mov dword [esi + 0x184], 0x47dc41d4
mov dword [esi + 0x188], 0x3bd645dd
mov dword [esi + 0x18c], 0x3fa9399f
mov dword [esi + 0x190], 0x33a73d9a
mov dword [esi + 0x194], 0x37c33196
mov dword [esi + 0x198], 0x2b3435c8
mov dword [esi + 0x19c], 0
lea ecx, [esi + 0x340]
mov dword [esi + 0x68], 0
mov edx, dword [esi + 0x68]
cmp edx, 0x67
ja 0x40d045
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov edx, dword [esi + 0x68]
mov edi, dword [esi + 0x68]
movzx edi, byte [esi + edi + 0x138]
mov ebx, 0x92
sub ebx, edx
add edx, 0x12f7f56d
xor ebx, edx
and ebx, edi
xor ebx, edx
mov dword [esi + 0xd0], ebx
mov edx, dword [esi + 0xd0]
add dl, 5
mov edi, dword [esi + 0x68]
mov byte [esi + edi + 0x138], dl
inc dword [esi + 0x68]
mov edx, dword [esi + 0x68]
cmp edx, 0x68
jb 0x40d000
sub eax, ecx
mov dword [esi + 0xd0], 0x6383614f
mov dword [esi + 0xd4], 0x678f65f4
mov word [esi + 0xd8], 0x6968
mov dword [esi + 0xda], 0
mov dword [esi + 0xde], 0
mov dword [esi + 0xe2], 0
mov word [esi + 0xe6], 0
mov dword [esi + 0x3c0], 0
mov edx, dword [esi + 0x3c0]
cmp edx, 0x17
ja 0x40d0ee
mov edx, dword [esi + 0x3c0]
mov edi, dword [esi + 0x3c0]
movzx edi, byte [esi + edi + 0xd0]
mov ebx, 0x4f
sub ebx, edx
add edx, 0x7a58d5b0
xor ebx, edx
and ebx, edi
xor ebx, edx
mov dword [esi + 0x68], ebx
mov edx, dword [esi + 0x68]
add dl, 0x30
mov edi, dword [esi + 0x3c0]
mov byte [esi + edi + 0xd0], dl
inc dword [esi + 0x3c0]
mov edx, dword [esi + 0x3c0]
cmp edx, 0x18
jb case.default.0x40d11c
lea edx, [esi + 0x64]
lea ebx, [esi + 0x54]
lea edi, [esi + 0x138]
lea ecx, [esi + 0xd0]
push edx
push ebx
push eax
lea eax, [esi + 0x340]
push eax
push edi
push ecx
push 0x43dd4c
call fcn.0040ba60
add esp, 0x1c
movzx eax, al
jmp dword [eax*4 + 0x43a22c]
xor ebx, ebx
xor ecx, ecx
test ebx, 0
sete cl
xor eax, eax
jmp dword [ecx*4 + 0x43a234]
push 0x104
push edi
call dword [sym.imp.KERNEL32.dll_GetSystemDirectoryW]
mov ecx, dword [esi + 0x64]
mov ebx, dword [esi + 0x54]
lea eax, [ecx + ecx*2]
shr eax, 2
movzx edx, byte [ebx + ecx - 1]
cmp edx, 0x3d
je 0x40d160
cmp edx, 0x2e
jne 0x40d161
dec eax
movzx ecx, byte [ebx + ecx - 2]
cmp ecx, 0x3d
mov dword [esi + 4], ebx
je 0x40d173
cmp ecx, 0x2e
jne 0x40d174
dec eax
push eax
call fcn.00408a30
add esp, 4
mov ebx, eax
push eax
push dword [esi + 4]
call fcn.0042e230
add esp, 8
push dword [esi + 0x54]
call fcn.00430e10
add esp, 4
xor ecx, ecx
test ebx, ebx
sete cl
xor eax, eax
jmp dword [ecx*4 + 0x43a234]
mov dword [esi + 4], ebx
push ebx
call fcn.00401e00
add esp, 4
mov ebx, eax
jmp dword [0x43a23c]
push dword [esi + 4]
call fcn.00408a40
add esp, 4
mov dword [esi + 4], ebx
push ebx
call fcn.00402700
add esp, 4
mov ebx, eax
mov word [esi + 0x138], 0x2c26
mov byte [esi + 0x13a], 0xb2
mov dword [esi + 0x13b], 0
mov dword [esi + 0x13f], 0
mov byte [esi + 0x143], 0
mov dword [esi + 0x68], 0
mov eax, dword [esi + 0x68]
cmp eax, 0xb
ja 0x40d253
nop
nop
nop
mov eax, dword [esi + 0x68]
mov ecx, dword [esi + 0x68]
movzx ecx, byte [esi + ecx + 0x138]
mov edx, 0x97
sub edx, eax
add eax, 0xf14fdf68
xor edx, eax
and edx, ecx
xor edx, eax
mov dword [esi + 0xd0], edx
mov eax, dword [esi + 0xd0]
add al, 0x28
mov ecx, dword [esi + 0x68]
mov byte [esi + ecx + 0x138], al
inc dword [esi + 0x68]
mov eax, dword [esi + 0x68]
cmp eax, 0xc
jb 0x40d210
push edi
push ebx
call fcn.00402780
add esp, 8
xor ecx, ecx
test eax, eax
setg cl
jmp dword [ecx*4 + 0x43a244]
call fcn.0042ccd0
movzx eax, al
jmp dword [eax*4 + 0x43a24c]
mov word [esi + 0x138], 0x3131
mov byte [esi + 0x13a], 0x54
mov dword [esi + 0x13b], 0
mov word [esi + 0x13f], 0
mov dword [esi + 0x68], 0
mov eax, dword [esi + 0x68]
cmp eax, 8
ja 0x40d2f3
nop
nop
nop
nop
mov eax, dword [esi + 0x68]
mov ecx, dword [esi + 0x68]
movzx ecx, byte [esi + ecx + 0x138]
mov edx, 0x32
sub edx, eax
add eax, 0x6ba2e9cd
xor edx, eax
and edx, ecx
xor edx, eax
mov dword [esi + 0xd0], edx
mov eax, dword [esi + 0xd0]
add al, 0x65
mov ecx, dword [esi + 0x68]
mov byte [esi + ecx + 0x138], al
inc dword [esi + 0x68]
mov eax, dword [esi + 0x68]
cmp eax, 9
jb 0x40d2b0
push edi
push ebx
call fcn.00402780
add esp, 8
mov dword [esi + 0x34], eax
mov word [esi + 0x138], 0x34cb
mov byte [esi + 0x13a], 0x5a
mov dword [esi + 0x13b], 0
mov dword [esi + 0x13e], 0
mov dword [esi + 0x68], 0
mov eax, dword [esi + 0x68]
cmp eax, 9
ja 0x40d383
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esi + 0x68]
mov ecx, dword [esi + 0x68]
movzx ecx, byte [esi + ecx + 0x138]
mov edx, 0xb3
sub edx, eax
add eax, 0xae32ae4c
xor edx, eax
and edx, ecx
xor edx, eax
mov dword [esi + 0xd0], edx
mov eax, dword [esi + 0xd0]
add al, 0xec
mov ecx, dword [esi + 0x68]
mov byte [esi + ecx + 0x138], al
inc dword [esi + 0x68]
mov eax, dword [esi + 0x68]
cmp eax, 0xa
jb 0x40d340
push edi
push ebx
call fcn.00402780
add esp, 8
xor ecx, ecx
test eax, eax
setg cl
mov dword [esi + 0x58], ecx
mov dword [esi + 0x5c], ebx
push ebx
call fcn.0040e110
add esp, 4
push dword [esi + 4]
call fcn.00402990
add esp, 4
lea ebx, [esi + 0xd0]
mov ecx, ebx
push 1
call fcn.00409370
push ebx
call fcn.0041a560
add esp, 4
mov ecx, ebx
call fcn.00409d20
lea ebx, [esi + 0x68]
mov ecx, ebx
push 3
call fcn.00409370
push ebx
call fcn.0041aef0
add esp, 4
mov ecx, ebx
call fcn.00409d20
lea ebx, [esi + 0x3c0]
mov ecx, ebx
push 1
call fcn.00409370
push ebx
call fcn.0041b120
add esp, 4
mov ecx, ebx
call fcn.00409d20
lea ebx, [esi + 0x520]
mov ecx, ebx
push 1
call fcn.00409370
push ebx
call fcn.0041cfa0
add esp, 4
push ebx
call fcn.0041daf0
add esp, 4
push ebx
call fcn.0041dfd0
add esp, 4
mov ecx, ebx
call fcn.00409d20
lea ebx, [esi + 0x4b8]
mov ecx, ebx
push 1
call fcn.00409370
push ebx
call fcn.0041fe10
add esp, 4
mov ecx, ebx
call fcn.00409d20
lea ebx, [esi + 0x450]
mov ecx, ebx
push 1
call fcn.00409370
push ebx
call fcn.00421e20
add esp, 4
push ebx
call fcn.00428b80
add esp, 4
mov eax, dword [esi + 0x58]
jmp dword [eax*4 + 0x43a264]
push ebx
call fcn.00428d10
add esp, 4
lea ecx, [esi + 0x450]
call fcn.00409d20
lea eax, [esi + 0x42f]
push eax
call fcn.0042dac0
add esp, 4
mov edx, dword [esi + 0x24]
mov dword [edx], 0xb889b978
mov word [edx + 4], 0x5abe
mov byte [edx + 6], 0x1c
mov dword [edx + 7], 0
mov dword [edx + 0xb], 0
mov byte [edx + 0xf], 0
mov dword [esi], 0
mov eax, dword [esi]
cmp eax, 0xf
ja 0x40d513
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esi]
mov ecx, dword [esi]
movzx ecx, byte [edx + ecx]
mov edx, 0xd4
sub edx, eax
add eax, 0xb573842b
xor edx, eax
and edx, ecx
xor edx, eax
mov dword [esi + 0x10], edx
mov edx, dword [esi + 0x24]
mov eax, dword [esi + 0x10]
add al, 0xd3
mov ecx, dword [esi]
mov byte [edx + ecx], al
inc dword [esi]
mov eax, dword [esi]
cmp eax, 0x10
jb 0x40d4e0
mov eax, dword [0x4397f4]
mov dword [esi + 4], eax
mov eax, dword [esi + 0x48]
mov dword [eax], 0x738fc386
mov dword [eax + 4], 0
mov byte [eax + 8], 0
mov dword [esi], 0
mov ecx, dword [esi]
cmp ecx, 8
ja 0x40d572
nop
nop
nop
nop
mov ecx, dword [esi]
mov edx, dword [esi]
movzx edx, byte [eax + edx]
mov ebx, 0xf1
sub ebx, ecx
add ecx, 0x679dd50e
xor ebx, ecx
and ebx, edx
xor ebx, ecx
mov dword [esi + 0x10], ebx
mov ecx, dword [esi + 0x10]
add cl, 0x9e
mov edx, dword [esi]
mov byte [eax + edx], cl
inc dword [esi]
mov ecx, dword [esi]
cmp ecx, 9
jb 0x40d540
mov ecx, dword [str.bcmcEw__VisaSoftware]
mov eax, dword [esi + 0x20]
mov dword [eax], 0x4880b0b1
mov dword [eax + 4], 0xae9c9293
mov dword [eax + 8], 0x9699969d
mov dword [eax + 0xc], 0x5d9b98a5
mov dword [eax + 0x10], 0x38929e8c
mov dword [eax + 0x14], 0x25282b2e
mov dword [eax + 0x18], 0x30d8e2e2
mov byte [eax + 0x1c], 0x72
mov word [eax + 0x1d], 0
mov byte [eax + 0x1f], 0
mov dword [esi], 0
mov edx, dword [esi]
cmp edx, 0x1f
ja 0x40d607
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov edx, dword [esi]
mov ebx, dword [esi]
movzx ebx, byte [eax + ebx]
mov eax, 0xd2
sub eax, edx
add edx, 0x365b0a2d
xor eax, edx
and eax, ebx
xor eax, edx
mov dword [esi + 0x10], eax
mov eax, dword [esi + 0x10]
add al, 0xc5
mov edx, dword [esi]
mov ebx, dword [esi + 0x20]
mov byte [ebx + edx], al
inc dword [esi]
mov eax, dword [esi]
cmp eax, 0x20
mov eax, dword [esi + 0x20]
jb 0x40d5d0
movzx edx, byte [eax]
test dl, dl
je 0x40d62b
inc eax
lea edi, [esi + 0x138]
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 0x40d620
mov byte [edi], 0
movzx edx, byte [ecx]
test dl, dl
mov ebx, dword [esi + 0x30]
mov eax, dword [esi + 0x48]
je 0x40d64b
inc ecx
nop
nop
nop
nop
mov byte [edi], dl
inc edi
movzx edx, byte [ecx]
inc ecx
test dl, dl
jne 0x40d640
mov byte [edi], 0
movzx ecx, byte [eax]
test cl, cl
je 0x40d66d
inc eax
mov edx, dword [esi + 0x24]
nop
nop
nop
nop
nop
nop
nop
mov byte [edi], cl
inc edi
movzx ecx, byte [eax]
inc eax
test cl, cl
jne 0x40d660
jmp 0x40d670
mov edx, dword [esi + 0x24]
mov byte [edi], 0
mov eax, dword [esi + 4]
movzx ecx, byte [eax]
test cl, cl
je 0x40d68b
inc eax
nop
nop
mov byte [edi], cl
inc edi
movzx ecx, byte [eax]
inc eax
test cl, cl
jne 0x40d680
mov byte [edi], 0
movzx eax, byte [edx]
test al, al
je 0x40d6ab
inc edx
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 0x40d6a0
mov byte [edi], 0
movzx eax, byte [esi + 0x42f]
test al, al
je 0x40d6cb
lea ecx, [esi + 0x430]
nop
mov byte [edi], al
inc edi
movzx eax, byte [ecx]
inc ecx
test al, al
jne 0x40d6c0
mov byte [edi], 0
mov dword [ebx], 0xc375c58b
mov dword [ebx + 4], 0xcf7cc170
mov dword [ebx + 8], 0xcb7ecd65
mov dword [ebx + 0xc], 0xd7bbc976
mov dword [ebx + 0x10], 0xd353d58a
mov dword [ebx + 0x14], 0xdf7bd162
mov dword [ebx + 0x18], 0xdbbcdd98
mov dword [ebx + 0x1c], 0x2768d975
mov dword [ebx + 0x20], 0x23902596
mov dword [ebx + 0x24], 0x2f8d2195
mov dword [ebx + 0x28], 0x2b902d81
mov dword [ebx + 0x2c], 0x3799299d
mov dword [ebx + 0x30], 0x33453584
mov dword [ebx + 0x34], 0x3f43318a
mov dword [ebx + 0x38], 0x3b853d87
mov dword [ebx + 0x3c], 0x74b3983
mov dword [ebx + 0x40], 0x3b505ac
mov dword [ebx + 0x44], 0xfb301bc
mov dword [ebx + 0x48], 0xbb70d7d
mov dword [ebx + 0x4c], 0x17bc09b4
mov dword [ebx + 0x50], 0x13a615bd
mov dword [ebx + 0x54], 0x1fa111bf
mov dword [ebx + 0x58], 0x1bb71db2
mov dword [ebx + 0x5c], 0x670b19b6
mov dword [ebx + 0x60], 0x63646570
mov byte [ebx + 0x6c], 0
mov dword [ebx + 0x68], 0
mov dword [ebx + 0x64], 0
lea eax, [esi + 0x138]
mov dword [esi], 0
mov ecx, dword [esi]
cmp ecx, 0x6c
ja 0x40d7e5
nop
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 [ebx + edx]
mov ebx, 0x1e
sub ebx, ecx
add ecx, 0xa5084ae1
xor ebx, ecx
and ebx, edx
xor ebx, ecx
mov dword [esi + 0x10], ebx
mov ebx, dword [esi + 0x30]
mov ecx, dword [esi + 0x10]
add cl, 0xd9
mov edx, dword [esi]
mov byte [ebx + edx], cl
inc dword [esi]
mov ecx, dword [esi]
cmp ecx, 0x6d
jb 0x40d7b0
sub edi, eax
mov ebx, dword [esi + 0x50]
mov dword [ebx], 0x83e38ddf
mov dword [ebx + 4], 0x871f8110
mov word [ebx + 8], 0x8584
mov dword [ebx + 0xa], 0
mov dword [ebx + 0xe], 0
mov byte [ebx + 0x12], 0
mov dword [esi], 0
mov ecx, dword [esi]
cmp ecx, 0x12
ja 0x40d855
nop
nop
nop
nop
mov ecx, dword [esi]
mov edx, dword [esi]
movzx edx, byte [ebx + edx]
mov ebx, 0x69
sub ebx, ecx
add ecx, 0xf7c4196
xor ebx, ecx
and ebx, edx
xor ebx, ecx
mov dword [esi + 0x10], ebx
mov ebx, dword [esi + 0x50]
mov ecx, dword [esi + 0x10]
add cl, 0xe6
mov edx, dword [esi]
mov byte [ebx + edx], cl
inc dword [esi]
mov ecx, dword [esi]
cmp ecx, 0x13
jb 0x40d820
push dword [esi + 0x40]
mov ecx, ebx
mov ebx, dword [esi + 0x44]
push ebx
push edi
push eax
push dword [esi + 0x30]
push ecx
push 0x43dd4c
call fcn.0040ba60
add esp, 0x1c
movzx eax, al
jmp dword [eax*4 + 0x43a26c]
xor edi, edi
xor eax, eax
test edi, 0
setne al
mov ebx, dword [esi + 0x38]
jmp dword [eax*4 + 0x43a274]
mov eax, dword [esi + 0x40]
mov ecx, dword [eax]
mov edi, dword [ebx]
lea eax, [ecx + ecx*2]
shr eax, 2
movzx edx, byte [edi + ecx - 1]
cmp edx, 0x3d
mov ebx, dword [esi + 0x38]
je 0x40d8b1
cmp edx, 0x2e
jne 0x40d8b2
dec eax
movzx ecx, byte [edi + ecx - 2]
cmp ecx, 0x3d
mov dword [esi + 0x20], edi
je 0x40d8c4
cmp ecx, 0x2e
jne 0x40d8c5
dec eax
push eax
call fcn.00408a30
add esp, 4
mov edi, eax
push eax
push dword [esi + 0x20]
call fcn.0042e230
add esp, 8
mov eax, dword [esi + 0x44]
push dword [eax]
call fcn.00430e10
add esp, 4
xor eax, eax
test edi, edi
setne al
jmp dword [eax*4 + 0x43a274]
jmp dword [0x43a27c]
push edi
call fcn.00401e00
add esp, 4
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
push edi
call fcn.00401e00
add esp, 4
jmp dword [0x43a288]
jmp dword [0x43a28c]
push edi
mov edi, eax
call fcn.00408a40
mov eax, edi
add esp, 4
mov edi, eax
push eax
call fcn.00411180
add esp, 4
push edi
call fcn.00402990
add esp, 4
mov edi, dword [esi + 0x60]
mov dword [edi], 0xba1a3a0
mov dword [edi + 4], 0
mov dword [edi + 7], 0
mov dword [esi], 0
mov eax, dword [esi]
cmp eax, 0xa
ja 0x40d9a0
nop
nop
nop
nop
nop
nop
mov eax, dword [esi]
mov ecx, dword [esi]
movzx ecx, byte [edi + ecx]
mov edx, 0x55
sub edx, eax
add eax, 0x220060aa
xor edx, eax
and edx, ecx
xor edx, eax
mov dword [esi + 0x10], edx
mov eax, dword [esi + 0x10]
add al, 0x5a
mov ecx, dword [esi]
mov byte [edi + ecx], al
inc dword [esi]
mov eax, dword [esi]
cmp eax, 0xb
jb 0x40d970
push edi
push dword [esi + 0x5c]
call fcn.00402780
add esp, 8
xor ecx, ecx
test eax, eax
setg cl
jmp dword [ecx*4 + 0x43a294]
xor eax, eax
cmp dword [esi + 0x34], 0
setg al
jmp dword [eax*4 + 0x43a29c]
mov ecx, dword [esi + 0x3c]
push 1
call fcn.00409370
xor eax, eax
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp byte [eax + 0x43e054], 0
lea eax, [eax + 1]
jne 0x40d9e0
lea edx, [eax + 0x43e053]
lea ecx, [eax + 0x43e054]
neg ecx
mov eax, 0x43e054
and ecx, eax
not eax
and eax, edx
mov dword [ebx], 0xe6f4f0d0
mov dword [ebx + 4], 0xefeabbf3
mov word [ebx + 8], 0x65e8
mov dword [ebx + 0xa], 0
mov dword [ebx + 0xe], 0
mov byte [ebx + 0x12], 0
sub eax, ecx
mov dword [esi], 0
mov ecx, dword [esi]
cmp ecx, 0x12
ja 0x40da72
nop
nop
nop
nop
nop
nop
nop
mov ecx, dword [esi]
mov edx, dword [esi]
movzx edx, byte [ebx + edx]
mov edi, 0xed
sub edi, ecx
add ecx, 0x4afdcb12
xor edi, ecx
and edi, edx
xor edi, ecx
mov dword [esi + 0x10], edi
mov ecx, dword [esi + 0x10]
add cl, 0x82
mov edx, dword [esi]
mov byte [ebx + edx], cl
inc dword [esi]
mov ecx, dword [esi]
cmp ecx, 0x13
jb 0x40da40
mov edi, dword [esi + 0x3c]
mov ecx, edi
push eax
push 0x43e054
push ebx
call fcn.00409560
mov ecx, edi
call fcn.00409d20
mov ecx, edi
call fcn.004093b0
xor eax, eax
cmp dword [esi + 0x34], 0
setg al
jmp dword [eax*4 + 0x43a29c]
push 0
call fcn.00433d40
add esp, 4
mov edi, eax
xor eax, eax
test edi, edi
setne al
jmp dword [eax*4 + 0x43a2a4]
jmp dword [0x43a2c8]
mov edi, dword [esi + 4]
jmp dword [0x43a258]
push edi
call fcn.00402990
add esp, 4
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
push edi
call fcn.00402990
add esp, 4
xor eax, eax
jmp dword [0x43a260]
mov ebx, dword [esi + 0x2c]
jmp dword [0x43a2b0]
mov edx, dword [esi + 8]
mov dword [edx], 0xb7f0d73
mov dword [edx + 4], 0x7340974
mov dword [edx + 8], 0x38a0579
mov dword [edx + 0xc], 0x1f3e017d
mov dword [edx + 0x10], 0x1b951d22
mov dword [edx + 0x14], 0x17771994
mov dword [edx + 0x18], 0x139e159a
mov dword [edx + 0x1c], 0x2f1d1130
mov dword [edx + 0x20], 0x2b532d59
mov dword [edx + 0x24], 0x2706295a
mov dword [edx + 0x28], 0x2357255b
mov dword [edx + 0x2c], 0x3f0c215c
mov dword [edx + 0x30], 0x3bb23d41
mov dword [edx + 0x34], 0x37163945
mov dword [edx + 0x38], 0x3301350a
mov dword [edx + 0x3c], 0x4f6e314f
mov dword [edx + 0x40], 0x4b334dc0
mov dword [edx + 0x44], 0x473b493d
mov dword [edx + 0x48], 0x43cf4537
mov dword [edx + 0x4c], 0x5f7e41cc
mov dword [edx + 0x50], 0x5bd65d6f
mov dword [edx + 0x54], 0x57195978
mov dword [edx + 0x58], 0x53615574
mov dword [edx + 0x5c], 0x6f1d5122
mov dword [edx + 0x60], 0x6be46d12
mov dword [edx + 0x64], 0x67076915
mov dword [edx + 0x68], 0x63426513
mov dword [edx + 0x6c], 0x7f5e615a
mov dword [edx + 0x70], 0x7b077d00
mov dword [edx + 0x74], 0x7756790c
mov dword [edx + 0x78], 0x7372754a
mov dword [edx + 0x80], 0
mov dword [edx + 0x7c], 0
mov dword [esi], 0
mov eax, dword [esi]
cmp eax, 0x83
ja 0x40dc35
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, 0x7d
sub edx, eax
add eax, 0x9dbd2982
xor edx, eax
and edx, ecx
xor edx, eax
mov dword [esi + 0x10], edx
mov edx, dword [esi + 8]
mov eax, dword [esi + 0x10]
add al, 0x72
mov ecx, dword [esi]
mov byte [edx + ecx], al
inc dword [esi]
mov eax, dword [esi]
cmp eax, 0x84
jb 0x40dc00
movzx ecx, word [edx]
mov eax, ebx
test cx, cx
je 0x40dc61
mov eax, dword [esi + 8]
lea edx, [eax + 2]
mov eax, ebx
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 0x40dc50
mov word [eax], 0
movzx ecx, word [edi]
test cx, cx
je 0x40dc91
lea edx, [edi + 2]
nop
nop
nop
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 0x40dc80
mov dword [eax], 0x220022
mov dword [eax + 4], 0x22
mov ebx, dword [esi + 0x4c]
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 [0x43f054]
call fcn.00433e40
add esp, 8
push dword [esi + 0x28]
push ebx
push 0
push 0
push 0x8000000
push 0
push 0
push 0
mov ebx, dword [esi + 0x2c]
push ebx
push 0
call eax
jmp case.0x40da9a.5
mov dword [eax], 0x220022
mov dword [eax + 4], 0x22
mov ebx, dword [esi + 0x4c]
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 [0x43f054]
call fcn.00433e40
add esp, 8
push dword [esi + 0x28]
push ebx
push 0
push 0
push 0x8000000
push 0
push 0
push 0
mov ebx, dword [esi + 0x2c]
push ebx
push 0
call eax
jmp dword [0x43a2b4]
mov edx, dword [esi + 8]
mov dword [edx], 0xb7f0d73
mov dword [edx + 4], 0x7340974
mov dword [edx + 8], 0x38a0579
mov dword [edx + 0xc], 0x1f3e017d
mov dword [edx + 0x10], 0x1b951d22
mov dword [edx + 0x14], 0x17771994
mov dword [edx + 0x18], 0x139e159a
mov dword [edx + 0x1c], 0x2f1d1130
mov dword [edx + 0x20], 0x2b532d59
mov dword [edx + 0x24], 0x2706295a
mov dword [edx + 0x28], 0x2357255b
mov dword [edx + 0x2c], 0x3f0c215c
mov dword [edx + 0x30], 0x3bb23d41
mov dword [edx + 0x34], 0x37163945
mov dword [edx + 0x38], 0x3301350a
mov dword [edx + 0x3c], 0x4f6e314f
mov dword [edx + 0x40], 0x4b334dc0
mov dword [edx + 0x44], 0x473b493d
mov dword [edx + 0x48], 0x43cf4537
mov dword [edx + 0x4c], 0x5f7e41cc
mov dword [edx + 0x50], 0x5bd65d6f
mov dword [edx + 0x54], 0x57195978
mov dword [edx + 0x58], 0x53615574
mov dword [edx + 0x5c], 0x6f1d5122
mov dword [edx + 0x60], 0x6be46d12
mov dword [edx + 0x64], 0x67076915
mov dword [edx + 0x68], 0x63426513
mov dword [edx + 0x6c], 0x7f5e615a
mov dword [edx + 0x70], 0x7b077d00
mov dword [edx + 0x74], 0x7756790c
mov dword [edx + 0x78], 0x7372754a
mov dword [edx + 0x80], 0
mov dword [edx + 0x7c], 0
mov dword [esi], 0
mov eax, dword [esi]
cmp eax, 0x83
ja 0x40df48
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esi]
mov ecx, dword [esi]
mov edx, dword [esi + 8]
movzx edx, byte [edx + ecx]
mov ecx, 0x7d
sub ecx, eax
add eax, 0x9dbd2982
xor ecx, eax
and ecx, edx
mov edx, dword [esi + 8]
xor ecx, eax
mov dword [esi + 0x10], ecx
mov eax, dword [esi + 0x10]
add al, 0x72
mov ecx, dword [esi]
mov byte [edx + ecx], al
inc dword [esi]
mov eax, dword [esi]
cmp eax, 0x84
jb 0x40df10
movzx ecx, word [edx]
mov eax, ebx
test cx, cx
je 0x40df71
mov eax, dword [esi + 8]
lea edx, [eax + 2]
mov eax, ebx
nop
nop
nop
nop
nop
nop
mov word [eax], cx
add eax, 2
movzx ecx, word [edx]
add edx, 2
test cx, cx
jne 0x40df60
mov word [eax], 0
movzx ecx, word [edi]
test cx, cx
je 0x40dd50
lea edx, [edi + 2]
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 0x40df90
jmp 0x40dd50
xor ecx, ecx
test eax, eax
setne cl
jmp dword [ecx*4 + 0x43a2bc]
mov eax, dword [esi + 0x28]
mov eax, dword [eax]
mov dword [esi + 0x10], 0x32353437
mov dword [esi + 0x18], 0
mov dword [esi + 0x14], 0
mov dword [esi + 0xc], 0
mov ecx, dword [esi + 0xc]
cmp ecx, 0xb
ja 0x40e017
nop
nop
nop
mov ecx, dword [esi + 0xc]
mov edx, dword [esi + 0xc]
movzx edx, byte [esi + edx + 0x10]
mov edi, 0xd6
sub edi, ecx
add ecx, 0xb00b8b29
xor edi, ecx
and edi, edx
xor edi, ecx
mov dword [esi], edi
mov ecx, dword [esi]
add cl, 0xe1
mov edx, dword [esi + 0xc]
mov byte [esi + edx + 0x10], cl
inc dword [esi + 0xc]
mov ecx, dword [esi + 0xc]
cmp ecx, 0xc
jb 0x40dfe0
mov ecx, dword [0x43f060]
test ecx, ecx
je case.0x40da9a.8
mov edx, dword [esi + 0x10]
xor edi, edi
mov ebx, dword [0x43f064]
nop
nop
nop
nop
cmp dword [ebx + edi*8], 0xa3c1f363
je 0x40e040
inc edi
cmp ecx, edi
jne 0x40e030
jmp case.0x40da9a.8
mov ecx, dword [ebx + edi*8 + 4]
cmp ecx, edx
jne 0x40e0ef
jmp dword [0x43a2c8]
lea ecx, [esi + 0x450]
call fcn.004093b0
lea ecx, [esi + 0x4b8]
call fcn.004093b0
lea ecx, [esi + 0x520]
call fcn.004093b0
lea ecx, [esi + 0x3c0]
call fcn.004093b0
lea ecx, [esi + 0x68]
call fcn.004093b0
lea ecx, [esi + 0xd0]
call fcn.004093b0
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
lea ecx, [esi + 0x450]
call fcn.004093b0
lea ecx, [esi + 0x4b8]
call fcn.004093b0
lea ecx, [esi + 0x520]
call fcn.004093b0
lea ecx, [esi + 0x3c0]
call fcn.004093b0
lea ecx, [esi + 0x68]
call fcn.004093b0
lea ecx, [esi + 0xd0]
call fcn.004093b0
mov al, 1
jmp dword [0x43a2d0]
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
push eax
push 1
push dword [0x43f068]
push ecx
call fcn.00432610
add esp, 0x10
jmp dword [0x43a2c8]
push ebx
call fcn.00402950
add esp, 4
xor ecx, ecx
cmp esi, eax
setb cl
mov al, 1
jmp dword [ecx*4 + 0x43a2dc]
mov eax, esi
lea esi, [esp + 0xb2]
lea edi, [esp + 0xa2]
mov dword [esp + 0x154], eax
push eax
push ebx
call fcn.00402960
add esp, 8
mov ebx, eax
mov word [esp + 0x38], 0x59c4
mov dword [esp + 0x3e], 0
mov dword [esp + 0x3a], 0
mov dword [esp], 0
mov eax, dword [esp]
cmp eax, 9
ja 0x40e26f
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 + 0x38]
mov edx, 0xb3
sub edx, eax
add eax, 0x8c90864c
xor edx, eax
and edx, ecx
xor edx, eax
mov dword [esp + 0xe8], edx
mov eax, dword [esp + 0xe8]
add al, 0xec
mov ecx, dword [esp]
mov byte [esp + ecx + 0x38], al
inc dword [esp]
mov eax, dword [esp]
cmp eax, 0xa
jb 0x40e230
push 3
lea eax, [esp + 0x3c]
push eax
push ebx
call fcn.004028e0
add esp, 0xc
xor ecx, ecx
test eax, eax
sete cl
jmp dword [ecx*4 + 0x43a2e4]
mov word [esp + 0x38], 0x8d00
lea eax, [esp + 0x3a]
mov dword [eax + 8], 0
mov dword [eax + 4], 0
mov dword [eax], 0
mov dword [esp], 0
mov eax, dword [esp]
cmp eax, 0xd
ja 0x40e2ff
nop
nop
nop
nop
nop
mov eax, dword [esp]
mov ecx, dword [esp]
movzx ecx, byte [esp + ecx + 0x38]
mov edx, 0x3d
sub edx, eax
add eax, 0xa70f7dc2
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 + 0x38], al
inc dword [esp]
mov eax, dword [esp]
cmp eax, 0xe
jb 0x40e2c0
lea eax, [esp + 0x38]
push eax
push ebx
call fcn.004026b0
add esp, 8
fnstcw word [esp + 0xce]
movzx eax, word [esp + 0xce]
or eax, 0xc00
mov word [esp + 0x14e], ax
fldcw word [esp + 0x14e]
fistp dword [esp + 0x168]
fldcw word [esp + 0xce]
mov eax, dword [esp + 0x168]
xor ecx, ecx
cmp eax, 2
setl cl
jmp dword [ecx*4 + 0x43a2ec]
xor ecx, ecx
cmp eax, 3
setl cl
jmp dword [ecx*4 + 0x43a2f4]
sete al
movzx eax, al
jmp dword [eax*4 + 0x43a2fc]
mov word [esp + 0x38], 0xc56f
lea eax, [esp + 0x3a]
mov dword [eax + 3], 0
mov dword [eax], 0
mov dword [esp], 0
mov eax, dword [esp]
cmp eax, 8
ja 0x40e3df
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp]
mov ecx, dword [esp]
movzx ecx, byte [esp + ecx + 0x38]
mov edx, 0xde
sub edx, eax
add eax, 0x6fb92421
xor edx, eax
and edx, ecx
xor edx, eax
mov dword [esp + 0xe8], edx
mov eax, dword [esp + 0xe8]
add al, 0x19
mov ecx, dword [esp]
mov byte [esp + ecx + 0x38], al
inc dword [esp]
mov eax, dword [esp]
cmp eax, 9
jb 0x40e3a0
push 2
lea eax, [esp + 0x3c]
push eax
push ebx
call fcn.004028e0
add esp, 0xc
xor ecx, ecx
test eax, eax
setne cl
jmp dword [ecx*4 + 0x43a38c]
mov word [esp + 0xe8], 0xad1c
lea eax, [esp + 0xea]
mov dword [eax + 7], 0
mov dword [eax + 4], 0
mov dword [eax], 0
mov dword [esp + 0x1c], 0
mov eax, dword [esp + 0x1c]
cmp eax, 0xc
ja 0x40e484
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x1c]
movzx ecx, byte [esp + ecx + 0xe8]
mov edx, 0xb9
sub edx, eax
add eax, 0x5c04df46
xor edx, eax
and edx, ecx
xor edx, eax
mov dword [esp + 0x18], edx
mov eax, dword [esp + 0x18]
add al, 0x16
mov ecx, dword [esp + 0x1c]
mov byte [esp + ecx + 0xe8], al
inc dword [esp + 0x1c]
mov eax, dword [esp + 0x1c]
cmp eax, 0xd
jb 0x40e440
lea eax, [esp + 0xe8]
push 2
push eax
push ebx
call fcn.004028e0
add esp, 0xc
xor ecx, ecx
test eax, eax
setne cl
jmp dword [ecx*4 + 0x43a394]
mov word [esp], 0xf919
lea eax, [esp + 1]
mov byte [eax + 9], 0
mov dword [eax + 5], 0
mov dword [eax + 1], 0
mov dword [esp + 0x1c], 0
mov eax, dword [esp + 0x1c]
cmp eax, 0xa
ja 0x40e51c
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x1c]
movzx ecx, byte [esp + ecx]
mov edx, 0xc0
sub edx, eax
add eax, 0xa808403f
xor edx, eax
and edx, ecx
xor edx, eax
mov dword [esp + 0x18], edx
mov eax, dword [esp + 0x18]
add al, 0x47
mov ecx, dword [esp + 0x1c]
mov byte [esp + ecx], al
inc dword [esp + 0x1c]
mov eax, dword [esp + 0x1c]
cmp eax, 0xb
jb 0x40e4e0
mov eax, esp
push 5
push eax
push ebx
call fcn.004028e0
add esp, 0xc
xor ecx, ecx
test eax, eax
setne cl
jmp dword [ecx*4 + 0x43a39c]
mov word [esp + 0xa0], 0x8d0a
mov byte [edi + 8], 0
mov dword [edi + 4], 0
mov dword [edi], 0
mov dword [esp + 0x1c], 0
mov eax, dword [esp + 0x1c]
cmp eax, 0xa
ja 0x40e5b4
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x1c]
movzx ecx, byte [esp + ecx + 0xa0]
mov edx, 0x95
sub edx, eax
add eax, 0xed0c506a
xor edx, eax
and edx, ecx
xor edx, eax
mov dword [esp + 0x18], edx
mov eax, dword [esp + 0x18]
add al, 0x1a
mov ecx, dword [esp + 0x1c]
mov byte [esp + ecx + 0xa0], al
inc dword [esp + 0x1c]
mov eax, dword [esp + 0x1c]
cmp eax, 0xb
jb 0x40e570
lea eax, [esp + 0xa0]
push 2
push eax
push ebx
call fcn.004028e0
add esp, 0xc
xor ecx, ecx
test eax, eax
setne cl
jmp dword [ecx*4 + 0x43a3a4]
mov word [esp + 0xb0], 0x658a
mov dword [esi + 3], 0
mov dword [esi], 0
mov dword [esp + 0x1c], 0
mov eax, dword [esp + 0x1c]
cmp eax, 8
ja 0x40e644
nop
nop
nop
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x1c]
movzx ecx, byte [esp + ecx + 0xb0]
mov edx, 0xce
sub edx, eax
add eax, 0x6bad2531
xor edx, eax
and edx, ecx
xor edx, eax
mov dword [esp + 0x18], edx
mov eax, dword [esp + 0x18]
add al, 0xa9
mov ecx, dword [esp + 0x1c]
mov byte [esp + ecx + 0xb0], al
inc dword [esp + 0x1c]
mov eax, dword [esp + 0x1c]
cmp eax, 9
jb 0x40e600
lea eax, [esp + 0xb0]
push 3
push eax
push ebx
call fcn.004028e0
add esp, 0xc
xor ecx, ecx
test eax, eax
setne cl
jmp dword [ecx*4 + 0x43a3ac]
jmp case.0x40e936.1
xor ecx, ecx
test eax, eax
setle cl
jmp dword [ecx*4 + 0x43a304]
mov word [esp + 0x38], 0xad1c
lea eax, [esp + 0x3a]
mov dword [eax + 7], 0
mov dword [eax + 4], 0
mov dword [eax], 0
mov dword [esp], 0
mov eax, dword [esp]
cmp eax, 0xc
ja 0x40e6ef
nop
nop
nop
nop
mov eax, dword [esp]
mov ecx, dword [esp]
movzx ecx, byte [esp + ecx + 0x38]
mov edx, 0x39
sub edx, eax
add eax, 0xd302afc6
xor edx, eax
and edx, ecx
xor edx, eax
mov dword [esp + 0xe8], edx
mov eax, dword [esp + 0xe8]
add al, 0x96
mov ecx, dword [esp]
mov byte [esp + ecx + 0x38], al
inc dword [esp]
mov eax, dword [esp]
cmp eax, 0xd
jb 0x40e6b0
lea eax, [esp + 0x38]
push eax
push ebx
call fcn.00402650
add esp, 8
mov esi, eax
mov word [esp + 0x38], 0x61fa
lea eax, [esp + 0x3a]
mov word [eax + 4], 0
mov dword [eax], 0
mov dword [esp], 0
mov eax, dword [esp]
cmp eax, 7
ja 0x40e76f
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp]
mov ecx, dword [esp]
movzx ecx, byte [esp + ecx + 0x38]
mov edx, 0xef
sub edx, eax
add eax, 0xbf164c10
xor edx, eax
and edx, ecx
xor edx, eax
mov dword [esp + 0xe8], edx
mov eax, dword [esp + 0xe8]
add al, 0x90
mov ecx, dword [esp]
mov byte [esp + ecx + 0x38], al
inc dword [esp]
mov eax, dword [esp]
cmp eax, 8
jb 0x40e730
lea eax, [esp + 0x38]
push eax
push ebx
call fcn.00402650
add esp, 8
test esi, esi
sete dl
test eax, eax
sete cl
or cl, dl
movzx ecx, cl
jmp dword [ecx*4 + 0x43a46c]
mov dword [esp + 0x14], eax
mov dword [esp + 0x20], eax
mov ecx, esi
nop
nop
nop
mov eax, ecx
inc ecx
cmp byte [eax], 0
jne 0x40e7a0
mov ecx, eax
not ecx
and ecx, esi
mov edx, esi
not edx
and edx, eax
sub edx, ecx
mov eax, esi
add eax, edx
mov dword [esp + 0x10], eax
xor ebx, ebx
mov dword [esp + 0x24], edx
test edx, edx
jle 0x40ecb0
mov dword [esp + 0x2c], esi
cmp byte [esi], 0
je 0x40ecb4
xor ebx, ebx
mov edi, dword [esp + 0x2c]
nop
mov dword [esp + 0x38], 0
lea eax, [esp + 0x38]
push eax
mov esi, dword [esp + 0x14]
push esi
push edi
call fcn.0040cb00
add esp, 0xc
lea ecx, [edi + eax]
inc ebx
cmp ecx, esi
jae 0x40ecb4
cmp byte [edi + eax], 0
mov edi, ecx
jne 0x40e7e0
jmp 0x40ecb4
mov word [esp + 0x38], 0x1186
lea eax, [esp + 0x3a]
mov word [eax + 0xc], 0
mov dword [eax + 8], 0
mov dword [eax + 4], 0
mov dword [eax], 0
mov dword [esp], 0
mov eax, dword [esp]
cmp eax, 0xf
ja 0x40e88f
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp]
mov ecx, dword [esp]
movzx ecx, byte [esp + ecx + 0x38]
mov edx, 0xfc
sub edx, eax
add eax, 0xb5f10c03
xor edx, eax
and edx, ecx
xor edx, eax
mov dword [esp + 0xe8], edx
mov eax, dword [esp + 0xe8]
add al, 0xeb
mov ecx, dword [esp]
mov byte [esp + ecx + 0x38], al
inc dword [esp]
mov eax, dword [esp]
cmp eax, 0x10
jb 0x40e850
lea eax, [esp + 0x38]
push eax
push ebx
call fcn.00402650
add esp, 8
mov dword [esp + 0x28], eax
mov word [esp + 0x38], 0x8d02
lea eax, [esp + 0x3a]
mov dword [eax + 7], 0
mov dword [eax + 4], 0
mov dword [eax], 0
mov dword [esp], 0
mov eax, dword [esp]
cmp eax, 0xc
ja 0x40e90f
nop
mov eax, dword [esp]
mov ecx, dword [esp]
movzx ecx, byte [esp + ecx + 0x38]
mov edx, 0xe9
sub edx, eax
add eax, 0x4d54ce16
xor edx, eax
and edx, ecx
xor edx, eax
mov dword [esp + 0xe8], edx
mov eax, dword [esp + 0xe8]
add al, 0x66
mov ecx, dword [esp]
mov byte [esp + ecx + 0x38], al
inc dword [esp]
mov eax, dword [esp]
cmp eax, 0xd
jb 0x40e8d0
lea eax, [esp + 0x38]
push eax
push ebx
call fcn.00402650
add esp, 8
mov esi, eax
test eax, eax
sete al
mov edx, dword [esp + 0x28]
test edx, edx
sete cl
or cl, al
movzx eax, cl
mov dword [esp + 0x10], esi
jmp dword [eax*4 + 0x43a4f4]
mov ecx, edx
nop
mov eax, ecx
inc ecx
cmp byte [eax], 0
jne 0x40e940
mov ecx, eax
not ecx
and ecx, edx
mov ebx, edx
not ebx
and ebx, eax
sub ebx, ecx
mov eax, edx
add eax, ebx
mov dword [esp + 0x14], eax
xor edi, edi
mov dword [esp + 0x30], ebx
test ebx, ebx
jle 0x40e9ab
cmp byte [edx], 0
mov edx, dword [esp + 0x14]
je 0x40e9ab
xor edi, edi
mov ebx, dword [esp + 0x28]
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov dword [esp + 0x38], 0
lea eax, [esp + 0x38]
push eax
push edx
push ebx
call fcn.0040cb00
mov edx, dword [esp + 0x20]
add esp, 0xc
lea ecx, [ebx + eax]
inc edi
cmp ecx, edx
jae 0x40e9ab
cmp byte [ebx + eax], 0
mov ebx, ecx
jne 0x40e980
mov eax, edi
inc eax
lea eax, [edi + edi + 2]
jns 0x40e9b9
mov eax, 0xffffffff
push eax
call fcn.00408a30
add esp, 4
mov dword [esp + 0x38], 0
lea ecx, [eax + edi*2]
mov edi, eax
mov dword [esp + 0x24], eax
mov dword [esp + 0x20], ecx
cmp eax, ecx
mov ebx, dword [esp + 0x28]
mov ecx, dword [esp + 0x14]
jae 0x40ed50
mov edi, dword [esp + 0x24]
cmp dword [esp + 0x30], 0
jle 0x40ed50
mov edi, dword [esp + 0x24]
nop
nop
nop
nop
nop
nop
cmp byte [ebx], 0
je 0x40ed50
lea eax, [esp + 0x38]
push eax
push ecx
push ebx
mov esi, ecx
call fcn.0040cb00
add esp, 0xc
movzx ecx, word [esp + 0x38]
mov word [edi], cx
add edi, 2
cmp edi, dword [esp + 0x20]
jae 0x40ed4c
add ebx, eax
cmp ebx, esi
mov ecx, esi
mov esi, dword [esp + 0x10]
jb 0x40ea00
jmp 0x40ed50
sete al
movzx eax, al
jmp dword [eax*4 + 0x43a30c]
mov word [esp + 0x38], 0x55c6
lea eax, [esp + 0x3a]
mov word [eax + 8], 0
mov dword [eax + 4], 0
mov dword [eax], 0
mov dword [esp], 0
mov eax, dword [esp]
cmp eax, 0xb
ja 0x40eabf
nop
nop
nop
nop
nop
nop
mov eax, dword [esp]
mov ecx, dword [esp]
movzx ecx, byte [esp + ecx + 0x38]
mov edx, 0x72
sub edx, eax
add eax, 0xe83da98d
xor edx, eax
and edx, ecx
xor edx, eax
mov dword [esp + 0xe8], edx
mov eax, dword [esp + 0xe8]
add al, 0x25
mov ecx, dword [esp]
mov byte [esp + ecx + 0x38], al
inc dword [esp]
mov eax, dword [esp]
cmp eax, 0xc
jb 0x40ea80
push 2
lea eax, [esp + 0x3c]
push eax
push ebx
call fcn.004028e0
add esp, 0xc
xor ecx, ecx
test eax, eax
setne cl
jmp dword [ecx*4 + 0x43a314]
mov word [esp + 0xe8], 0xf999
lea eax, [esp + 0xea]
mov dword [eax + 3], 0
mov dword [eax], 0
mov dword [esp + 0x18], 0
mov eax, dword [esp + 0x18]
cmp eax, 8
ja 0x40eb5a
nop
nop
nop
nop
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x18]
movzx ecx, byte [esp + ecx + 0xe8]
mov edx, 0x80
sub edx, eax
add eax, 0x6fb4c27f
xor edx, eax
and edx, ecx
xor edx, eax
mov dword [esp + 0xd0], edx
mov eax, dword [esp + 0xd0]
add al, 0x87
mov ecx, dword [esp + 0x18]
mov byte [esp + ecx + 0xe8], al
inc dword [esp + 0x18]
mov eax, dword [esp + 0x18]
cmp eax, 9
jb 0x40eb10
lea eax, [esp + 0xe8]
push 5
push eax
push ebx
call fcn.004028e0
add esp, 0xc
xor ecx, ecx
test eax, eax
setne cl
jmp dword [ecx*4 + 0x43a31c]
mov word [esp], 0x1598
lea eax, [esp + 1]
mov word [eax + 9], 0
mov dword [eax + 5], 0
mov dword [eax + 1], 0
mov dword [esp + 0x18], 0
mov eax, dword [esp + 0x18]
cmp eax, 0xb
ja 0x40ebf2
nop
nop
nop
nop
nop
nop
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x18]
movzx ecx, byte [esp + ecx]
mov edx, 0xd2
sub edx, eax
add eax, 0xe01f8b2d
xor edx, eax
and edx, ecx
xor edx, eax
mov dword [esp + 0xd0], edx
mov eax, dword [esp + 0xd0]
add al, 0xc5
mov ecx, dword [esp + 0x18]
mov byte [esp + ecx], al
inc dword [esp + 0x18]
mov eax, dword [esp + 0x18]
cmp eax, 0xc
jb 0x40ebb0
mov eax, esp
push 2
push eax
push ebx
call fcn.004028e0
add esp, 0xc
xor ecx, ecx
test eax, eax
setne cl
jmp dword [ecx*4 + 0x43a324]
mov word [esp + 0xa0], 0x8de8
mov dword [edi + 7], 0
mov dword [edi + 4], 0
mov dword [edi], 0
mov dword [esp + 0x18], 0
mov eax, dword [esp + 0x18]
cmp eax, 0xc
ja 0x40ec8a
nop
nop
nop
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x18]
movzx ecx, byte [esp + ecx + 0xa0]
mov edx, 0x69
sub edx, eax
add eax, 0xc252be96
xor edx, eax
and edx, ecx
xor edx, eax
mov dword [esp + 0xd0], edx
mov eax, dword [esp + 0xd0]
add al, 0xe6
mov ecx, dword [esp + 0x18]
mov byte [esp + ecx + 0xa0], al
inc dword [esp + 0x18]
mov eax, dword [esp + 0x18]
cmp eax, 0xd
jb 0x40ec40
lea eax, [esp + 0xa0]
push 3
push eax
push ebx
call fcn.004028e0
add esp, 0xc
xor ecx, ecx
test eax, eax
setne cl
jmp dword [ecx*4 + 0x43a32c]
jmp case.0x40e936.1
mov dword [esp + 0x2c], esi
mov eax, ebx
inc eax
lea eax, [ebx + ebx + 2]
jns 0x40ecc2
mov eax, 0xffffffff
push eax
call fcn.00408a30
add esp, 4
mov dword [esp + 0x38], 0
lea ecx, [eax + ebx*2]
mov ebx, eax
mov dword [esp + 0x30], eax
mov dword [esp + 0x28], ecx
cmp eax, ecx
mov ecx, dword [esp + 0x20]
mov edi, dword [esp + 0x10]
mov esi, dword [esp + 0x2c]
jae 0x40f30c
mov ebx, dword [esp + 0x30]
cmp dword [esp + 0x24], 0
jle 0x40f30c
mov ebx, dword [esp + 0x30]
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp byte [esi], 0
je 0x40f30c
lea eax, [esp + 0x38]
push eax
push edi
push esi
call fcn.0040cb00
add esp, 0xc
movzx ecx, word [esp + 0x38]
mov word [ebx], cx
add ebx, 2
cmp ebx, dword [esp + 0x28]
jae 0x40f308
add esi, eax
cmp esi, edi
mov ecx, dword [esp + 0x20]
jb 0x40ed10
jmp 0x40f30c
mov esi, dword [esp + 0x10]
mov word [edi], 0
xor eax, eax
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp byte [esi + eax], 0
lea eax, [eax + 1]
jne 0x40ed60
lea ecx, [esi + eax]
dec ecx
add eax, esi
neg eax
and eax, esi
mov ebx, esi
not ebx
and ebx, ecx
sub ebx, eax
mov eax, ebx
inc eax
lea eax, [ebx + ebx + 2]
jns 0x40ed89
mov eax, 0xffffffff
push eax
call fcn.00408a30
add esp, 4
mov dword [esp + 0x2c], eax
lea ecx, [eax + ebx*2]
add ecx, 2
test esi, esi
jne 0x40edbb
mov eax, 0xffffffff
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
lea ebx, [eax + 1]
cmp byte [eax + 1], 0
mov eax, ebx
jne 0x40edb0
mov dword [esp + 0x38], 0
add ecx, 0xfffffffe
mov eax, dword [esp + 0x2c]
mov edi, eax
mov dword [esp + 0x14], ecx
cmp eax, ecx
jae 0x40ee1b
mov edi, dword [esp + 0x2c]
test ebx, ebx
jle 0x40ee1b
mov eax, esi
add eax, ebx
mov ebx, eax
mov edi, dword [esp + 0x2c]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp byte [esi], 0
je 0x40ee1b
lea eax, [esp + 0x38]
push eax
push ebx
push esi
call fcn.0040cb00
add esp, 0xc
movzx ecx, word [esp + 0x38]
mov word [edi], cx
add edi, 2
cmp edi, dword [esp + 0x14]
jae 0x40ee1b
add esi, eax
cmp esi, ebx
jb 0x40edf0
mov word [edi], 0
mov word [esp + 0x38], 0xc1d9
mov byte [esp + 0x3a], 0x38
lea eax, [esp + 0x3a]
mov byte [eax + 9], 0
mov dword [eax + 5], 0
mov dword [eax + 1], 0
mov dword [esp], 0
mov eax, dword [esp]
cmp eax, 0xb
ja 0x40ee9f
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 + 0x38]
mov edx, 8
sub edx, eax
add eax, 0xc6ae32f7
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 + 0x38], al
inc dword [esp]
mov eax, dword [esp]
cmp eax, 0xc
jb 0x40ee60
lea eax, [esp + 0x38]
push eax
push dword [ebp + 8]
call fcn.00402720
add esp, 8
mov ebx, eax
xor eax, eax
test ebx, ebx
setne al
xor edi, edi
xor esi, esi
jmp dword [eax*4 + 0x43a4fc]
mov ebx, esi
lea esi, [esp + 0x38]
mov ecx, esi
push 3
call fcn.00409370
push ebx
push edi
push dword [esp + 0x34]
push dword [esp + 0x30]
push esi
call fcn.00415ec0
add esp, 0x14
mov ecx, esi
call fcn.00409d20
xor eax, eax
test edi, edi
sete al
jmp dword [eax*4 + 0x43a54c]
mov dword [esp + 0x30], ebx
jmp dword [0x43a504]
push ebx
call fcn.00402950
add esp, 4
jmp case.0x40eebc.2
push ecx
call fcn.00408a30
add esp, 4
mov esi, dword [esp + 0x10]
mov dword [eax], esi
jmp dword [0x43a50c]
push ebx
call fcn.00402950
add esp, 4
mov ecx, 0xc
mov dword [esp + 0x10], eax
mul ecx
seto dl
mov ecx, 0xffffffff
mov esi, 0xffffffff
add eax, 4
jb 0x40efbd
mov esi, eax
test dl, dl
jne 0x40ef80
mov ecx, esi
jmp 0x40ef80
mov edi, eax
add edi, 4
xor eax, eax
test esi, esi
sete al
jmp dword [eax*4 + 0x43a514]
mov edx, dword [case.0x40eebc.10]
lea eax, [esi + esi*2]
lea eax, [edi + eax*4]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov ecx, edi
jmp edx
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 + 0x43a52c]
xor ecx, ecx
xor eax, eax
cmp ecx, esi
setb al
mov dword [esp + 0x28], edi
jmp dword [eax*4 + 0x43a544]
mov ecx, dword [esp + 0x20]
mov word [ebx], 0
xor eax, eax
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp byte [ecx + eax], 0
lea eax, [eax + 1]
jne 0x40f320
mov edx, dword [esp + 0x14]
lea ecx, [edx + eax]
dec ecx
add eax, edx
neg eax
and eax, edx
mov esi, edx
not esi
and esi, ecx
sub esi, eax
add edx, esi
mov dword [esp + 0x14], edx
xor edi, edi
mov dword [esp + 0x28], esi
test esi, esi
jle 0x40f38b
mov eax, dword [esp + 0x20]
cmp byte [eax], 0
je 0x40f38b
xor edi, edi
mov ebx, dword [esp + 0x20]
nop
nop
mov dword [esp + 0x38], 0
lea eax, [esp + 0x38]
push eax
mov esi, dword [esp + 0x18]
push esi
push ebx
call fcn.0040cb00
add esp, 0xc
lea ecx, [ebx + eax]
inc edi
cmp ecx, esi
jae 0x40f38b
cmp byte [ebx + eax], 0
mov ebx, ecx
jne 0x40f360
mov eax, edi
inc eax
lea eax, [edi + edi + 2]
jns 0x40f399
mov eax, 0xffffffff
push eax
call fcn.00408a30
add esp, 4
mov dword [esp + 0x38], 0
lea ecx, [eax + edi*2]
mov edi, eax
mov dword [esp + 0x2c], eax
mov dword [esp + 0x10], ecx
cmp eax, ecx
mov ebx, dword [esp + 0x20]
jae 0x40f3ff
mov edi, dword [esp + 0x2c]
cmp dword [esp + 0x28], 0
jle 0x40f3ff
mov edi, dword [esp + 0x2c]
nop
nop
cmp byte [ebx], 0
je 0x40f3ff
lea eax, [esp + 0x38]
push eax
mov esi, dword [esp + 0x18]
push esi
push ebx
call fcn.0040cb00
add esp, 0xc
movzx ecx, word [esp + 0x38]
mov word [edi], cx
add edi, 2
cmp edi, dword [esp + 0x10]
jae 0x40f3ff
add ebx, eax
cmp ebx, esi
jb 0x40f3d0
mov word [edi], 0
mov word [esp + 0x38], 0x9dad
mov byte [esp + 0x3a], 0x14
mov dword [esp + 0x3f], 0
mov dword [esp + 0x3b], 0
mov dword [esp], 0
mov eax, dword [esp]
cmp eax, 0xa
ja 0x40f46f
nop
mov eax, dword [esp]
mov ecx, dword [esp]
movzx ecx, byte [esp + ecx + 0x38]
mov edx, 0x82
sub edx, eax
add eax, 0xe786507d
xor edx, eax
and edx, ecx
xor edx, eax
mov dword [esp + 0xe8], edx
mov eax, dword [esp + 0xe8]
add al, 0x95
mov ecx, dword [esp]
mov byte [esp + ecx + 0x38], al
inc dword [esp]
mov eax, dword [esp]
cmp eax, 0xb
jb 0x40f430
lea eax, [esp + 0x38]
push eax
push dword [ebp + 8]
call fcn.00402720
add esp, 8
xor ecx, ecx
mov dword [esp + 0x20], eax
test eax, eax
setne cl
xor ebx, ebx
mov dword [esp + 0x10], 0
jmp dword [ecx*4 + 0x43a474]
lea esi, [esp + 0x38]
mov ecx, esi
push 2
call fcn.00409370
push ebx
mov ebx, dword [esp + 0x14]
push ebx
push dword [esp + 0x34]
push dword [esp + 0x3c]
push esi
call fcn.004137d0
add esp, 0x14
mov ecx, esi
call fcn.00409d20
movzx eax, al
jmp dword [eax*4 + 0x43a4b4]
push dword [esp + 0x20]
call fcn.00402950
add esp, 4
mov ebx, eax
mov ecx, 0xc
mul ecx
seto cl
mov esi, 0xffffffff
mov edx, 0xffffffff
add eax, 4
jb 0x40f528
mov edx, eax
test cl, cl
jne 0x40f52e
mov esi, edx
mov edi, dword [case.0x40f494.5]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
push esi
call fcn.00408a30
add esp, 4
mov dword [eax], ebx
jmp edi
add eax, 4
xor ecx, ecx
test ebx, ebx
sete cl
jmp dword [ecx*4 + 0x43a48c]
lea ecx, [ebx + ebx*2]
lea esi, [eax + ecx*4]
mov dword [eax], 0
mov dword [eax + 4], 0
mov byte [eax + 8], 0
lea ecx, [eax + 0xc]
xor edx, edx
cmp ecx, esi
sete dl
jmp dword [edx*4 + 0x43a494]
mov dword [ecx], 0
mov dword [ecx + 4], 0
mov byte [ecx + 8], 0
add ecx, 0xc
xor edx, edx
cmp ecx, esi
sete dl
jmp dword [edx*4 + 0x43a494]
mov dword [esp + 0x10], eax
mov eax, dword [0x43a4a8]
nop
nop
nop
nop
nop
jmp eax
mov eax, dword [case.0x40e286.1]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
jmp eax
mov esi, dword [esp + 0x154]
inc esi
mov eax, dword [case.0x40da9a.14]
mov ebx, dword [esp + 0x150]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
jmp eax
mov word [esp + 0xb0], 0xf80c
mov byte [esp + 0xb2], 0x64
mov byte [esi + 9], 0
mov dword [esi + 5], 0
mov dword [esi + 1], 0
mov dword [esp + 0x18], 0
mov eax, dword [esp + 0x18]
cmp eax, 0xb
ja 0x40fc2a
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x18]
movzx ecx, byte [esp + ecx + 0xb0]
mov edx, 0x8e
sub edx, eax
add eax, 0x14329a71
xor edx, eax
and edx, ecx
xor edx, eax
mov dword [esp + 0xd0], edx
mov eax, dword [esp + 0xd0]
add al, 0xe9
mov ecx, dword [esp + 0x18]
mov byte [esp + ecx + 0xb0], al
inc dword [esp + 0x18]
mov eax, dword [esp + 0x18]
cmp eax, 0xc
jb 0x40fbe0
lea eax, [esp + 0xb0]
push 3
push eax
push ebx
call fcn.004028e0
add esp, 0xc
xor ecx, ecx
test eax, eax
sete cl
jmp dword [ecx*4 + 0x43a334]
mov word [esp + 0x38], 0xb100
lea eax, [esp + 0x3a]
mov word [eax + 4], 0
mov dword [eax], 0
mov dword [esp], 0
mov eax, dword [esp]
cmp eax, 7
ja 0x40fcbf
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 + 0x38]
mov edx, 0x67
sub edx, eax
add eax, 0xaac3c498
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 + 0x38], al
inc dword [esp]
mov eax, dword [esp]
cmp eax, 8
jb 0x40fc80
lea eax, [esp + 0x38]
push eax
push ebx
call fcn.00402650
add esp, 8
mov dword [esp + 0x28], eax
mov word [esp + 0x38], 0x8d79
lea eax, [esp + 0x3a]
mov dword [eax + 3], 0
mov dword [eax], 0
mov dword [esp], 0
mov eax, dword [esp]
cmp eax, 8
ja 0x40fd3f
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp]
mov ecx, dword [esp]
movzx ecx, byte [esp + ecx + 0x38]
mov edx, 0x3d
sub edx, eax
add eax, 0x6bae1ac2
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 + 0x38], al
inc dword [esp]
mov eax, dword [esp]
cmp eax, 9
jb 0x40fd00
lea eax, [esp + 0x38]
push eax
push ebx
call fcn.00402720
add esp, 8
mov esi, eax
mov word [esp + 0x38], 0x61fa
lea eax, [esp + 0x3a]
mov word [eax + 4], 0
mov dword [eax], 0
mov dword [esp], 0
mov eax, dword [esp]
cmp eax, 7
ja 0x40fdbf
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp]
mov ecx, dword [esp]
movzx ecx, byte [esp + ecx + 0x38]
mov edx, 0xaf
sub edx, eax
add eax, 0xba121950
xor edx, eax
and edx, ecx
xor edx, eax
mov dword [esp + 0xe8], edx
mov eax, dword [esp + 0xe8]
add al, 0xd0
mov ecx, dword [esp]
mov byte [esp + ecx + 0x38], al
inc dword [esp]
mov eax, dword [esp]
cmp eax, 8
jb 0x40fd80
lea eax, [esp + 0x38]
push eax
push ebx
call fcn.00402650
add esp, 8
mov dword [esp + 0x34], eax
mov word [esp + 0x38], 0x917a
lea eax, [esp + 0x3a]
mov byte [eax + 8], 0
mov dword [eax + 4], 0
mov dword [eax], 0
mov dword [esp], 0
mov eax, dword [esp]
cmp eax, 0xa
ja 0x40fe3f
nop
nop
nop
nop
mov eax, dword [esp]
mov ecx, dword [esp]
movzx ecx, byte [esp + ecx + 0x38]
mov edx, 0x3c
sub edx, eax
add eax, 0x68cb70c3
xor edx, eax
and edx, ecx
xor edx, eax
mov dword [esp + 0xe8], edx
mov eax, dword [esp + 0xe8]
add al, 0xab
mov ecx, dword [esp]
mov byte [esp + ecx + 0x38], al
inc dword [esp]
mov eax, dword [esp]
cmp eax, 0xb
jb 0x40fe00
lea eax, [esp + 0x38]
push eax
push ebx
call fcn.004026b0
add esp, 8
mov word [esp + 0x38], 0xecf8
mov byte [esp + 0x3a], 0x90
lea eax, [esp + 0x3a]
mov word [eax + 5], 0
mov dword [eax + 1], 0
fnstcw word [esp + 0xc8]
movzx eax, word [esp + 0xc8]
or eax, 0xc00
mov word [esp + 0x148], ax
fldcw word [esp + 0x148]
fistp dword [esp + 0x164]
fldcw word [esp + 0xc8]
mov eax, dword [esp + 0x164]
mov dword [esp + 0x24], eax
mov dword [esp], 0
mov eax, dword [esp]
cmp eax, 8
ja 0x40feff
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp]
mov ecx, dword [esp]
movzx ecx, byte [esp + ecx + 0x38]
mov edx, 0x6c
sub edx, eax
add eax, 0x6baf0f93
xor edx, eax
and edx, ecx
xor edx, eax
mov dword [esp + 0xe8], edx
mov eax, dword [esp + 0xe8]
add al, 0xfb
mov ecx, dword [esp]
mov byte [esp + ecx + 0x38], al
inc dword [esp]
mov eax, dword [esp]
cmp eax, 9
jb 0x40fec0
lea eax, [esp + 0x38]
push eax
push ebx
call fcn.004026b0
add esp, 8
mov word [esp + 0x38], 0xf9f6
mov byte [esp + 0x3a], 0x6a
lea eax, [esp + 0x3a]
mov word [eax + 5], 0
mov dword [eax + 1], 0
fnstcw word [esp + 0xc6]
movzx eax, word [esp + 0xc6]
or eax, 0xc00
mov word [esp + 0x146], ax
fldcw word [esp + 0x146]
fistp dword [esp + 0x160]
fldcw word [esp + 0xc6]
mov eax, dword [esp + 0x160]
mov dword [esp + 0xe4], eax
mov dword [esp], 0
mov eax, dword [esp]
cmp eax, 8
ja 0x40ffbf
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp]
mov ecx, dword [esp]
movzx ecx, byte [esp + ecx + 0x38]
mov edx, 0x2d
sub edx, eax
add eax, 0x6fba1bd2
xor edx, eax
and edx, ecx
xor edx, eax
mov dword [esp + 0xe8], edx
mov eax, dword [esp + 0xe8]
add al, 0x42
mov ecx, dword [esp]
mov byte [esp + ecx + 0x38], al
inc dword [esp]
mov eax, dword [esp]
cmp eax, 9
jb 0x40ff80
lea eax, [esp + 0x38]
push eax
push ebx
call fcn.00402780
add esp, 8
mov dword [esp + 0xc0], eax
xor eax, eax
mov edx, dword [esp + 0x28]
nop
nop
nop
nop
nop
nop
cmp byte [edx + eax], 0
lea eax, [eax + 1]
jne 0x40ffe0
mov dword [esp + 0x30], esi
lea ecx, [edx + eax]
dec ecx
add eax, edx
neg eax
and eax, edx
mov esi, edx
not esi
and esi, ecx
sub esi, eax
mov edi, edx
add edi, esi
xor ebx, ebx
mov dword [esp + 0x2c], esi
test esi, esi
jle 0x410047
cmp byte [edx], 0
je 0x410047
xor ebx, ebx
mov esi, dword [esp + 0x28]
nop
nop
nop
nop
nop
nop
nop
nop
mov dword [esp + 0x38], 0
lea eax, [esp + 0x38]
push eax
push edi
push esi
call fcn.0040cb00
add esp, 0xc
lea ecx, [esi + eax]
inc ebx
cmp ecx, edi
jae 0x410047
cmp byte [esi + eax], 0
mov esi, ecx
jne 0x410020
mov eax, ebx
inc eax
lea eax, [ebx + ebx + 2]
jns 0x410055
mov eax, 0xffffffff
push eax
call fcn.00408a30
add esp, 4
mov dword [esp + 0x38], 0
lea ecx, [eax + ebx*2]
mov esi, eax
mov dword [esp + 0x20], eax
mov dword [esp + 0x14], ecx
cmp eax, ecx
mov ecx, dword [esp + 0x28]
jae 0x4106fa
mov esi, dword [esp + 0x20]
cmp dword [esp + 0x2c], 0
jle 0x4106fa
mov esi, dword [esp + 0x20]
mov dword [esp + 0x10], ebx
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp byte [ecx], 0
je 0x4106fa
lea eax, [esp + 0x38]
push eax
push edi
push ecx
mov ebx, edi
mov edi, ecx
call fcn.0040cb00
add esp, 0xc
movzx ecx, word [esp + 0x38]
mov word [esi], cx
add esi, 2
cmp esi, dword [esp + 0x14]
jae 0x4106f6
add edi, eax
cmp edi, ebx
mov ecx, edi
mov edi, ebx
mov ebx, dword [esp + 0x10]
jb 0x4100a0
jmp 0x4106fa
mov word [esp + 0xd0], 0x786c
mov byte [esp + 0xd2], 0x84
mov dword [esp + 0xd7], 0
mov dword [esp + 0xd3], 0
mov dword [esp + 0x1c], 0
mov eax, dword [esp + 0x1c]
cmp eax, 0xa
ja 0x410164
nop
nop
nop
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x1c]
movzx ecx, byte [esp + ecx + 0xd0]
mov edx, 0x3e
sub edx, eax
add eax, 0x624170c1
xor edx, eax
and edx, ecx
xor edx, eax
mov dword [esp + 0x18], edx
mov eax, dword [esp + 0x18]
add al, 0xb9
mov ecx, dword [esp + 0x1c]
mov byte [esp + ecx + 0xd0], al
inc dword [esp + 0x1c]
mov eax, dword [esp + 0x1c]
cmp eax, 0xb
jb 0x410120
lea eax, [esp + 0xd0]
push 3
push eax
push ebx
call fcn.004028e0
add esp, 0xc
xor ecx, ecx
test eax, eax
sete cl
jmp dword [ecx*4 + 0x43a3b4]
mov word [esp + 0x38], 0x51ff
lea eax, [esp + 0x3a]
mov dword [eax + 3], 0
mov dword [eax], 0
mov dword [esp], 0
mov eax, dword [esp]
cmp eax, 8
ja 0x4101ef
nop
nop
nop
nop
mov eax, dword [esp]
mov ecx, dword [esp]
movzx ecx, byte [esp + ecx + 0x38]
mov edx, 0x4c
sub edx, eax
add eax, 0x63870db3
xor edx, eax
and edx, ecx
xor edx, eax
mov dword [esp + 0xe8], edx
mov eax, dword [esp + 0xe8]
add al, 0x1b
mov ecx, dword [esp]
mov byte [esp + ecx + 0x38], al
inc dword [esp]
mov eax, dword [esp]
cmp eax, 9
jb 0x4101b0
lea eax, [esp + 0x38]
push eax
push ebx
call fcn.00402650
add esp, 8
mov dword [esp + 0x20], eax
mov word [esp + 0x38], 0x8136
lea eax, [esp + 0x3a]
mov byte [eax + 8], 0
mov dword [eax + 4], 0
mov dword [eax], 0
mov dword [esp], 0
mov eax, dword [esp]
cmp eax, 0xa
ja 0x41026f
nop
nop
nop
nop
mov eax, dword [esp]
mov ecx, dword [esp]
movzx ecx, byte [esp + ecx + 0x38]
mov edx, 0x94
sub edx, eax
add eax, 0xe849506b
xor edx, eax
and edx, ecx
xor edx, eax
mov dword [esp + 0xe8], edx
mov eax, dword [esp + 0xe8]
add al, 0x13
mov ecx, dword [esp]
mov byte [esp + ecx + 0x38], al
inc dword [esp]
mov eax, dword [esp]
cmp eax, 0xb
jb 0x410230
lea eax, [esp + 0x38]
push eax
push ebx
call fcn.00402650
add esp, 8
mov edi, eax
mov word [esp + 0x38], 0xd94d
lea eax, [esp + 0x3a]
mov word [eax + 8], 0
mov dword [eax + 4], 0
mov dword [eax], 0
mov dword [esp], 0
mov eax, dword [esp]
cmp eax, 0xb
ja 0x4102ef
nop
nop
nop
nop
mov eax, dword [esp]
mov ecx, dword [esp]
movzx ecx, byte [esp + ecx + 0x38]
mov edx, 0x9b
sub edx, eax
add eax, 0x173df64
xor edx, eax
and edx, ecx
xor edx, eax
mov dword [esp + 0xe8], edx
mov eax, dword [esp + 0xe8]
add al, 0x44
mov ecx, dword [esp]
mov byte [esp + ecx + 0x38], al
inc dword [esp]
mov eax, dword [esp]
cmp eax, 0xc
jb 0x4102b0
lea eax, [esp + 0x38]
push eax
push ebx
call fcn.00402720
add esp, 8
mov esi, eax
mov word [esp + 0x38], 0xd82
lea eax, [esp + 0x3a]
mov dword [eax + 7], 0
mov dword [eax + 4], 0
mov dword [eax], 0
mov dword [esp], 0
mov eax, dword [esp]
cmp eax, 0xc
ja 0x41036f
nop
nop
nop
mov eax, dword [esp]
mov ecx, dword [esp]
movzx ecx, byte [esp + ecx + 0x38]
mov edx, 0x29
sub edx, eax
add eax, 0x8257fed6
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 + 0x38], al
inc dword [esp]
mov eax, dword [esp]
cmp eax, 0xd
jb 0x410330
lea eax, [esp + 0x38]
push eax
push ebx
call fcn.00402650
add esp, 8
mov dword [esp + 0xc0], eax
mov word [esp + 0x38], 0x2d48
lea eax, [esp + 0x3a]
mov dword [eax + 7], 0
mov dword [eax + 4], 0
mov dword [eax], 0
mov dword [esp], 0
mov eax, dword [esp]
cmp eax, 0xc
ja 0x4103ff
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 + 0x38]
mov edx, 0xd9
sub edx, eax
add eax, 0xbeab3d26
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 + 0x38], al
inc dword [esp]
mov eax, dword [esp]
cmp eax, 0xd
jb 0x4103c0
lea eax, [esp + 0x38]
push eax
push ebx
call fcn.004026b0
add esp, 8
mov word [esp + 0x38], 0xb8ac
mov byte [esp + 0x3a], 0x34
mov dword [esp + 0x3f], 0
mov dword [esp + 0x3b], 0
fnstcw word [esp + 0xcc]
movzx eax, word [esp + 0xcc]
or eax, 0xc00
mov word [esp + 0x14c], ax
fldcw word [esp + 0x14c]
fistp dword [esp + 0x15c]
fldcw word [esp + 0xcc]
mov eax, dword [esp + 0x15c]
mov dword [esp + 0x30], eax
mov dword [esp], 0
mov eax, dword [esp]
cmp eax, 0xa
ja 0x4104bf
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 + 0x38]
mov edx, 0xd6
sub edx, eax
add eax, 0xa7c74029
xor edx, eax
and edx, ecx
xor edx, eax
mov dword [esp + 0xe8], edx
mov eax, dword [esp + 0xe8]
add al, 0xe1
mov ecx, dword [esp]
mov byte [esp + ecx + 0x38], al
inc dword [esp]
mov eax, dword [esp]
cmp eax, 0xb
jb 0x410480
mov dword [esp + 0x24], edi
mov dword [esp + 0x28], esi
lea eax, [esp + 0x38]
push eax
push ebx
call fcn.004026b0
add esp, 8
xor eax, eax
mov esi, dword [esp + 0x20]
nop
nop
nop
nop
nop
cmp byte [esi + eax], 0
lea eax, [eax + 1]
jne 0x4104e0
fnstcw word [esp + 0xca]
movzx ecx, word [esp + 0xca]
or ecx, 0xc00
mov word [esp + 0x14a], cx
fldcw word [esp + 0x14a]
fistp dword [esp + 0x158]
fldcw word [esp + 0xca]
mov ecx, dword [esp + 0x158]
mov dword [esp + 0x2c], ecx
lea ecx, [esi + eax]
dec ecx
add eax, esi
neg eax
and eax, esi
not esi
and esi, ecx
sub esi, eax
mov eax, esi
and eax, 1
mov ecx, esi
xor ecx, 1
lea edi, [ecx + eax*2]
lea eax, [edi + edi]
test edi, edi
jns 0x41054f
mov eax, 0xffffffff
push eax
call fcn.00408a30
add esp, 4
lea edi, [eax + edi*2]
mov ecx, dword [esp + 0x20]
test ecx, ecx
jne 0x410573
mov edx, 0xffffffff
lea esi, [edx + 1]
cmp byte [edx + 1], 0
mov edx, esi
jne 0x410568
mov dword [esp + 0x38], 0
add edi, 0xfffffffe
mov ebx, eax
mov dword [esp + 0x10], eax
mov dword [esp + 0x14], edi
cmp eax, edi
jae 0x4105cb
mov ebx, dword [esp + 0x10]
test esi, esi
jle 0x4105cb
mov edi, ecx
add edi, esi
mov ebx, dword [esp + 0x10]
cmp byte [ecx], 0
je 0x4105cb
lea eax, [esp + 0x38]
push eax
push edi
push ecx
mov esi, ecx
call fcn.0040cb00
add esp, 0xc
movzx ecx, word [esp + 0x38]
mov word [ebx], cx
add ebx, 2
cmp ebx, dword [esp + 0x14]
jae 0x4105cb
add esi, eax
cmp esi, edi
mov ecx, esi
jb 0x41059c
mov word [ebx], 0
mov dword [esp + 0xe8], 0
mov dword [esp + 0xec], 0
mov dword [esp + 0xf0], 0
lea ecx, [esp + 0xe8]
mov esi, dword [esp + 0x10]
push esi
call fcn.00430ee0
jmp dword [0x43a3bc]
push esi
call fcn.00408a40
add esp, 4
lea ecx, [esp + 0xe8]
push 0x400
call fcn.00431140
not eax
shr eax, 0x1f
lea ebx, [esp + 0xb0]
jmp dword [eax*4 + 0x43a3c4]
jmp dword [0x43a3cc]
mov dword [esp + 0xb0], 0
mov eax, dword [esp + 0xe8]
mov dword [esp + 0x38], 0x32353437
mov dword [esp + 0x40], 0
mov dword [esp + 0x3c], 0
mov dword [esp + 0xa0], 0
mov ecx, dword [esp + 0xa0]
cmp ecx, 0xb
ja 0x4106c9
mov ecx, dword [esp + 0xa0]
mov edx, dword [esp + 0xa0]
movzx edx, byte [esp + edx + 0x38]
mov esi, 0xd6
sub esi, ecx
add ecx, 0xb00b8b29
xor esi, ecx
and esi, edx
xor esi, ecx
mov dword [esp], esi
mov ecx, dword [esp]
add cl, 0xe1
mov edx, dword [esp + 0xa0]
mov byte [esp + edx + 0x38], cl
inc dword [esp + 0xa0]
mov ecx, dword [esp + 0xa0]
cmp ecx, 0xc
jb 0x41067c
mov ecx, dword [0x43f060]
test ecx, ecx
je case.0x41017e.6
mov edx, dword [esp + 0x38]
xor esi, esi
mov edi, dword [0x43f064]
cmp dword [edi + esi*8], 0xe812c154
je 0x410765
inc esi
cmp ecx, esi
jne 0x4106e3
jmp case.0x41017e.6
mov ebx, dword [esp + 0x10]
mov word [esi], 0
mov edi, esp
push edi
push 0
push 0
push ebx
push dword [esp + 0x30]
push 0
call dword [0x43f05c]
mov esi, dword [esp]
lea eax, [esi + esi]
test esi, esi
jns 0x410722
mov eax, 0xffffffff
push eax
call fcn.00408a30
add esp, 4
push edi
push esi
mov dword [esp + 0x34], eax
push eax
push ebx
mov esi, dword [esp + 0x30]
push esi
push 0
call dword [0x43f05c]
jmp dword [0x43a33c]
push esi
call fcn.00408a40
add esp, 4
mov edx, dword [esp + 0x34]
mov ecx, edx
jmp 0x41108e
mov edx, dword [esp + 0x34]
mov eax, edx
jmp 0x411086
mov ecx, dword [edi + esi*8 + 4]
cmp ecx, edx
je case.0x41017e.6
push ebx
push 0
push 0
push 0x2b
push eax
push 5
push dword [0x43f068]
push ecx
call fcn.00432610
add esp, 0x20
jmp case.0x41017e.6
jmp dword [0x43a3d8]
mov dword [esp + 0xb0], 0
mov ecx, dword [esp + 0xe8]
mov dword [esp + 0x38], 0x32353437
mov dword [esp + 0x40], 0
mov dword [esp + 0x3c], 0
mov dword [esp + 0xa0], 0
mov eax, dword [esp + 0xa0]
cmp eax, 0xb
ja 0x41082b
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp + 0xa0]
mov edx, dword [esp + 0xa0]
movzx edx, byte [esp + edx + 0x38]
mov esi, 0xd6
sub esi, eax
add eax, 0xb00b8b29
xor esi, eax
and esi, edx
xor esi, eax
mov dword [esp], esi
mov eax, dword [esp]
add al, 0xe1
mov edx, dword [esp + 0xa0]
mov byte [esp + edx + 0x38], al
inc dword [esp + 0xa0]
mov eax, dword [esp + 0xa0]
cmp eax, 0xc
jb 0x4107e0
mov eax, dword [esp + 0x38]
mov edx, dword [0x43f060]
test edx, edx
je 0x410790
xor esi, esi
mov edi, dword [0x43f064]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp dword [edi + esi*8], 0xe812c154
je 0x410863
inc esi
cmp edx, esi
jne 0x410850
jmp 0x410790
mov edx, dword [edi + esi*8 + 4]
cmp edx, eax
je 0x410790
push ebx
push 0
push 0
push 0x2b
push ecx
push 5
push dword [0x43f068]
push edx
call fcn.00432610
add esp, 0x20
jmp dword [0x43a3d8]
xor ecx, ecx
cmp eax, 0xc0000004
sete cl
jmp dword [ecx*4 + 0x43a3dc]
jmp dword [0x43a34c]
push dword [esp + 0x28]
call fcn.00408a40
add esp, 4
jmp dword [0x43a374]
jmp dword [0x43a374]
lea ecx, [esp + 0xe8]
call fcn.00431270
jmp case.0x40e936.1
inc ebx
push esi
call fcn.00402950
add esp, 4
xor ecx, ecx
cmp ebx, eax
setb cl
jmp dword [ecx*4 + 0x43a344]
push ebx
push esi
call fcn.00402930
add esp, 8
push eax
call fcn.00402690
add esp, 4
mov edi, eax
xor eax, eax
test edi, edi
sete al
jmp dword [eax*4 + 0x43a354]
mov dword [esp + 0x20], ebx
mov ecx, edi
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, ecx
inc ecx
cmp byte [eax], 0
jne 0x410f60
mov ecx, eax
not ecx
and ecx, edi
mov ebx, edi
not ebx
and ebx, eax
sub ebx, ecx
lea esi, [ebx + 1]
mov eax, dword [case.0x40d8f0.61]
nop
nop
jmp eax
test esi, esi
jns 0x410f90
mov eax, 0xffffffff
jmp 0x410f93
lea eax, [esi + esi]
push eax
call fcn.00408a30
add esp, 4
mov dword [esp + 0x10], eax
test edi, edi
jne 0x410fbb
mov eax, 0xffffffff
nop
nop
nop
nop
nop
nop
nop
lea ebx, [eax + 1]
cmp byte [eax + 1], 0
mov eax, ebx
jne 0x410fb0
mov eax, dword [esp + 0x10]
lea ecx, [eax + esi*2]
mov dword [esp + 0xe8], 0
add ecx, 0xfffffffe
mov esi, eax
mov dword [esp + 0x14], ecx
cmp eax, ecx
jae 0x411030
mov esi, dword [esp + 0x10]
test ebx, ebx
jle 0x411030
mov eax, edi
add eax, ebx
mov ebx, eax
mov esi, dword [esp + 0x10]
nop
nop
nop
nop
cmp byte [edi], 0
je 0x411030
lea eax, [esp + 0xe8]
push eax
push ebx
push edi
call fcn.0040cb00
add esp, 0xc
movzx ecx, word [esp + 0xe8]
mov word [esi], cx
add esi, 2
cmp esi, dword [esp + 0x14]
jae 0x411030
add edi, eax
cmp edi, ebx
jb 0x410ff0
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
xor eax, eax
cmp dword [esp + 0xc0], 0
setg al
mov word [esi], 0
push 0
push eax
push dword [esp + 0x2c]
push dword [esp + 0xf0]
mov edi, dword [esp + 0x20]
push edi
push dword [esp + 0x40]
push dword [esp + 0x40]
lea eax, [esp + 0x54]
push eax
call fcn.00418040
add esp, 0x20
mov esi, dword [esp + 0x30]
mov ebx, dword [esp + 0x20]
jmp dword [0x43a36c]
lea ecx, [eax + 1]
cmp byte [eax], 0
je 0x411092
mov eax, ecx
jmp 0x411086
mov ecx, eax
not ecx
and ecx, edx
mov edi, edx
not edi
and edi, eax
sub edi, ecx
mov esi, edx
add esi, edi
xor ebx, ebx
mov dword [esp + 0x10], edi
test edi, edi
jle 0x4110e7
cmp byte [edx], 0
je 0x4110e7
xor ebx, ebx
mov edi, dword [esp + 0x34]
nop
nop
nop
nop
nop
nop
nop
mov dword [esp + 0x38], 0
lea eax, [esp + 0x38]
push eax
push esi
push edi
call fcn.0040cb00
add esp, 0xc
lea ecx, [edi + eax]
inc ebx
cmp ecx, esi
jae 0x4110e7
cmp byte [edi + eax], 0
mov edi, ecx
jne 0x4110c0
mov eax, ebx
inc eax
lea eax, [ebx + ebx + 2]
jns 0x4110f5
mov eax, 0xffffffff
push eax
call fcn.00408a30
add esp, 4
mov dword [esp + 0x38], 0
lea ecx, [eax + ebx*2]
mov ebx, eax
mov dword [esp + 0x28], eax
mov dword [esp + 0x14], ecx
cmp eax, ecx
mov edi, dword [esp + 0x34]
jae 0x41115b
mov ebx, dword [esp + 0x28]
cmp dword [esp + 0x10], 0
jle 0x41115b
mov ebx, dword [esp + 0x28]
nop
nop
nop
nop
nop
nop
cmp byte [edi], 0
je 0x41115b
lea eax, [esp + 0x38]
push eax
push esi
push edi
call fcn.0040cb00
add esp, 0xc
movzx ecx, word [esp + 0x38]
mov word [ebx], cx
add ebx, 2
cmp ebx, dword [esp + 0x14]
jae 0x41115b
add edi, eax
cmp edi, esi
jb 0x411130
mov word [ebx], 0
lea ecx, [esp + 0x38]
push 1
call fcn.00409370
xor ebx, ebx
mov esi, dword [esp + 0x30]
jmp 0x410f11
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret