Function at 0x40f3d2
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff8
sub esp, 0xcd8
mov ecx, dword [0x43d904]
mov dword [esp + 0x20], 0x1bdfe326
mov dword [esp + 0xe0], 0
mov eax, dword [esp + 0xe0]
cmp eax, 3
ja 0x40d538
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp + 0xe0]
mov edx, dword [esp + 0xe0]
movzx edx, byte [esp + edx + 0x20]
add eax, 0xa793c454
xor eax, edx
mov dword [esp + 0x2c8], eax
mov eax, dword [esp + 0x2c8]
add al, 0xb4
mov edx, dword [esp + 0xe0]
mov byte [esp + edx + 0x20], al
inc dword [esp + 0xe0]
mov eax, dword [esp + 0xe0]
cmp eax, 4
jb 0x40d4f0
mov edx, dword [str.WpM2Co__TRAX]
mov dword [esp + 0x2c8], 0xc810e0e1
mov dword [esp + 0x2cc], 0xe0ede21c
mov dword [esp + 0x2d0], 0x20ede614
mov dword [esp + 0x2d4], 0xd02524d9
mov dword [esp + 0x2d8], 0x219ededf
mov dword [esp + 0x2dc], 0xebfb2fd1
mov dword [esp + 0x2e0], 0xcf96edec
mov dword [esp + 0x2e4], 0xa7e3c5cd
mov dword [esp + 0x248], 0
mov eax, dword [esp + 0x248]
cmp eax, 0x1f
ja 0x40d5fe
nop
nop
nop
mov eax, dword [esp + 0x248]
mov esi, dword [esp + 0x248]
movzx esi, byte [esp + esi + 0x2c8]
add eax, 0xbd10a115
xor eax, esi
mov dword [esp + 0xe0], eax
mov eax, dword [esp + 0xe0]
add al, 0x6d
mov esi, dword [esp + 0x248]
mov byte [esp + esi + 0x2c8], al
inc dword [esp + 0x248]
mov eax, dword [esp + 0x248]
cmp eax, 0x20
jb 0x40d5b0
movzx ebx, byte [esp + 0x2c8]
lea eax, [esp + 0x248]
test bl, bl
je 0x40d62b
lea esi, [esp + 0x2c9]
nop
nop
nop
nop
nop
nop
nop
nop
mov byte [eax], bl
inc eax
movzx ebx, byte [esi]
inc esi
test bl, bl
jne 0x40d620
mov byte [eax], 0
movzx ebx, byte [edx]
test bl, bl
je 0x40d64b
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 0x40d640
mov byte [eax], 0
movzx edx, byte [esp + 0x20]
test dl, dl
je 0x40d66b
lea esi, [esp + 0x21]
nop
nop
nop
nop
nop
mov byte [eax], dl
inc eax
movzx edx, byte [esi]
inc esi
test dl, dl
jne 0x40d660
mov byte [eax], 0
movzx edx, byte [ecx]
test dl, dl
je 0x40d68b
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 0x40d680
mov byte [eax], 0
mov dword [esp + 0x2c8], 0x338d31f3
mov dword [esp + 0x2cc], 0x3782358a
mov dword [esp + 0x2d0], 0xbb409ad
mov dword [esp + 0x2d4], 0xff30db8
mov dword [esp + 0x2d8], 0x38b01d4
mov dword [esp + 0x2dc], 0x7a305b4
mov dword [esp + 0x2e0], 0x1bfa19d2
mov dword [esp + 0x2e4], 0x1fae1dbd
mov dword [esp + 0x2e8], 0x13ae11a0
mov dword [esp + 0x2ec], 0x17b515ad
mov dword [esp + 0x2f0], 0xeb5ee949
mov dword [esp + 0x2f4], 0xef51ed55
mov dword [esp + 0x2f8], 0xe31de15e
mov dword [esp + 0x2fc], 0xe71be56c
mov dword [esp + 0x300], 0xfb4df94f
mov dword [esp + 0x304], 0xff03fd4b
mov dword [esp + 0x308], 0xf34df156
mov dword [esp + 0x30c], 0xf74bf546
mov dword [esp + 0x310], 0xcb7fc935
mov dword [esp + 0x314], 0xcf72cd7e
mov dword [esp + 0x318], 0xc37cc165
mov dword [esp + 0x31c], 0xc779c567
mov dword [esp + 0x320], 0xdb7fd97c
mov dword [esp + 0x324], 0xdfc3dd78
mov dword [esp + 0x328], 0xd3d2d1ca
mov byte [esp + 0x32c], 0
lea ecx, [esp + 0x248]
mov dword [esp + 0x20], 0
mov edx, dword [esp + 0x20]
cmp edx, 0x64
ja 0x40d811
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 + 0x2c8]
add edx, 0xfed4d958
xor edx, esi
mov dword [esp + 0xe0], edx
mov edx, dword [esp + 0xe0]
add dl, 0x98
mov esi, dword [esp + 0x20]
mov byte [esp + esi + 0x2c8], dl
inc dword [esp + 0x20]
mov edx, dword [esp + 0x20]
cmp edx, 0x65
jb 0x40d7d0
sub eax, ecx
mov dword [esp + 0xe0], 0x2b432517
mov dword [esp + 0xe4], 0x2f47295a
mov dword [esp + 0xe8], 0x2d2e
mov byte [esp + 0xec], 0
mov dword [esp + 0x1e0], 0
mov edx, dword [esp + 0x1e0]
cmp edx, 0xc
ja 0x40d8aa
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov edx, dword [esp + 0x1e0]
mov esi, dword [esp + 0x1e0]
movzx esi, byte [esp + esi + 0xe0]
add edx, 0x5f5362a5
xor edx, esi
mov dword [esp + 0x20], edx
mov edx, dword [esp + 0x20]
add dl, 0x7d
mov esi, dword [esp + 0x1e0]
mov byte [esp + esi + 0xe0], dl
inc dword [esp + 0x1e0]
mov edx, dword [esp + 0x1e0]
cmp edx, 0xd
jb 0x40d860
lea edx, [esp + 0xb8]
lea esi, [esp + 0xac]
lea edi, [esp + 0x2c8]
lea ebx, [esp + 0xe0]
push edx
push esi
push eax
push ecx
push edi
push ebx
push 0x442dec
call fcn.0040c400
add esp, 0x1c
movzx eax, al
jmp dword [eax*4 + 0x43e2fc]
xor esi, esi
xor eax, eax
test esi, 0
sete al
jmp dword [eax*4 + 0x43e304]
push 0x104
push edi
call dword [sym.imp.KERNEL32.dll_GetSystemDirectoryW]
mov ecx, dword [esp + 0xb8]
mov ebx, dword [esp + 0xac]
lea eax, [ecx + ecx*2]
shr eax, 2
movzx edx, byte [ebx + ecx - 1]
cmp edx, 0x3d
je 0x40d926
cmp edx, 0x2e
jne 0x40d927
dec eax
movzx ecx, byte [ebx + ecx - 2]
cmp ecx, 0x3d
je 0x40d936
cmp ecx, 0x2e
jne 0x40d937
dec eax
push eax
call fcn.00409510
add esp, 4
mov esi, eax
push eax
push ebx
call fcn.004310d0
add esp, 8
push dword [esp + 0xac]
call fcn.00433ea0
add esp, 4
xor eax, eax
test esi, esi
sete al
jmp dword [eax*4 + 0x43e304]
push esi
call fcn.00402400
add esp, 4
mov ebx, eax
jmp dword [0x43e30c]
push esi
call fcn.00409520
add esp, 4
push ebx
call fcn.00402e70
add esp, 4
mov esi, eax
mov dword [esp + 0x20], 0xa4565c
mov dword [esp + 0xe0], 0
mov eax, dword [esp + 0xe0]
cmp eax, 3
ja 0x40d9f8
nop
nop
nop
mov eax, dword [esp + 0xe0]
mov ecx, dword [esp + 0xe0]
movzx ecx, byte [esp + ecx + 0x20]
add eax, 0x1bbc78e5
xor eax, ecx
mov dword [esp + 0x2c8], eax
mov eax, dword [esp + 0x2c8]
add al, 0xbd
mov ecx, dword [esp + 0xe0]
mov byte [esp + ecx + 0x20], al
inc dword [esp + 0xe0]
mov eax, dword [esp + 0xe0]
cmp eax, 4
jb 0x40d9b0
lea eax, [esp + 0x20]
push eax
push esi
call fcn.00402fc0
add esp, 8
xor ecx, ecx
test eax, eax
setg cl
jmp dword [ecx*4 + 0x43e314]
jmp dword [0x43e320]
call fcn.00430290
nop
call fcn.00430290
jmp dword [0x43e324]
movzx eax, al
jmp dword [eax*4 + 0x43e32c]
push 0
push 0
call dword [sym.imp.ole32.dll_CoInitializeEx]
shr eax, 0x1f
jmp dword [eax*4 + 0x43e334]
push 0
push 0
push 0
push 3
push 0
push 0
push 0
push 0xffffffffffffffff
push 0
call dword [sym.imp.ole32.dll_CoInitializeSecurity]
shr eax, 0x1f
jmp dword [eax*4 + 0x43e33c]
mov word [esp + 0x2c8], 0x5d25
mov byte [esp + 0x2ca], 0xf8
mov dword [esp + 0x2cb], 0
mov dword [esp + 0x20], 0
mov eax, dword [esp + 0x20]
cmp eax, 6
ja 0x40dadf
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp + 0x20]
mov ecx, dword [esp + 0x20]
movzx ecx, byte [esp + ecx + 0x2c8]
add eax, 0x250c68bf
xor eax, ecx
mov dword [esp + 0xe0], eax
mov eax, dword [esp + 0xe0]
add al, 0xc7
mov ecx, dword [esp + 0x20]
mov byte [esp + ecx + 0x2c8], al
inc dword [esp + 0x20]
mov eax, dword [esp + 0x20]
cmp eax, 7
jb 0x40daa0
push edi
push esi
call fcn.00402fc0
add esp, 8
mov dword [esp + 0xa4], eax
mov word [esp + 0x2c8], 0xe4eb
mov byte [esp + 0x2ca], 0x1a
mov dword [esp + 0x2cb], 0
mov dword [esp + 0x20], 0
mov eax, dword [esp + 0x20]
cmp eax, 6
ja 0x40db5f
nop
nop
mov eax, dword [esp + 0x20]
mov ecx, dword [esp + 0x20]
movzx ecx, byte [esp + ecx + 0x2c8]
add eax, 0x7c95c5d4
xor eax, ecx
mov dword [esp + 0xe0], eax
mov eax, dword [esp + 0xe0]
add al, 0x34
mov ecx, dword [esp + 0x20]
mov byte [esp + ecx + 0x2c8], al
inc dword [esp + 0x20]
mov eax, dword [esp + 0x20]
cmp eax, 7
jb 0x40db20
push edi
push esi
call fcn.00402fc0
add esp, 8
xor ecx, ecx
test eax, eax
setg cl
mov dword [esp + 0xb0], ecx
mov dword [esp + 0xb4], esi
push esi
call fcn.0040eba0
add esp, 4
push ebx
call fcn.00403410
add esp, 4
lea esi, [esp + 0x1e0]
mov ecx, esi
push 1
call fcn.0040a120
push esi
call fcn.0041b0f0
add esp, 4
mov ecx, esi
call fcn.0040aaa0
lea esi, [esp + 0xc68]
mov ecx, esi
push 3
call fcn.0040a120
push esi
call fcn.0041b7b0
add esp, 4
mov ecx, esi
call fcn.0040aaa0
lea esi, [esp + 0xc00]
mov ecx, esi
push 1
call fcn.0040a120
push esi
call fcn.0041bb00
add esp, 4
mov ecx, esi
call fcn.0040aaa0
lea ebx, [esp + 0xb98]
mov ecx, ebx
push 1
call fcn.0040a120
push ebx
call fcn.0041d420
add esp, 4
push ebx
call fcn.0041dc40
add esp, 4
push ebx
call fcn.0041e0a0
add esp, 4
mov ecx, ebx
call fcn.0040aaa0
lea esi, [esp + 0xb30]
mov ecx, esi
push 1
call fcn.0040a120
push esi
call fcn.00420020
add esp, 4
mov ecx, esi
call fcn.0040aaa0
lea ebx, [esp + 0xac8]
mov ecx, ebx
push 1
call fcn.0040a120
push ebx
call fcn.00424830
add esp, 4
push ebx
call fcn.0042ba10
add esp, 4
mov eax, dword [esp + 0xb0]
jmp dword [eax*4 + 0x43e344]
jmp dword [0x43e34c]
push ebx
call fcn.00403410
add esp, 4
xor eax, eax
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
push ebx
call fcn.00422380
add esp, 4
jmp dword [0x43e34c]
mov eax, dword [esp + 0xc]
mov dword [esp], 0xb2b5b4b7
mov word [esp + 4], 0
mov byte [esp + 6], 0
mov dword [esp + 0x1c], 0
mov ecx, dword [esp + 0x1c]
cmp ecx, 6
ja 0x40dcf5
mov ecx, dword [esp + 0x1c]
mov edx, dword [esp + 0x1c]
movzx edx, byte [esp + edx]
add ecx, 0xa61c5319
xor ecx, edx
mov dword [esp + 8], ecx
mov ecx, dword [esp + 8]
add cl, 0x51
mov edx, dword [esp + 0x1c]
mov byte [esp + edx], cl
inc dword [esp + 0x1c]
mov ecx, dword [esp + 0x1c]
cmp ecx, 7
jb 0x40dcc2
mov edx, dword [0x444100]
mov ecx, dword [edx]
mov edx, dword [edx + 4]
cmp ecx, edx
je case.0x40de94.0
mov esi, dword [esp]
cmp dword [ecx], 0x625b6034
je 0x40dd1f
add ecx, 8
cmp ecx, edx
jne 0x40dd0b
jmp case.0x40de94.0
mov ecx, dword [ecx + 4]
cmp ecx, esi
je case.0x40de94.0
push eax
push 1
push dword [0x444104]
push ecx
call fcn.00435b40
add esp, 0x10
jmp case.0x40de94.0
mov dword [esp + 0xc], 0
mov eax, dword [esp + 0xc]
cmp eax, 7
ja 0x40dd99
nop
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 + 0x2c8]
add eax, 0x717fcc78
xor eax, ecx
mov dword [esp + 0x20], eax
mov eax, dword [esp + 0x20]
add al, 0xb8
mov ecx, dword [esp + 0xc]
mov byte [esp + ecx + 0x2c8], al
inc dword [esp + 0xc]
mov eax, dword [esp + 0xc]
cmp eax, 8
jb 0x40dd60
push edi
push edx
call fcn.00402fc0
add esp, 8
xor ecx, ecx
test eax, eax
setg cl
jmp dword [ecx*4 + 0x43e384]
xor eax, eax
cmp dword [esp + 0xa4], 0
setg al
jmp dword [eax*4 + 0x43e38c]
lea ecx, [esp + 0x2c8]
push 1
call fcn.0040a120
mov eax, 0xffffffff
nop
nop
nop
nop
nop
nop
nop
nop
cmp byte [eax + 0x4430f5], 0
lea eax, [eax + 1]
jne 0x40dde0
mov dword [esp + 0x20], 0xc6b8b494
mov dword [esp + 0x24], 0xdfda93ab
mov word [esp + 0x28], 0x41dc
mov dword [esp + 0x2a], 0
mov word [esp + 0x2e], 0
mov dword [esp], 0
mov ecx, dword [esp]
cmp ecx, 0xf
ja 0x40de60
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov ecx, dword [esp]
mov edx, dword [esp]
movzx edx, byte [esp + edx + 0x20]
add ecx, 0x37d54b8c
xor ecx, edx
mov dword [esp + 0xc], ecx
mov ecx, dword [esp + 0xc]
add cl, 0x2c
mov edx, dword [esp]
mov byte [esp + edx + 0x20], cl
inc dword [esp]
mov ecx, dword [esp]
cmp ecx, 0x10
jb 0x40de30
lea esi, [esp + 0x2c8]
mov ecx, esi
push eax
push 0x4430f4
lea eax, [esp + 0x28]
push eax
call fcn.0040a320
mov ecx, esi
call fcn.0040aaa0
mov ecx, esi
call fcn.0040a160
xor eax, eax
cmp dword [esp + 0xa4], 0
setg al
jmp dword [eax*4 + 0x43e38c]
push 0
call fcn.00437340
add esp, 4
xor ecx, ecx
test eax, eax
setne cl
jmp dword [ecx*4 + 0x43e394]
mov dword [esp + 0x20], 0xeba715b3
mov dword [esp + 0x24], 0xef1ae94e
mov dword [esp + 0x28], 0xe364ed55
mov dword [esp + 0x2c], 0xe700e159
mov dword [esp + 0x30], 0xfb51e500
mov dword [esp + 0x34], 0xff5ff94e
mov dword [esp + 0x38], 0xf348fd48
mov dword [esp + 0x3c], 0xf701f112
mov dword [esp + 0x40], 0xcb4bf545
mov dword [esp + 0x44], 0xcf28c978
mov dword [esp + 0x48], 0xc37fcd6b
mov dword [esp + 0x4c], 0xc732c166
mov dword [esp + 0x50], 0xdb4cc57d
mov dword [esp + 0x54], 0xdf38d961
mov dword [esp + 0x58], 0xd32ddd38
mov dword [esp + 0x5c], 0xd730d177
mov dword [esp + 0x60], 0xab6bd562
mov dword [esp + 0x64], 0xaf13a919
mov dword [esp + 0x68], 0xa327ad1f
mov dword [esp + 0x6c], 0xa740a116
mov dword [esp + 0x70], 0xbb10a557
mov dword [esp + 0x74], 0xbf4db95a
mov dword [esp + 0x78], 0xb34dbd5e
mov dword [esp + 0x7c], 0xb701b100
mov dword [esp + 0x80], 0x8b02b510
mov dword [esp + 0x84], 0x8f2f8931
mov dword [esp + 0x88], 0x836c8d33
mov dword [esp + 0x8c], 0x87608178
mov dword [esp + 0x90], 0x9b3f8522
mov dword [esp + 0x94], 0x9f789926
mov dword [esp + 0x98], 0x939c9d78
mov word [esp + 0x9c], 0
mov dword [esp + 0xc], 0
mov ecx, dword [esp + 0xc]
cmp ecx, 0x7d
ja 0x40e01b
nop
nop
nop
nop
nop
mov ecx, dword [esp + 0xc]
mov edx, dword [esp + 0xc]
movzx edx, byte [esp + edx + 0x20]
add ecx, 0x2c96c6fd
xor ecx, edx
mov dword [esp + 0x2c8], ecx
mov ecx, dword [esp + 0x2c8]
add cl, 0x15
mov edx, dword [esp + 0xc]
mov byte [esp + edx + 0x20], cl
inc dword [esp + 0xc]
mov ecx, dword [esp + 0xc]
cmp ecx, 0x7e
jb 0x40dfe0
movzx ecx, word [esp + 0x20]
test cx, cx
je 0x40e041
lea edi, [esp + 0x2c8]
lea edx, [esp + 0x22]
mov word [edi], cx
add edi, 2
movzx ecx, word [edx]
add edx, 2
test cx, cx
jne 0x40e030
mov word [edi], 0
movzx ecx, word [eax]
test cx, cx
je 0x40e071
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 0x40e060
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 [0x4440f4]
call fcn.00437480
add esp, 8
lea ecx, [esp + 0xc]
lea edx, [esp + 0x2c8]
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 + 0x43e39c]
call dword [sym.imp.ole32.dll_CoUninitialize]
lea ecx, [esp + 0xac8]
call fcn.0040a160
lea ecx, [esp + 0xb30]
call fcn.0040a160
lea ecx, [esp + 0xb98]
call fcn.0040a160
lea ecx, [esp + 0xc00]
call fcn.0040a160
lea ecx, [esp + 0xc68]
call fcn.0040a160
lea ecx, [esp + 0x1e0]
call fcn.0040a160
mov al, 1
jmp 0x40dc83
mov ecx, dword [esp + 0xa8]
mov esi, dword [esp + 0xa0]
lea eax, [ecx + ecx*2]
shr eax, 2
movzx edx, byte [esi + ecx - 1]
cmp edx, 0x3d
je 0x40e1c4
cmp edx, 0x2e
jne 0x40e1c5
dec eax
movzx ecx, byte [esi + ecx - 2]
cmp ecx, 0x3d
je 0x40e1d4
cmp ecx, 0x2e
jne 0x40e1d5
dec eax
push eax
call fcn.00409510
add esp, 4
mov ebx, eax
push eax
push esi
call fcn.004310d0
add esp, 8
push dword [esp + 0xa0]
call fcn.00433ea0
add esp, 4
xor eax, eax
test ebx, ebx
setne al
jmp dword [eax*4 + 0x43e374]
lea ecx, [esp + 0xac8]
call fcn.0040aaa0
lea eax, [esp + 0xbf]
push eax
call fcn.00430be0
add esp, 4
mov dword [esp + 0x20], 0x38093978
mov word [esp + 0x24], 0x5a3e
mov byte [esp + 0x26], 0x9c
mov dword [esp + 0x27], 0
mov dword [esp + 0xc], 0
mov eax, dword [esp + 0xc]
cmp eax, 0xa
ja 0x40e289
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0xc]
movzx ecx, byte [esp + ecx + 0x20]
add eax, 0x486946eb
xor eax, ecx
mov dword [esp + 0x2c8], eax
mov eax, dword [esp + 0x2c8]
add al, 0x93
mov ecx, dword [esp + 0xc]
mov byte [esp + ecx + 0x20], al
inc dword [esp + 0xc]
mov eax, dword [esp + 0xc]
cmp eax, 0xb
jb 0x40e250
mov ecx, dword [0x43d904]
mov dword [esp + 0xc], 0x33ffcb16
mov dword [esp + 0x10], 0
mov dword [esp], 0
mov eax, dword [esp]
cmp eax, 7
ja 0x40e2e4
nop
nop
mov eax, dword [esp]
mov edx, dword [esp]
movzx edx, byte [esp + edx + 0xc]
add eax, 0xc08a1578
xor eax, edx
mov dword [esp + 0x2c8], eax
mov eax, dword [esp + 0x2c8]
add al, 0xb8
mov edx, dword [esp]
mov byte [esp + edx + 0xc], al
inc dword [esp]
mov eax, dword [esp]
cmp eax, 8
jb 0x40e2b0
mov edx, dword [str.WpM2Co__TRAX]
mov dword [esp + 0x2c8], 0x88d0e0e1
mov dword [esp + 0x2cc], 0xeedce2e3
mov dword [esp + 0x2d0], 0xa6d9e6dd
mov dword [esp + 0x2d4], 0xdd9b9895
mov dword [esp + 0x2d8], 0xf8a29eac
mov dword [esp + 0x2dc], 0xd5e8ebee
mov dword [esp + 0x2e0], 0xe0989292
mov byte [esp + 0x2e4], 0x22
mov word [esp + 0x2e5], 0
mov byte [esp + 0x2e7], 0
mov dword [esp + 8], 0
mov eax, dword [esp + 8]
cmp eax, 0x1f
ja 0x40e3a7
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp + 8]
mov esi, dword [esp + 8]
movzx esi, byte [esp + esi + 0x2c8]
add eax, 0xdda7efb5
xor eax, esi
mov dword [esp], eax
mov eax, dword [esp]
add al, 0xd
mov esi, dword [esp + 8]
mov byte [esp + esi + 0x2c8], al
inc dword [esp + 8]
mov eax, dword [esp + 8]
cmp eax, 0x20
jb 0x40e370
movzx ebx, byte [esp + 0x2c8]
lea eax, [esp + 0xe0]
test bl, bl
je 0x40e3db
lea eax, [esp + 0xe0]
lea esi, [esp + 0x2c9]
nop
nop
nop
nop
nop
nop
nop
nop
mov byte [eax], bl
inc eax
movzx ebx, byte [esi]
inc esi
test bl, bl
jne 0x40e3d0
mov byte [eax], 0
movzx ebx, byte [edx]
test bl, bl
je 0x40e3fb
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 0x40e3f0
mov byte [eax], 0
movzx edx, byte [esp + 0xc]
test dl, dl
je 0x40e41b
lea esi, [esp + 0xd]
nop
nop
nop
nop
nop
mov byte [eax], dl
inc eax
movzx edx, byte [esi]
inc esi
test dl, dl
jne 0x40e410
mov byte [eax], 0
movzx edx, byte [ecx]
test dl, dl
je 0x40e43b
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 0x40e430
mov byte [eax], 0
movzx ecx, byte [esp + 0x20]
test cl, cl
je 0x40e45b
lea edx, [esp + 0x21]
nop
nop
nop
nop
nop
mov byte [eax], cl
inc eax
movzx ecx, byte [edx]
inc edx
test cl, cl
jne 0x40e450
mov byte [eax], 0
movzx ecx, byte [esp + 0xbf]
test cl, cl
je 0x40e48b
lea edx, [esp + 0xc0]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov byte [eax], cl
inc eax
movzx ecx, byte [edx]
inc edx
test cl, cl
jne 0x40e480
mov byte [eax], 0
mov dword [esp + 0x2c8], 0x5bcd591b
mov dword [esp + 0x2cc], 0x47da45d2
mov dword [esp + 0x2d0], 0x43d4412d
mov dword [esp + 0x2d4], 0x4f1b4dd0
mov dword [esp + 0x2d8], 0x4bd34934
mov dword [esp + 0x2dc], 0x771b75e4
mov dword [esp + 0x2e0], 0x7352712a
mov dword [esp + 0x2e4], 0x7fee7d1d
mov dword [esp + 0x2e8], 0x7bee79e8
mov dword [esp + 0x2ec], 0x6705650d
mov dword [esp + 0x2f0], 0x63fe6101
mov dword [esp + 0x2f4], 0x6ff96d05
mov dword [esp + 0x2f8], 0x6b3d69fe
mov dword [esp + 0x2fc], 0x97c3950c
mov dword [esp + 0x300], 0x930d910f
mov dword [esp + 0x304], 0x9fcb9d03
mov dword [esp + 0x308], 0x9b0d99f6
mov dword [esp + 0x30c], 0x87138516
mov dword [esp + 0x310], 0x831f81d5
mov dword [esp + 0x314], 0x8f1a8d1e
mov dword [esp + 0x318], 0x8b1c89e5
mov dword [esp + 0x31c], 0xb721b5d7
mov dword [esp + 0x320], 0xb3dfb1dc
mov dword [esp + 0x324], 0xbf8bbdd0
mov dword [esp + 0x328], 0xbbbab9b2
mov byte [esp + 0x32e], 0
mov word [esp + 0x32c], 0
lea ecx, [esp + 0xe0]
sub eax, ecx
mov dword [esp + 0xc], 0
mov edx, dword [esp + 0xc]
cmp edx, 0x66
ja 0x40e60b
nop
nop
nop
mov edx, dword [esp + 0xc]
mov esi, dword [esp + 0xc]
movzx esi, byte [esp + esi + 0x2c8]
add edx, 0x102abecc
xor edx, esi
mov dword [esp + 0x20], edx
mov edx, dword [esp + 0x20]
add dl, 0x6c
mov esi, dword [esp + 0xc]
mov byte [esp + esi + 0x2c8], dl
inc dword [esp + 0xc]
mov edx, dword [esp + 0xc]
cmp edx, 0x67
jb 0x40e5d0
mov dword [esp + 0x20], 0x13731147
mov dword [esp + 0x24], 0x1f771d82
mov word [esp + 0x28], 0x191e
mov dword [esp + 0x2a], 0
mov byte [esp + 0x2e], 0
mov dword [esp], 0
mov edx, dword [esp]
cmp edx, 0xe
ja 0x40e670
nop
nop
mov edx, dword [esp]
mov esi, dword [esp]
movzx esi, byte [esp + esi + 0x20]
add edx, 0xcd101603
xor edx, esi
mov dword [esp + 0xc], edx
mov edx, dword [esp + 0xc]
add dl, 0xeb
mov esi, dword [esp]
mov byte [esp + esi + 0x20], dl
inc dword [esp]
mov edx, dword [esp]
cmp edx, 0xf
jb 0x40e640
lea edx, [esp + 0xa8]
lea esi, [esp + 0xa0]
push edx
push esi
push eax
push ecx
push edi
lea eax, [esp + 0x34]
push eax
push 0x442dec
call fcn.0040c400
add esp, 0x1c
lea ecx, [esp + 0xac8]
call fcn.0040aaa0
lea eax, [esp + 0xbf]
push eax
call fcn.00430be0
add esp, 4
mov dword [esp + 0x20], 0x38093978
mov word [esp + 0x24], 0x5a3e
mov byte [esp + 0x26], 0x9c
mov dword [esp + 0x27], 0
mov dword [esp + 0xc], 0
mov eax, dword [esp + 0xc]
cmp eax, 0xa
ja 0x40e719
nop
nop
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0xc]
movzx ecx, byte [esp + ecx + 0x20]
add eax, 0x486946eb
xor eax, ecx
mov dword [esp + 0x2c8], eax
mov eax, dword [esp + 0x2c8]
add al, 0x93
mov ecx, dword [esp + 0xc]
mov byte [esp + ecx + 0x20], al
inc dword [esp + 0xc]
mov eax, dword [esp + 0xc]
cmp eax, 0xb
jb 0x40e6e0
mov ecx, dword [0x43d904]
mov dword [esp + 0xc], 0x33ffcb16
mov dword [esp + 0x10], 0
mov dword [esp], 0
mov eax, dword [esp]
cmp eax, 7
ja 0x40e774
nop
nop
mov eax, dword [esp]
mov edx, dword [esp]
movzx edx, byte [esp + edx + 0xc]
add eax, 0xc08a1578
xor eax, edx
mov dword [esp + 0x2c8], eax
mov eax, dword [esp + 0x2c8]
add al, 0xb8
mov edx, dword [esp]
mov byte [esp + edx + 0xc], al
inc dword [esp]
mov eax, dword [esp]
cmp eax, 8
jb 0x40e740
mov edx, dword [str.WpM2Co__TRAX]
mov dword [esp + 0x2c8], 0x88d0e0e1
mov dword [esp + 0x2cc], 0xeedce2e3
mov dword [esp + 0x2d0], 0xa6d9e6dd
mov dword [esp + 0x2d4], 0xdd9b9895
mov dword [esp + 0x2d8], 0xf8a29eac
mov dword [esp + 0x2dc], 0xd5e8ebee
mov dword [esp + 0x2e0], 0xe0989292
mov byte [esp + 0x2e4], 0x22
mov word [esp + 0x2e5], 0
mov byte [esp + 0x2e7], 0
mov dword [esp + 8], 0
mov eax, dword [esp + 8]
cmp eax, 0x1f
ja 0x40e837
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp + 8]
mov esi, dword [esp + 8]
movzx esi, byte [esp + esi + 0x2c8]
add eax, 0xdda7efb5
xor eax, esi
mov dword [esp], eax
mov eax, dword [esp]
add al, 0xd
mov esi, dword [esp + 8]
mov byte [esp + esi + 0x2c8], al
inc dword [esp + 8]
mov eax, dword [esp + 8]
cmp eax, 0x20
jb 0x40e800
movzx ebx, byte [esp + 0x2c8]
lea eax, [esp + 0xe0]
test bl, bl
je 0x40e86b
lea eax, [esp + 0xe0]
lea esi, [esp + 0x2c9]
nop
nop
nop
nop
nop
nop
nop
nop
mov byte [eax], bl
inc eax
movzx ebx, byte [esi]
inc esi
test bl, bl
jne 0x40e860
mov byte [eax], 0
movzx ebx, byte [edx]
test bl, bl
je 0x40e88b
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 0x40e880
mov byte [eax], 0
movzx edx, byte [esp + 0xc]
test dl, dl
je 0x40e8ab
lea esi, [esp + 0xd]
nop
nop
nop
nop
nop
mov byte [eax], dl
inc eax
movzx edx, byte [esi]
inc esi
test dl, dl
jne 0x40e8a0
mov byte [eax], 0
movzx edx, byte [ecx]
test dl, dl
je 0x40e8cb
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 0x40e8c0
mov byte [eax], 0
movzx ecx, byte [esp + 0x20]
test cl, cl
je 0x40e8eb
lea edx, [esp + 0x21]
nop
nop
nop
nop
nop
mov byte [eax], cl
inc eax
movzx ecx, byte [edx]
inc edx
test cl, cl
jne 0x40e8e0
mov byte [eax], 0
movzx ecx, byte [esp + 0xbf]
test cl, cl
je 0x40e91b
lea edx, [esp + 0xc0]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov byte [eax], cl
inc eax
movzx ecx, byte [edx]
inc edx
test cl, cl
jne 0x40e910
mov byte [eax], 0
mov dword [esp + 0x2c8], 0x5bcd591b
mov dword [esp + 0x2cc], 0x47da45d2
mov dword [esp + 0x2d0], 0x43d4412d
mov dword [esp + 0x2d4], 0x4f1b4dd0
mov dword [esp + 0x2d8], 0x4bd34934
mov dword [esp + 0x2dc], 0x771b75e4
mov dword [esp + 0x2e0], 0x7352712a
mov dword [esp + 0x2e4], 0x7fee7d1d
mov dword [esp + 0x2e8], 0x7bee79e8
mov dword [esp + 0x2ec], 0x6705650d
mov dword [esp + 0x2f0], 0x63fe6101
mov dword [esp + 0x2f4], 0x6ff96d05
mov dword [esp + 0x2f8], 0x6b3d69fe
mov dword [esp + 0x2fc], 0x97c3950c
mov dword [esp + 0x300], 0x930d910f
mov dword [esp + 0x304], 0x9fcb9d03
mov dword [esp + 0x308], 0x9b0d99f6
mov dword [esp + 0x30c], 0x87138516
mov dword [esp + 0x310], 0x831f81d5
mov dword [esp + 0x314], 0x8f1a8d1e
mov dword [esp + 0x318], 0x8b1c89e5
mov dword [esp + 0x31c], 0xb721b5d7
mov dword [esp + 0x320], 0xb3dfb1dc
mov dword [esp + 0x324], 0xbf8bbdd0
mov dword [esp + 0x328], 0xbbbab9b2
mov byte [esp + 0x32e], 0
mov word [esp + 0x32c], 0
lea ecx, [esp + 0xe0]
sub eax, ecx
mov dword [esp + 0xc], 0
mov edx, dword [esp + 0xc]
cmp edx, 0x66
ja 0x40ea9b
nop
nop
nop
mov edx, dword [esp + 0xc]
mov esi, dword [esp + 0xc]
movzx esi, byte [esp + esi + 0x2c8]
add edx, 0x102abecc
xor edx, esi
mov dword [esp + 0x20], edx
mov edx, dword [esp + 0x20]
add dl, 0x6c
mov esi, dword [esp + 0xc]
mov byte [esp + esi + 0x2c8], dl
inc dword [esp + 0xc]
mov edx, dword [esp + 0xc]
cmp edx, 0x67
jb 0x40ea60
mov dword [esp + 0x20], 0x13731147
mov dword [esp + 0x24], 0x1f771d82
mov word [esp + 0x28], 0x191e
mov dword [esp + 0x2a], 0
mov byte [esp + 0x2e], 0
mov dword [esp], 0
mov edx, dword [esp]
cmp edx, 0xe
ja 0x40eb00
nop
nop
mov edx, dword [esp]
mov esi, dword [esp]
movzx esi, byte [esp + esi + 0x20]
add edx, 0xcd101603
xor edx, esi
mov dword [esp + 0xc], edx
mov edx, dword [esp + 0xc]
add dl, 0xeb
mov esi, dword [esp]
mov byte [esp + esi + 0x20], dl
inc dword [esp]
mov edx, dword [esp]
cmp edx, 0xf
jb 0x40ead0
lea edx, [esp + 0xa8]
lea esi, [esp + 0xa0]
push edx
push esi
push eax
push ecx
push edi
lea eax, [esp + 0x34]
push eax
push 0x442dec
call fcn.0040c400
add esp, 0x1c
jmp dword [0x43e354]
movzx eax, al
jmp dword [eax*4 + 0x43e35c]
xor ebx, ebx
xor eax, eax
test ebx, 0
setne al
jmp dword [eax*4 + 0x43e374]
push ebx
call fcn.00402400
add esp, 4
mov esi, eax
jmp dword [0x43e37c]
push ebx
call fcn.00409520
add esp, 4
push esi
call fcn.00411bf0
add esp, 4
push esi
call fcn.00403410
add esp, 4
mov dword [esp + 0x2c8], 0x33d5d3d4
mov dword [esp + 0x2cc], 0
mov edx, dword [esp + 0xb4]
jmp 0x40dd41
lea ebx, [esp + 8]
mov dword [esp + 0xac], esi
jmp 0x40ec68
mov edi, dword [esp + 0x12c]
inc edi
push esi
call fcn.004033d0
add esp, 4
xor ecx, ecx
cmp edi, eax
setb cl
mov al, 1
jmp dword [ecx*4 + 0x43e3ac]
mov dword [esp + 0x12c], edi
push edi
push esi
call fcn.004033e0
add esp, 8
mov edi, eax
mov word [esp + 0x40], 0x59d4
lea eax, [esp + 0x44]
mov byte [eax + 2], 0
mov dword [eax - 2], 0
mov dword [esp + 8], 0
mov eax, dword [esp + 8]
cmp eax, 6
ja 0x40ecf9
nop
nop
nop
nop
nop
mov eax, dword [esp + 8]
mov ecx, dword [esp + 8]
movzx ecx, byte [esp + ecx + 0x40]
add eax, 0xc59d1434
xor eax, ecx
mov dword [esp + 0xb8], eax
mov eax, dword [esp + 0xb8]
add al, 0x94
mov ecx, dword [esp + 8]
mov byte [esp + ecx + 0x40], al
inc dword [esp + 8]
mov eax, dword [esp + 8]
cmp eax, 7
jb 0x40ecc0
push 3
lea eax, [esp + 0x44]
push eax
push edi
call fcn.004032b0
add esp, 0xc
xor ecx, ecx
test eax, eax
sete cl
jmp dword [ecx*4 + 0x43e3b4]
mov dword [esp + 8], 0x7912
mov dword [esp + 0xb8], 0
mov eax, dword [esp + 0xb8]
cmp eax, 3
ja 0x40ed82
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp + 0xb8]
mov ecx, dword [esp + 0xb8]
movzx ecx, byte [esp + ecx + 8]
add eax, 0x2b1fdf6f
xor eax, ecx
mov dword [esp + 0x40], eax
mov eax, dword [esp + 0x40]
add al, 0xf7
mov ecx, dword [esp + 0xb8]
mov byte [esp + ecx + 8], al
inc dword [esp + 0xb8]
mov eax, dword [esp + 0xb8]
cmp eax, 4
jb 0x40ed40
push ebx
push edi
call fcn.00402d60
add esp, 8
fnstcw word [esp + 0x116]
movzx eax, word [esp + 0x116]
or eax, 0xc00
mov word [esp + 0x126], ax
fldcw word [esp + 0x126]
fistp dword [esp + 0x140]
fldcw word [esp + 0x116]
mov eax, dword [esp + 0x140]
xor ecx, ecx
cmp eax, 2
setl cl
jmp dword [ecx*4 + 0x43e3bc]
xor ecx, ecx
cmp eax, 3
setl cl
jmp dword [ecx*4 + 0x43e3c4]
sete al
movzx eax, al
jmp dword [eax*4 + 0x43e3cc]
mov dword [esp + 0xb4], 0xb117
mov dword [esp + 0xb8], 0
mov eax, dword [esp + 0xb8]
cmp eax, 3
ja 0x40ee68
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp + 0xb8]
mov ecx, dword [esp + 0xb8]
movzx ecx, byte [esp + ecx + 0xb4]
add eax, 0xaa9ac298
xor eax, ecx
mov dword [esp + 0x40], eax
mov eax, dword [esp + 0x40]
add al, 0xd8
mov ecx, dword [esp + 0xb8]
mov byte [esp + ecx + 0xb4], al
inc dword [esp + 0xb8]
mov eax, dword [esp + 0xb8]
cmp eax, 4
jb 0x40ee20
push 2
lea eax, [esp + 0xb8]
push eax
push edi
call fcn.004032b0
add esp, 0xc
xor ecx, ecx
test eax, eax
setne cl
jmp dword [ecx*4 + 0x43e48c]
mov word [esp + 0x40], 0x2dbc
lea eax, [esp + 0x44]
mov byte [eax], 0
mov word [eax - 2], 0
mov dword [esp + 4], 0
mov eax, dword [esp + 4]
cmp eax, 4
ja 0x40eee3
nop
nop
mov eax, dword [esp + 4]
mov ecx, dword [esp + 4]
movzx ecx, byte [esp + ecx + 0x40]
add eax, 0x99f96da
xor eax, ecx
mov dword [esp + 0x20], eax
mov eax, dword [esp + 0x20]
add al, 0xa
mov ecx, dword [esp + 4]
mov byte [esp + ecx + 0x40], al
inc dword [esp + 4]
mov eax, dword [esp + 4]
cmp eax, 5
jb 0x40eeb0
push 2
lea eax, [esp + 0x44]
push eax
push edi
call fcn.004032b0
add esp, 0xc
xor ecx, ecx
test eax, eax
setne cl
jmp dword [ecx*4 + 0x43e494]
mov word [esp + 0xb8], 0x3585
mov dword [esp + 0xba], 0
mov dword [esp + 4], 0
mov eax, dword [esp + 4]
cmp eax, 5
ja 0x40ef69
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp + 4]
mov ecx, dword [esp + 4]
movzx ecx, byte [esp + ecx + 0xb8]
add eax, 0x23d3f359
xor eax, ecx
mov dword [esp + 0x20], eax
mov eax, dword [esp + 0x20]
add al, 0x91
mov ecx, dword [esp + 4]
mov byte [esp + ecx + 0xb8], al
inc dword [esp + 4]
mov eax, dword [esp + 4]
cmp eax, 6
jb 0x40ef30
push 5
lea eax, [esp + 0xbc]
push eax
push edi
call fcn.004032b0
add esp, 0xc
xor ecx, ecx
test eax, eax
setne cl
jmp dword [ecx*4 + 0x43e49c]
mov word [esp + 8], 0x9518
lea eax, [esp + 0xa]
mov word [eax + 4], 0
mov dword [eax], 0
mov dword [esp + 4], 0
mov eax, dword [esp + 4]
cmp eax, 7
ja 0x40eff3
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp + 4]
mov ecx, dword [esp + 4]
movzx ecx, byte [esp + ecx + 8]
add eax, 0x7781ee3d
xor eax, ecx
mov dword [esp + 0x20], eax
mov eax, dword [esp + 0x20]
add al, 0x55
mov ecx, dword [esp + 4]
mov byte [esp + ecx + 8], al
inc dword [esp + 4]
mov eax, dword [esp + 4]
cmp eax, 8
jb 0x40efc0
push 2
push ebx
push edi
call fcn.004032b0
add esp, 0xc
xor ecx, ecx
test eax, eax
setne cl
jmp dword [ecx*4 + 0x43e4a4]
mov word [esp + 0x24], 0x4d20
mov dword [esp + 0x26], 0
mov dword [esp + 4], 0
mov eax, dword [esp + 4]
cmp eax, 5
ja 0x40f063
nop
nop
nop
mov eax, dword [esp + 4]
mov ecx, dword [esp + 4]
movzx ecx, byte [esp + ecx + 0x24]
add eax, 0xaba8d8ca
xor eax, ecx
mov dword [esp + 0x20], eax
mov eax, dword [esp + 0x20]
add al, 0x7a
mov ecx, dword [esp + 4]
mov byte [esp + ecx + 0x24], al
inc dword [esp + 4]
mov eax, dword [esp + 4]
cmp eax, 6
jb 0x40f030
push 3
lea eax, [esp + 0x28]
push eax
push edi
call fcn.004032b0
add esp, 0xc
mov ecx, dword [case.0x40f006.4]
nop
nop
nop
nop
nop
nop
nop
jmp ecx
xor ecx, ecx
test eax, eax
setne cl
jmp dword [ecx*4 + 0x43e4bc]
jmp case.0x40f2ca.1
xor ecx, ecx
test eax, eax
setle cl
jmp dword [ecx*4 + 0x43e3d4]
mov word [esp + 0x40], 0x576
lea eax, [esp + 0x44]
mov byte [eax], 0
mov word [eax - 2], 0
mov dword [esp + 8], 0
mov eax, dword [esp + 8]
cmp eax, 4
ja 0x40f119
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp + 8]
mov ecx, dword [esp + 8]
movzx ecx, byte [esp + ecx + 0x40]
add eax, 0xc75e3201
xor eax, ecx
mov dword [esp + 0xb8], eax
mov eax, dword [esp + 0xb8]
add al, 0xf9
mov ecx, dword [esp + 8]
mov byte [esp + ecx + 0x40], al
inc dword [esp + 8]
mov eax, dword [esp + 8]
cmp eax, 5
jb 0x40f0e0
lea eax, [esp + 0x40]
push eax
push edi
call fcn.00402c30
add esp, 8
mov dword [esp + 0x18], eax
mov word [esp + 0x40], 0x39ac
lea eax, [esp + 0x44]
mov byte [eax], 0
mov word [eax - 2], 0
mov dword [esp + 8], 0
mov eax, dword [esp + 8]
cmp eax, 4
ja 0x40f189
mov eax, dword [esp + 8]
mov ecx, dword [esp + 8]
movzx ecx, byte [esp + ecx + 0x40]
add eax, 0x58d5e127
xor eax, ecx
mov dword [esp + 0xb8], eax
mov eax, dword [esp + 0xb8]
add al, 0xef
mov ecx, dword [esp + 8]
mov byte [esp + ecx + 0x40], al
inc dword [esp + 8]
mov eax, dword [esp + 8]
cmp eax, 5
jb case.default.0x40f1ae
lea eax, [esp + 0x40]
push eax
push edi
call fcn.00402c30
add esp, 8
mov edx, dword [esp + 0x18]
test edx, edx
sete ch
mov dword [esp + 0x1c], eax
test eax, eax
sete cl
or cl, ch
movzx eax, cl
jmp dword [eax*4 + 0x43e5cc]
mov eax, edx
mov ecx, edx
jmp dword [0x43e5d4]
mov esi, ecx
jmp 0x41114f
mov word [esp + 0x40], 0x19e8
lea eax, [esp + 0x44]
mov byte [eax + 2], 0
mov dword [eax - 2], 0
mov dword [esp + 8], 0
mov eax, dword [esp + 8]
cmp eax, 6
ja 0x40f229
nop
nop
nop
mov eax, dword [esp + 8]
mov ecx, dword [esp + 8]
movzx ecx, byte [esp + ecx + 0x40]
add eax, 0xd24963d4
xor eax, ecx
mov dword [esp + 0xb8], eax
mov eax, dword [esp + 0xb8]
add al, 0x34
mov ecx, dword [esp + 8]
mov byte [esp + ecx + 0x40], al
inc dword [esp + 8]
mov eax, dword [esp + 8]
cmp eax, 7
jb 0x40f1f0
lea eax, [esp + 0x40]
push eax
push edi
call fcn.00402c30
add esp, 8
mov dword [esp + 0x1c], eax
mov word [esp + 0x40], 0x61fa
lea eax, [esp + 0x44]
mov word [eax + 2], 0
mov dword [eax - 2], 0
mov dword [esp + 8], 0
mov eax, dword [esp + 8]
cmp eax, 7
ja 0x40f2a9
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp + 8]
mov ecx, dword [esp + 8]
movzx ecx, byte [esp + ecx + 0x40]
add eax, 0xb5869370
xor eax, ecx
mov dword [esp + 0xb8], eax
mov eax, dword [esp + 0xb8]
add al, 0xf0
mov ecx, dword [esp + 8]
mov byte [esp + ecx + 0x40], al
inc dword [esp + 8]
mov eax, dword [esp + 8]
cmp eax, 8
jb 0x40f270
lea eax, [esp + 0x40]
push eax
push edi
call fcn.00402c30
add esp, 8
mov edi, dword [esp + 0x1c]
test edi, edi
sete dl
test eax, eax
sete cl
or cl, dl
movzx ecx, cl
jmp dword [ecx*4 + 0x43e644]
mov ecx, edi
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov esi, ecx
inc ecx
cmp byte [esi], 0
jne 0x40f2e0
mov dword [esp + 0x18], eax
xor ebx, ebx
cmp esi, edi
jbe 0x40f331
cmp byte [edi], 0
je 0x40f331
xor ebx, ebx
mov edi, dword [esp + 0x1c]
nop
nop
nop
mov dword [esp + 0x40], 0
lea eax, [esp + 0x40]
push eax
push esi
push edi
call fcn.0040d320
add esp, 0xc
mov ecx, ebx
and ecx, 1
xor ebx, 1
lea ebx, [ebx + ecx*2]
lea ecx, [edi + eax]
cmp ecx, esi
jae 0x40f331
cmp byte [edi + eax], 0
mov edi, ecx
jne 0x40f300
mov eax, ebx
inc eax
lea eax, [ebx + ebx + 2]
jns 0x40f33f
mov eax, 0xffffffff
push eax
call fcn.00409510
add esp, 4
mov dword [esp + 0x40], 0
lea ecx, [eax + ebx*2]
mov ebx, eax
mov dword [esp + 0x30], eax
mov dword [esp + 0x14], ecx
cmp eax, ecx
mov eax, dword [esp + 0x18]
mov edi, dword [esp + 0x1c]
jae 0x40f5f6
mov ebx, dword [esp + 0x30]
cmp edi, esi
jae 0x40f5f6
mov ebx, dword [esp + 0x30]
nop
nop
nop
cmp byte [edi], 0
je 0x40f5f6
lea eax, [esp + 0x40]
push eax
push esi
push edi
call fcn.0040d320
add esp, 0xc
movzx ecx, word [esp + 0x40]
mov word [ebx], cx
add ebx, 2
cmp ebx, dword [esp + 0x14]
jae 0x40f5f2
add edi, eax
cmp edi, esi
mov eax, dword [esp + 0x18]
jb 0x40f380
jmp 0x40f5f6
sete al
movzx eax, al
jmp dword [eax*4 + 0x43e3dc]
mov eax, dword [case.0x40e200.31]
nop
nop
jmp eax
mov dword [esp + 0xb4], 0x19a8
mov dword [esp + 0xb8], 0
mov eax, dword [esp + 0xb8]
cmp eax, 3
ja 0x40f448
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp + 0xb8]
mov ecx, dword [esp + 0xb8]
movzx ecx, byte [esp + ecx + 0xb4]
add eax, 0xbfd62a7c
xor eax, ecx
mov dword [esp + 0x40], eax
mov eax, dword [esp + 0x40]
add al, 0x9c
mov ecx, dword [esp + 0xb8]
mov byte [esp + ecx + 0xb4], al
inc dword [esp + 0xb8]
mov eax, dword [esp + 0xb8]
cmp eax, 4
jb 0x40f400
push 2
lea eax, [esp + 0xb8]
push eax
push edi
call fcn.004032b0
add esp, 0xc
xor ecx, ecx
test eax, eax
setne cl
jmp dword [ecx*4 + 0x43e3f4]
mov word [esp + 0x40], 0xd5a5
lea eax, [esp + 0x44]
mov byte [eax], 0
mov word [eax - 2], 0
mov dword [esp + 4], 0
mov eax, dword [esp + 4]
cmp eax, 4
ja 0x40f4c3
nop
nop
mov eax, dword [esp + 4]
mov ecx, dword [esp + 4]
movzx ecx, byte [esp + ecx + 0x40]
add eax, 0xa13700dd
xor eax, ecx
mov dword [esp + 0x20], eax
mov eax, dword [esp + 0x20]
add al, 0xf5
mov ecx, dword [esp + 4]
mov byte [esp + ecx + 0x40], al
inc dword [esp + 4]
mov eax, dword [esp + 4]
cmp eax, 5
jb 0x40f490
push 5
lea eax, [esp + 0x44]
push eax
push edi
call fcn.004032b0
add esp, 0xc
xor ecx, ecx
test eax, eax
setne cl
jmp dword [ecx*4 + 0x43e3fc]
mov word [esp + 0xb8], 0x21ac
lea eax, [esp + 0xba]
mov byte [eax + 2], 0
mov word [eax], 0
mov dword [esp + 4], 0
mov eax, dword [esp + 4]
cmp eax, 4
ja 0x40f549
nop
nop
nop
nop
mov eax, dword [esp + 4]
mov ecx, dword [esp + 4]
movzx ecx, byte [esp + ecx + 0xb8]
add eax, 0x3ebcd3fb
xor eax, ecx
mov dword [esp + 0x20], eax
mov eax, dword [esp + 0x20]
add al, 0x23
mov ecx, dword [esp + 4]
mov byte [esp + ecx + 0xb8], al
inc dword [esp + 4]
mov eax, dword [esp + 4]
cmp eax, 5
jb 0x40f510
push 2
lea eax, [esp + 0xbc]
push eax
push edi
call fcn.004032b0
add esp, 0xc
xor ecx, ecx
test eax, eax
setne cl
jmp dword [ecx*4 + 0x43e404]
mov word [esp + 8], 0x45e2
mov dword [esp + 0xa], 0
mov dword [esp + 4], 0
mov eax, dword [esp + 4]
cmp eax, 5
ja 0x40f5c3
nop
nop
nop
nop
nop
nop
mov eax, dword [esp + 4]
mov ecx, dword [esp + 4]
movzx ecx, byte [esp + ecx + 8]
add eax, 0xa1a64835
xor eax, ecx
mov dword [esp + 0x20], eax
mov eax, dword [esp + 0x20]
add al, 0x8d
mov ecx, dword [esp + 4]
mov byte [esp + ecx + 8], al
inc dword [esp + 4]
mov eax, dword [esp + 4]
cmp eax, 6
jb 0x40f590
push 3
push ebx
push edi
call fcn.004032b0
add esp, 0xc
xor ecx, ecx
test eax, eax
setne cl
jmp dword [ecx*4 + 0x43e40c]
mov eax, dword [case.0x40f2ca.1]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
jmp eax
mov eax, dword [esp + 0x18]
mov word [ebx], 0
xor edi, edi
mov esi, 0xfffffffe
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
add esi, 2
cmp byte [eax + edi], 0
lea edi, [edi + 1]
jne 0x40f610
lea eax, [esi + 2]
test edi, edi
jns 0x40f628
mov eax, 0xffffffff
push eax
call fcn.00409510
add esp, 4
mov dword [esp + 0x40], 0
add esi, eax
mov dword [esp + 0x14], eax
mov dword [esp + 0x2c], eax
cmp eax, esi
mov ecx, dword [esp + 0x18]
jae 0x40f6a5
lea ebx, [ecx + edi]
dec ebx
mov eax, dword [esp + 0x2c]
mov dword [esp + 0x14], eax
cmp ecx, ebx
jae 0x40f6a5
mov eax, dword [esp + 0x2c]
mov dword [esp + 0x14], eax
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp byte [ecx], 0
je 0x40f6a5
lea eax, [esp + 0x40]
push eax
push ebx
push ecx
mov edi, ecx
call fcn.0040d320
add esp, 0xc
movzx ecx, word [esp + 0x40]
mov edx, dword [esp + 0x14]
mov word [edx], cx
add edx, 2
mov dword [esp + 0x14], edx
cmp edx, esi
jae 0x40f6a5
add edi, eax
cmp edi, ebx
mov ecx, edi
jb 0x40f670
mov eax, dword [esp + 0x14]
mov word [eax], 0
mov word [esp + 0x40], 0x4579
mov byte [esp + 0x42], 0xca
lea eax, [esp + 0x44]
mov byte [eax + 1], 0
mov word [eax - 1], 0
mov dword [esp + 8], 0
mov eax, dword [esp + 8]
cmp eax, 5
ja 0x40f719
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp + 8]
mov ecx, dword [esp + 8]
movzx ecx, byte [esp + ecx + 0x40]
add eax, 0xc62eee2
xor eax, ecx
mov dword [esp + 0xb8], eax
mov eax, dword [esp + 0xb8]
add al, 0xd2
mov ecx, dword [esp + 8]
mov byte [esp + ecx + 0x40], al
inc dword [esp + 8]
mov eax, dword [esp + 8]
cmp eax, 6
jb 0x40f6e0
lea eax, [esp + 0x40]
push eax
push dword [ebp + 8]
call fcn.00402e90
add esp, 8
xor ecx, ecx
mov dword [esp + 0x38], eax
test eax, eax
setne cl
mov dword [esp + 0x1c], 0
mov dword [esp + 0x34], 0
mov edi, dword [esp + 0x2c]
jmp dword [ecx*4 + 0x43e64c]
lea ebx, [esp + 0x40]
mov ecx, ebx
push 3
call fcn.0040a120
push dword [esp + 0x34]
mov esi, dword [esp + 0x20]
push esi
push edi
push dword [esp + 0x3c]
push ebx
call fcn.00416620
add esp, 0x14
mov ecx, ebx
call fcn.0040aaa0
xor eax, eax
test esi, esi
sete al
jmp dword [eax*4 + 0x43e66c]
push dword [esp + 0x38]
call fcn.004033d0
add esp, 4
mov ecx, eax
mov dword [esp + 0x34], eax
mov ecx, 0xc
mul ecx
seto dl
mov ecx, 0xffffffff
mov esi, 0xffffffff
add eax, 4
jb 0x40f824
mov esi, eax
test dl, dl
jne 0x40f82a
mov ecx, esi
push ecx
call fcn.00409510
add esp, 4
mov ecx, dword [esp + 0x34]
mov dword [eax], ecx
add eax, 4
mov dword [esp + 0x1c], eax
xor eax, eax
test ecx, ecx
sete al
jmp dword [eax*4 + 0x43e654]
mov eax, dword [esp + 0x34]
lea eax, [eax + eax*2]
mov ecx, dword [esp + 0x1c]
lea eax, [ecx + eax*4]
mov dword [ecx], 0
mov dword [ecx + 4], 0
mov dword [ecx + 8], 0
add ecx, 0xc
xor edx, edx
cmp ecx, eax
sete dl
jmp dword [edx*4 + 0x43e65c]
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 + 0x43e65c]
xor ecx, ecx
xor eax, eax
cmp ecx, dword [esp + 0x34]
setb al
jmp dword [eax*4 + 0x43e664]
jmp dword [0x43e418]
mov word [esp + 0x24], 0xdac6
mov byte [esp + 0x26], 0x72
mov dword [esp + 0x27], 0
mov dword [esp + 4], 0
mov eax, dword [esp + 4]
cmp eax, 6
ja 0x40fbd3
nop
nop
nop
nop
nop
nop
mov eax, dword [esp + 4]
mov ecx, dword [esp + 4]
movzx ecx, byte [esp + ecx + 0x24]
add eax, 0x6157438e
xor eax, ecx
mov dword [esp + 0x20], eax
mov eax, dword [esp + 0x20]
add al, 0x1e
mov ecx, dword [esp + 4]
mov byte [esp + ecx + 0x24], al
inc dword [esp + 4]
mov eax, dword [esp + 4]
cmp eax, 7
jb 0x40fba0
push 3
lea eax, [esp + 0x28]
push eax
push edi
call fcn.004032b0
add esp, 0xc
jmp case.0x40f5d6.3
push 3
lea eax, [esp + 0x28]
push eax
push edi
call fcn.004032b0
add esp, 0xc
jmp dword [0x43e420]
mov word [esp + 0x24], 0xdac6
mov byte [esp + 0x26], 0x72
mov dword [esp + 0x27], 0
mov dword [esp + 4], 0
mov eax, dword [esp + 4]
cmp eax, 6
ja 0x40fbf0
nop
nop
nop
nop
nop
mov eax, dword [esp + 4]
mov ecx, dword [esp + 4]
movzx ecx, byte [esp + ecx + 0x24]
add eax, 0x6157438e
xor eax, ecx
mov dword [esp + 0x20], eax
mov eax, dword [esp + 0x20]
add al, 0x1e
mov ecx, dword [esp + 4]
mov byte [esp + ecx + 0x24], al
inc dword [esp + 4]
mov eax, dword [esp + 4]
cmp eax, 7
jb 0x40fc30
jmp 0x40fbf0
xor ecx, ecx
test eax, eax
sete cl
jmp dword [ecx*4 + 0x43e424]
mov word [esp + 0x40], 0x59c8
lea eax, [esp + 0x44]
mov word [eax + 2], 0
mov dword [eax - 2], 0
mov dword [esp + 8], 0
mov eax, dword [esp + 8]
cmp eax, 7
ja 0x40fcd9
nop
nop
nop
nop
mov eax, dword [esp + 8]
mov ecx, dword [esp + 8]
movzx ecx, byte [esp + ecx + 0x40]
add eax, 0xb9790c0c
xor eax, ecx
mov dword [esp + 0xb8], eax
mov eax, dword [esp + 0xb8]
add al, 0xac
mov ecx, dword [esp + 8]
mov byte [esp + ecx + 0x40], al
inc dword [esp + 8]
mov eax, dword [esp + 8]
cmp eax, 8
jb 0x40fca0
lea eax, [esp + 0x40]
push eax
push edi
call fcn.00402c30
add esp, 8
mov dword [esp + 0x14], eax
mov dword [esp + 8], 0xb12d
mov dword [esp + 0xb8], 0
mov eax, dword [esp + 0xb8]
cmp eax, 3
ja 0x40fd52
nop
nop
nop
nop
nop
nop
mov eax, dword [esp + 0xb8]
mov ecx, dword [esp + 0xb8]
movzx ecx, byte [esp + ecx + 8]
add eax, 0x37478248
xor eax, ecx
mov dword [esp + 0x40], eax
mov eax, dword [esp + 0x40]
add al, 8
mov ecx, dword [esp + 0xb8]
mov byte [esp + ecx + 8], al
inc dword [esp + 0xb8]
mov eax, dword [esp + 0xb8]
cmp eax, 4
jb 0x40fd10
push ebx
push edi
call fcn.00402e90
add esp, 8
mov dword [esp + 0x34], eax
mov word [esp + 0x40], 0xa12c
lea eax, [esp + 0x44]
mov byte [eax + 2], 0
mov dword [eax - 2], 0
mov dword [esp + 8], 0
mov eax, dword [esp + 8]
cmp eax, 6
ja 0x40fdc9
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp + 8]
mov ecx, dword [esp + 8]
movzx ecx, byte [esp + ecx + 0x40]
add eax, 0xdeda31b
xor eax, ecx
mov dword [esp + 0xb8], eax
mov eax, dword [esp + 0xb8]
add al, 0x43
mov ecx, dword [esp + 8]
mov byte [esp + ecx + 0x40], al
inc dword [esp + 8]
mov eax, dword [esp + 8]
cmp eax, 7
jb 0x40fd90
lea eax, [esp + 0x40]
push eax
push edi
call fcn.00402c30
add esp, 8
mov esi, eax
mov word [esp + 0x40], 0x6104
lea eax, [esp + 0x44]
mov byte [eax + 2], 0
mov dword [eax - 2], 0
mov dword [esp + 8], 0
mov eax, dword [esp + 8]
cmp eax, 6
ja 0x40fe39
mov eax, dword [esp + 8]
mov ecx, dword [esp + 8]
movzx ecx, byte [esp + ecx + 0x40]
add eax, 0x54740e70
xor eax, ecx
mov dword [esp + 0xb8], eax
mov eax, dword [esp + 0xb8]
add al, 0xf0
mov ecx, dword [esp + 8]
mov byte [esp + ecx + 0x40], al
inc dword [esp + 8]
mov eax, dword [esp + 8]
cmp eax, 7
jb 0x40fe00
lea eax, [esp + 0x40]
push eax
push edi
call fcn.00402d60
add esp, 8
mov word [esp + 0x40], 0xe2f6
mov byte [esp + 0x42], 0x6a
mov dword [esp + 0x43], 0
fnstcw word [esp + 0x114]
movzx eax, word [esp + 0x114]
or eax, 0xc00
mov word [esp + 0x124], ax
fldcw word [esp + 0x124]
fistp dword [esp + 0x13c]
fldcw word [esp + 0x114]
mov eax, dword [esp + 0x13c]
mov dword [esp + 0x30], eax
mov dword [esp + 8], 0
mov eax, dword [esp + 8]
cmp eax, 6
ja 0x40fee9
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp + 8]
mov ecx, dword [esp + 8]
movzx ecx, byte [esp + ecx + 0x40]
add eax, 0x51595872
xor eax, ecx
mov dword [esp + 0xb8], eax
mov eax, dword [esp + 0xb8]
add al, 0xe2
mov ecx, dword [esp + 8]
mov byte [esp + ecx + 0x40], al
inc dword [esp + 8]
mov eax, dword [esp + 8]
cmp eax, 7
jb 0x40feb0
mov dword [esp + 0x18], esi
lea eax, [esp + 0x40]
push eax
push edi
call fcn.00402d60
add esp, 8
mov word [esp + 0x40], 0xd5d0
mov byte [esp + 0x42], 0x38
lea eax, [esp + 0x44]
mov byte [eax + 1], 0
mov word [eax - 1], 0
fnstcw word [esp + 0x112]
movzx eax, word [esp + 0x112]
or eax, 0xc00
mov word [esp + 0x122], ax
fldcw word [esp + 0x122]
fistp dword [esp + 0x138]
fldcw word [esp + 0x112]
mov eax, dword [esp + 0x138]
mov dword [esp + 0x3c], eax
mov dword [esp + 8], 0
mov eax, dword [esp + 8]
cmp eax, 5
ja 0x40ffa9
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp + 8]
mov ecx, dword [esp + 8]
movzx ecx, byte [esp + ecx + 0x40]
add eax, 0x3b82eaf7
xor eax, ecx
mov dword [esp + 0xb8], eax
mov eax, dword [esp + 0xb8]
add al, 0x3f
mov ecx, dword [esp + 8]
mov byte [esp + ecx + 0x40], al
inc dword [esp + 8]
mov eax, dword [esp + 8]
cmp eax, 6
jb 0x40ff70
lea eax, [esp + 0x40]
push eax
push edi
call fcn.00402fc0
add esp, 8
mov dword [esp + 0x108], eax
mov eax, dword [esp + 0x14]
lea ebx, [eax - 1]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp byte [ebx + 1], 0
lea ebx, [ebx + 1]
jne 0x40ffd0
xor edi, edi
cmp eax, ebx
jae 0x410021
cmp byte [eax], 0
je 0x410021
xor edi, edi
mov esi, dword [esp + 0x14]
nop
nop
nop
nop
nop
nop
mov dword [esp + 0x40], 0
lea eax, [esp + 0x40]
push eax
push ebx
push esi
call fcn.0040d320
add esp, 0xc
mov ecx, edi
and ecx, 1
xor edi, 1
lea edi, [edi + ecx*2]
lea ecx, [esi + eax]
cmp ecx, ebx
jae 0x410021
cmp byte [esi + eax], 0
mov esi, ecx
jne 0x40fff0
mov eax, edi
inc eax
lea eax, [edi + edi + 2]
jns 0x41002f
mov eax, 0xffffffff
push eax
call fcn.00409510
add esp, 4
mov dword [esp + 0x40], 0
lea ecx, [eax + edi*2]
mov edx, eax
mov dword [esp + 0x2c], eax
mov dword [esp + 0x1c], ecx
cmp eax, ecx
mov esi, dword [esp + 0x14]
jae 0x4100a3
mov edx, dword [esp + 0x2c]
cmp esi, ebx
jae 0x4100a3
mov edx, dword [esp + 0x2c]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp byte [esi], 0
je 0x4100a3
lea eax, [esp + 0x40]
push eax
push ebx
push esi
mov dword [esp + 0x20], edx
call fcn.0040d320
mov edx, dword [esp + 0x20]
add esp, 0xc
movzx ecx, word [esp + 0x40]
mov word [edx], cx
add edx, 2
cmp edx, dword [esp + 0x1c]
jae 0x4100a3
add esi, eax
cmp esi, ebx
jb 0x410070
mov word [edx], 0
lea ebx, [esp + 8]
push ebx
push 0
push 0
push edi
push dword [esp + 0x3c]
push 0
call dword [0x4440fc]
mov esi, dword [esp + 8]
lea eax, [esi + esi]
test esi, esi
jns 0x4100ce
mov eax, 0xffffffff
push eax
call fcn.00409510
add esp, 4
push ebx
push esi
mov dword [esp + 0x40], eax
push eax
push edi
mov esi, dword [esp + 0x3c]
push esi
push 0
call dword [0x4440fc]
jmp dword [0x43e43c]
push esi
call fcn.00409520
add esp, 4
mov ecx, dword [esp + 0x18]
mov eax, ecx
jmp dword [0x43e444]
jmp dword [0x43e4c8]
mov ecx, dword [esp + 0x18]
mov eax, ecx
jmp dword [0x43e444]
mov eax, ecx
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov ebx, eax
inc eax
cmp byte [ebx], 0
jne 0x410720
push ebx
push dword [esp + 0x1c]
call fcn.004138d0
add esp, 8
mov edi, eax
inc eax
lea eax, [edi + edi + 2]
jns 0x410743
mov eax, 0xffffffff
push eax
call fcn.00409510
add esp, 4
mov esi, eax
mov dword [esp + 0x40], 0
lea eax, [eax + edi*2]
mov dword [esp + 0x14], eax
cmp esi, eax
jae 0x410794
mov edi, dword [esp + 0x18]
cmp edi, ebx
jae 0x410794
cmp byte [edi], 0
je 0x410794
lea eax, [esp + 0x40]
push eax
push ebx
push edi
call fcn.0040d320
add esp, 0xc
movzx ecx, word [esp + 0x40]
mov word [esi], cx
add esi, 2
cmp esi, dword [esp + 0x14]
jae 0x410794
add edi, eax
cmp edi, ebx
jb 0x410769
mov word [esi], 0
lea ecx, [esp + 0x40]
push 1
call fcn.0040a120
mov ecx, dword [esp + 0x18]
mov eax, ecx
jmp case.0x40e200.52
mov word [edi], 0
lea ecx, [esp + 0x40]
push 1
call fcn.0040a120
mov ecx, dword [esp + 0x18]
mov eax, ecx
jmp dword [0x43e450]
mov esi, eax
inc eax
cmp byte [esi], 0
jne case.0x40e200.52
xor edi, edi
cmp esi, ecx
jbe 0x410827
cmp byte [ecx], 0
je 0x410827
xor edi, edi
mov ebx, dword [esp + 0x18]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov dword [esp + 0xb8], 0
lea eax, [esp + 0xb8]
push eax
push esi
push ebx
call fcn.0040d320
add esp, 0xc
mov ecx, edi
and ecx, 1
xor edi, 1
lea edi, [edi + ecx*2]
lea ecx, [ebx + eax]
cmp ecx, esi
jae 0x410827
cmp byte [ebx + eax], 0
mov ebx, ecx
jne 0x4107f0
mov eax, edi
inc eax
jns 0x410833
mov eax, 0xffffffff
jmp 0x41083a
lea eax, [edi*2 + 2]
push eax
call fcn.00409510
add esp, 4
mov dword [esp + 0xb8], 0
lea ecx, [eax + edi*2]
mov edi, eax
mov dword [esp + 0x1c], eax
mov dword [esp + 0x14], ecx
cmp eax, ecx
jae 0x4107b0
mov edi, dword [esp + 0x1c]
cmp dword [esp + 0x18], esi
jae 0x4107b0
mov edi, dword [esp + 0x1c]
mov ebx, dword [esp + 0x18]
nop
nop
nop
nop
nop
nop
nop
cmp byte [ebx], 0
je 0x4107b0
lea eax, [esp + 0xb8]
push eax
push esi
push ebx
call fcn.0040d320
add esp, 0xc
movzx ecx, word [esp + 0xb8]
mov word [edi], cx
add edi, 2
cmp edi, dword [esp + 0x14]
jae 0x4107b0
add ebx, eax
cmp ebx, esi
jb 0x410880
jmp 0x4107b0
xor esi, esi
lea ebx, [esp + 8]
mov edi, dword [esp + 0x34]
jmp 0x4108df
mov esi, dword [esp + 0x18]
mov eax, esi
and eax, 1
xor esi, 1
lea esi, [esi + eax*2]
push edi
call fcn.004033d0
add esp, 4
xor ecx, ecx
cmp esi, eax
setb cl
jmp dword [ecx*4 + 0x43e454]
mov dword [esp + 0x18], esi
push esi
push edi
call fcn.004033b0
add esp, 8
push eax
call fcn.00402d40
add esp, 4
mov esi, eax
xor eax, eax
test esi, esi
sete al
jmp dword [eax*4 + 0x43e464]
mov eax, esi
nop
mov edi, eax
inc eax
cmp byte [edi], 0
jne 0x410920
mov ebx, edi
sub ebx, esi
mov eax, ebx
inc eax
jns 0x410940
mov eax, 0xffffffff
jmp 0x410947
lea eax, [ebx*2 + 2]
push eax
call fcn.00409510
add esp, 4
mov dword [esp + 0xb8], 0
lea ecx, [eax + ebx*2]
mov ebx, eax
mov dword [esp + 0x2c], eax
mov dword [esp + 0x14], ecx
cmp eax, ecx
jae 0x4109c0
mov ebx, dword [esp + 0x2c]
cmp esi, edi
jae 0x4109c0
mov ebx, dword [esp + 0x2c]
nop
nop
nop
nop
nop
nop
nop
nop
cmp byte [esi], 0
je 0x4109c0
lea eax, [esp + 0xb8]
push eax
push edi
push esi
call fcn.0040d320
add esp, 0xc
movzx ecx, word [esp + 0xb8]
mov word [ebx], cx
add ebx, 2
cmp ebx, dword [esp + 0x14]
jae 0x4109c0
add esi, eax
cmp esi, edi
jb 0x410980
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
xor eax, eax
cmp dword [esp + 0x108], 0
setg al
mov word [ebx], 0
push 0
push eax
push dword [esp + 0x38]
push dword [esp + 0x48]
mov esi, dword [esp + 0x3c]
push esi
push dword [esp + 0x4c]
push dword [esp + 0x34]
lea eax, [esp + 0x5c]
push eax
call fcn.004188a0
add esp, 0x20
lea ebx, [esp + 8]
mov edi, dword [esp + 0x34]
jmp dword [0x43e46c]
jmp dword [0x43e45c]
push dword [esp + 0x1c]
call fcn.00409520
add esp, 4
jmp dword [0x43e484]
jmp dword [0x43e484]
mov edi, eax
inc eax
cmp byte [edi], 0
jne case.0x40f1ae.3
xor ebx, ebx
cmp edi, ecx
jbe 0x410f91
cmp byte [ecx], 0
je 0x410f91
xor ebx, ebx
mov esi, dword [esp + 0x18]
nop
nop
nop
nop
nop
nop
nop
mov dword [esp + 0x40], 0
lea eax, [esp + 0x40]
push eax
push edi
push esi
call fcn.0040d320
add esp, 0xc
mov ecx, ebx
and ecx, 1
xor ebx, 1
lea ebx, [ebx + ecx*2]
lea ecx, [esi + eax]
cmp ecx, edi
jae 0x410f91
cmp byte [esi + eax], 0
mov esi, ecx
jne 0x410f60
mov eax, ebx
inc eax
lea eax, [ebx + ebx + 2]
jns 0x410f9f
mov eax, 0xffffffff
push eax
call fcn.00409510
add esp, 4
mov esi, eax
mov dword [esp + 0x40], 0
lea eax, [eax + ebx*2]
mov dword [esp + 0x14], eax
cmp esi, eax
jae 0x410ffb
mov ebx, dword [esp + 0x18]
cmp ebx, edi
jae 0x410ffb
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp byte [ebx], 0
je 0x410ffb
lea eax, [esp + 0x40]
push eax
push edi
push ebx
call fcn.0040d320
add esp, 0xc
movzx ecx, word [esp + 0x40]
mov word [esi], cx
add esi, 2
cmp esi, dword [esp + 0x14]
jae 0x410ffb
add ebx, eax
cmp ebx, edi
jb 0x410fd0
mov word [esi], 0
mov eax, dword [esp + 0x1c]
lea edi, [eax - 1]
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp byte [edi + 1], 0
lea edi, [edi + 1]
jne 0x411010
xor ebx, ebx
cmp eax, edi
jae 0x411061
cmp byte [eax], 0
je 0x411061
xor ebx, ebx
mov esi, dword [esp + 0x1c]
nop
nop
nop
nop
nop
nop
mov dword [esp + 0x40], 0
lea eax, [esp + 0x40]
push eax
push edi
push esi
call fcn.0040d320
add esp, 0xc
mov ecx, ebx
and ecx, 1
xor ebx, 1
lea ebx, [ebx + ecx*2]
lea ecx, [esi + eax]
cmp ecx, edi
jae 0x411061
cmp byte [esi + eax], 0
mov esi, ecx
jne 0x411030
mov eax, ebx
inc eax
lea eax, [ebx + ebx + 2]
jns 0x41106f
mov eax, 0xffffffff
push eax
call fcn.00409510
add esp, 4
mov esi, eax
mov dword [esp + 0x40], 0
lea eax, [eax + ebx*2]
mov dword [esp + 0x14], eax
cmp esi, eax
jae 0x4110cb
mov ebx, dword [esp + 0x1c]
cmp ebx, edi
jae 0x4110cb
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp byte [ebx], 0
je 0x4110cb
lea eax, [esp + 0x40]
push eax
push edi
push ebx
call fcn.0040d320
add esp, 0xc
movzx ecx, word [esp + 0x40]
mov word [esi], cx
add esi, 2
cmp esi, dword [esp + 0x14]
jae 0x4110cb
add ebx, eax
cmp ebx, edi
jb 0x4110a0
mov word [esi], 0
mov word [esp + 0x40], 0x5d2d
mov byte [esp + 0x42], 0xd4
lea eax, [esp + 0x44]
mov byte [eax + 3], 0
mov dword [eax - 1], 0
mov dword [esp + 8], 0
mov eax, dword [esp + 8]
cmp eax, 7
ja 0x411139
nop
nop
nop
nop
mov eax, dword [esp + 8]
mov ecx, dword [esp + 8]
movzx ecx, byte [esp + ecx + 0x40]
add eax, 0xd6476f1d
xor eax, ecx
mov dword [esp + 0xb8], eax
mov eax, dword [esp + 0xb8]
add al, 0x35
mov ecx, dword [esp + 8]
mov byte [esp + ecx + 0x40], al
inc dword [esp + 8]
mov eax, dword [esp + 8]
cmp eax, 8
jb 0x411100
lea eax, [esp + 0x40]
push eax
push dword [ebp + 8]
call fcn.00402e90
add esp, 8
mov eax, dword [esp + 0x18]
mov esi, eax
lea eax, [esi + 1]
cmp byte [esi], 0
jne 0x41114d
xor edi, edi
mov eax, dword [esp + 0x18]
cmp esi, eax
jbe 0x4111a1
cmp byte [eax], 0
je 0x4111a1
xor edi, edi
mov ebx, dword [esp + 0x18]
nop
nop
nop
nop
mov dword [esp + 0x40], 0
lea eax, [esp + 0x40]
push eax
push esi
push ebx
call fcn.0040d320
add esp, 0xc
mov ecx, edi
and ecx, 1
xor edi, 1
lea edi, [edi + ecx*2]
lea ecx, [ebx + eax]
cmp ecx, esi
jae 0x4111a1
cmp byte [ebx + eax], 0
mov ebx, ecx
jne 0x411170
mov eax, edi
inc eax
lea eax, [edi + edi + 2]
jns 0x4111af
mov eax, 0xffffffff
push eax
call fcn.00409510
add esp, 4
mov dword [esp + 0x40], 0
lea ecx, [eax + edi*2]
mov edi, eax
mov dword [esp + 0x34], eax
mov dword [esp + 0x14], ecx
cmp eax, ecx
jae 0x41121b
mov edi, dword [esp + 0x34]
cmp dword [esp + 0x18], esi
jae 0x41121b
mov edi, dword [esp + 0x34]
mov ebx, dword [esp + 0x18]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp byte [ebx], 0
je 0x41121b
lea eax, [esp + 0x40]
push eax
push esi
push ebx
call fcn.0040d320
add esp, 0xc
movzx ecx, word [esp + 0x40]
mov word [edi], cx
add edi, 2
cmp edi, dword [esp + 0x14]
jae 0x41121b
add ebx, eax
cmp ebx, esi
jb 0x4111f0
mov word [edi], 0
mov eax, dword [esp + 0x1c]
lea esi, [eax - 1]
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp byte [esi + 1], 0
lea esi, [esi + 1]
jne 0x411230
xor edi, edi
mov eax, dword [esp + 0x1c]
cmp eax, esi
jae 0x411281
cmp byte [eax], 0
je 0x411281
xor edi, edi
mov ebx, dword [esp + 0x1c]
nop
nop
mov dword [esp + 0x40], 0
lea eax, [esp + 0x40]
push eax
push esi
push ebx
call fcn.0040d320
add esp, 0xc
mov ecx, edi
and ecx, 1
xor edi, 1
lea edi, [edi + ecx*2]
lea ecx, [ebx + eax]
cmp ecx, esi
jae 0x411281
cmp byte [ebx + eax], 0
mov ebx, ecx
jne 0x411250
mov eax, edi
inc eax
lea eax, [edi + edi + 2]
jns 0x41128f
mov eax, 0xffffffff
push eax
call fcn.00409510
add esp, 4
mov dword [esp + 0x40], 0
lea ecx, [eax + edi*2]
mov edi, eax
mov dword [esp + 0x38], eax
mov dword [esp + 0x14], ecx
cmp eax, ecx
jae 0x4112fb
mov edi, dword [esp + 0x38]
cmp dword [esp + 0x1c], esi
jae 0x4112fb
mov edi, dword [esp + 0x38]
mov ebx, dword [esp + 0x1c]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp byte [ebx], 0
je 0x4112fb
lea eax, [esp + 0x40]
push eax
push esi
push ebx
call fcn.0040d320
add esp, 0xc
movzx ecx, word [esp + 0x40]
mov word [edi], cx
add edi, 2
cmp edi, dword [esp + 0x14]
jae 0x4112fb
add ebx, eax
cmp ebx, esi
jb 0x4112d0
mov word [edi], 0
mov word [esp + 0x40], 0x5d2d
mov byte [esp + 0x42], 0xd4
lea eax, [esp + 0x44]
mov byte [eax + 3], 0
mov dword [eax - 1], 0
mov dword [esp + 8], 0
mov eax, dword [esp + 8]
cmp eax, 7
ja 0x411369
nop
nop
nop
nop
mov eax, dword [esp + 8]
mov ecx, dword [esp + 8]
movzx ecx, byte [esp + ecx + 0x40]
add eax, 0xd6476f1d
xor eax, ecx
mov dword [esp + 0xb8], eax
mov eax, dword [esp + 0xb8]
add al, 0x35
mov ecx, dword [esp + 8]
mov byte [esp + ecx + 0x40], al
inc dword [esp + 8]
mov eax, dword [esp + 8]
cmp eax, 8
jb 0x411330
lea eax, [esp + 0x40]
push eax
push dword [ebp + 8]
call fcn.00402e90
add esp, 8
mov ebx, eax
mov ecx, dword [esp + 0x18]
mov eax, ecx
mov dword [esp + 0x2c], ebx
jmp dword [0x43e5dc]
xor eax, eax
test ebx, ebx
setne al
mov dword [esp + 0x1c], 0
mov dword [esp + 0x18], 0
jmp dword [eax*4 + 0x43e5e4]
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
fld dword [eax]
sbb esp, 0xd97a0040
inc eax
add byte [ebx + 0x350040d9], al
fiadd dword [eax]
adc al, 0xda
inc eax
add byte [edx + ebx*8], dl
inc eax
add byte [edx], bl
fiadd dword [eax]
and dl, bl
inc eax
add byte [ebx], ch
fiadd dword [eax]
and dl, bl
inc eax
add byte [0x780040da], dh
fadd qword [eax]
dec ecx
fiadd dword [eax]
js 0x43e316
inc eax
add byte [ebx - 0x26], ch
inc eax
add byte [eax - 0x24], bh
inc eax
add byte [edx - 0x24], dh
inc eax
add byte [ebx - 0x6affbf24], cl
out 0x40, al
add byte [edi], al
loop 0x43e393
add byte [ebx], ch
jmp 0x43e397
add byte [ecx + 0x40], cl
add byte [ebx + 0x4c0040de], dh
loope 0x43e3df
add byte [edx + 0x3d0040dc], bl
in al, dx
inc eax
add al, ch
sbb eax, dword [ecx]
call 0x814424cc
in al, dx
inc eax
add byte [edi], dl
in eax, dx
inc eax
add byte [eax - 0x14], ah
inc eax
add bl, dl
in eax, dx
inc eax
add byte [eax - 0x1dffbf10], ah
in eax, dx
inc eax
add dh, al
int1
inc eax
add byte [eax - 0x14], ah
inc eax
add bh, ch
in eax, dx
inc eax
add byte [esi - 0x43ffbf10], ch
inc eax
add byte [eax - 0x14], ah
inc eax
add cl, cl
inc eax
add al, dl
inc eax
add al, dl
inc eax
add al, dl
inc eax
add dl, dl
inc eax
add ch, bl
cmc
inc eax
add byte [ecx - 0xc], ch
inc eax
add ch, bl
cmc
inc eax
add cl, ah
hlt