Function at 0x40f048
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff8
sub esp, 0xcb8
mov ecx, dword [0x43c814]
mov dword [esp + 0xc0], 0x236f9b46
mov byte [esp + 0xc4], 0
mov dword [esp + 0x1c0], 0
mov eax, dword [esp + 0x1c0]
cmp eax, 4
ja 0x40d64a
nop
mov eax, dword [esp + 0x1c0]
mov edx, dword [esp + 0x1c0]
movzx edx, byte [esp + edx + 0xc0]
add eax, 0x14408
xor eax, edx
mov dword [esp + 0x2a8], eax
mov eax, dword [esp + 0x2a8]
mov edx, eax
not edx
and edx, 0x28
and eax, 0xd7
sub eax, edx
mov edx, dword [esp + 0x1c0]
mov byte [esp + edx + 0xc0], al
inc dword [esp + 0x1c0]
mov eax, dword [esp + 0x1c0]
cmp eax, 5
jb 0x40d5f0
mov edx, dword [str.WpM2Co__TRAX]
mov dword [esp + 0x2a8], 0x722a6669
mov dword [esp + 0x2ac], 0x5a5d582a
mov dword [esp + 0x2b0], 0x2a5d5c2a
mov dword [esp + 0x2b4], 0x5a252251
mov dword [esp + 0x2b8], 0x3d8c5453
mov dword [esp + 0x2bc], 0x7f673b49
mov dword [esp + 0x2c0], 0x3b847172
mov dword [esp + 0x2c4], 0xab6f4145
mov word [esp + 0x2c8], 0
mov dword [esp + 0x24], 0
mov eax, dword [esp + 0x24]
cmp eax, 0x21
ja 0x40d70f
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp + 0x24]
mov esi, dword [esp + 0x24]
movzx esi, byte [esp + esi + 0x2a8]
add eax, 0xb352ce5e
xor eax, esi
mov dword [esp + 0x1c0], eax
mov eax, dword [esp + 0x1c0]
add al, 0x2a
mov esi, dword [esp + 0x24]
mov byte [esp + esi + 0x2a8], al
inc dword [esp + 0x24]
mov eax, dword [esp + 0x24]
cmp eax, 0x22
jb 0x40d6d0
movzx ebx, byte [esp + 0x2a8]
lea eax, [esp + 0x1c0]
test bl, bl
je 0x40d73b
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 0x40d730
mov byte [eax], 0
movzx ebx, byte [edx]
test bl, bl
je 0x40d75b
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 0x40d750
mov byte [eax], 0
movzx edx, byte [esp + 0xc0]
test dl, dl
je 0x40d78b
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 0x40d780
mov byte [eax], 0
movzx edx, byte [ecx]
test dl, dl
je 0x40d7ab
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 0x40d7a0
mov byte [eax], 0
mov dword [esp + 0x2a8], 0x832d8143
mov dword [esp + 0x2ac], 0x8732852a
mov dword [esp + 0x2b0], 0x8b24892d
mov dword [esp + 0x2b4], 0x8f638d38
mov dword [esp + 0x2b8], 0x932b9144
mov dword [esp + 0x2bc], 0x97339524
mov dword [esp + 0x2c0], 0x9b7a9962
mov dword [esp + 0x2c4], 0x9f2e9d3d
mov dword [esp + 0x2c8], 0x63ce61d0
mov dword [esp + 0x2cc], 0x67c565cd
mov dword [esp + 0x2d0], 0x6bde69c9
mov dword [esp + 0x2d4], 0x6fc16dc5
mov dword [esp + 0x2d8], 0x739d71de
mov dword [esp + 0x2dc], 0x779b75cc
mov dword [esp + 0x2e0], 0x7bcd79cf
mov dword [esp + 0x2e4], 0x7f937dcb
mov dword [esp + 0x2e8], 0x43ed41e6
mov dword [esp + 0x2ec], 0x47eb45f6
mov dword [esp + 0x2f0], 0x4bff49a5
mov dword [esp + 0x2f4], 0x4fe24dfe
mov dword [esp + 0x2f8], 0x53fc51f5
mov dword [esp + 0x2fc], 0x57f955f7
mov dword [esp + 0x300], 0x5bff59fc
mov dword [esp + 0x304], 0x5f535df8
mov dword [esp + 0x308], 0x2322212a
mov word [esp + 0x30c], 0
lea ecx, [esp + 0x1c0]
mov dword [esp + 0x24], 0
mov edx, dword [esp + 0x24]
cmp edx, 0x65
ja 0x40d931
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov edx, dword [esp + 0x24]
mov esi, dword [esp + 0x24]
movzx esi, byte [esp + esi + 0x2a8]
add edx, 0x1795860
xor edx, esi
mov dword [esp + 0xc0], edx
mov edx, dword [esp + 0xc0]
add dl, 0x20
mov esi, dword [esp + 0x24]
mov byte [esp + esi + 0x2a8], dl
inc dword [esp + 0x24]
mov edx, dword [esp + 0x24]
cmp edx, 0x66
jb 0x40d8f0
sub eax, ecx
mov dword [esp + 0xc0], 0x19b51b6d
mov dword [esp + 0xc4], 0x65d167a8
mov word [esp + 0xc8], 0x6364
mov dword [esp + 0xca], 0
mov byte [esp + 0xce], 0
mov dword [esp + 0x240], 0
mov edx, dword [esp + 0x240]
cmp edx, 0xe
ja 0x40d9d7
nop
nop
nop
mov edx, dword [esp + 0x240]
mov esi, dword [esp + 0x240]
movzx esi, byte [esp + esi + 0xc0]
lea edi, [edx + esi]
add edi, 0xd5824ebb
add edx, 0xd5824ebb
and edx, esi
add edx, edx
sub edi, edx
mov dword [esp + 0x24], edi
mov edx, dword [esp + 0x24]
add dl, 0x59
mov esi, dword [esp + 0x240]
mov byte [esp + esi + 0xc0], dl
inc dword [esp + 0x240]
mov edx, dword [esp + 0x240]
cmp edx, 0xf
jb 0x40d980
lea edx, [esp + 0xb8]
lea esi, [esp + 0xa8]
lea edi, [esp + 0x2a8]
lea ebx, [esp + 0xc0]
push edx
push esi
push eax
push ecx
push edi
push ebx
push 0x441be8
call fcn.0040c280
add esp, 0x1c
movzx eax, al
jmp dword [eax*4 + 0x43d1a8]
xor esi, esi
xor eax, eax
test esi, 0
sete al
jmp dword [eax*4 + 0x43d1b0]
push 0x104
push edi
call dword [sym.imp.KERNEL32.dll_GetSystemDirectoryW]
mov ecx, dword [esp + 0xb8]
mov edi, dword [esp + 0xa8]
lea eax, [ecx + ecx*2]
shr eax, 2
movzx edx, byte [edi + ecx - 1]
cmp edx, 0x3d
je 0x40da53
cmp edx, 0x2e
jne 0x40da54
dec eax
mov edx, ecx
not edx
and edx, 2
and ecx, 0xfffffffd
sub ecx, edx
movzx ecx, byte [edi + ecx]
cmp ecx, 0x3d
je 0x40da6e
cmp ecx, 0x2e
jne 0x40da6f
dec eax
push eax
call fcn.004097d0
add esp, 4
mov esi, eax
push eax
push edi
call fcn.00430780
add esp, 8
push dword [esp + 0xa8]
call fcn.00433600
add esp, 4
xor eax, eax
test esi, esi
sete al
lea edi, [esp + 0x2a8]
jmp dword [eax*4 + 0x43d1b0]
push esi
call fcn.004025a0
add esp, 4
mov dword [esp + 0x20], eax
jmp dword [0x43d1b8]
jmp dword [0x43d1c4]
push 0
call fcn.00436dc0
add esp, 4
xor ecx, ecx
test eax, eax
setne cl
jmp dword [ecx*4 + 0x43d230]
mov dword [esp + 0x24], 0x61f167f9
mov dword [esp + 0x28], 0x5db463fc
mov dword [esp + 0x2c], 0x59d65fc3
mov dword [esp + 0x30], 0x55ba5bc7
mov dword [esp + 0x34], 0x51db57b6
mov dword [esp + 0x38], 0x4df153dc
mov dword [esp + 0x3c], 0x49c24fde
mov dword [esp + 0x40], 0x459b4ba8
mov dword [esp + 0x44], 0x41dd47d3
mov dword [esp + 0x48], 0x3da243d6
mov dword [esp + 0x4c], 0x39a93fa1
mov dword [esp + 0x50], 0x35ec3ba4
mov dword [esp + 0x54], 0x31be37ab
mov dword [esp + 0x58], 0x2dd233af
mov dword [esp + 0x5c], 0x29ff2fce
mov dword [esp + 0x60], 0x25ca2bb5
mov dword [esp + 0x64], 0x21bd27a8
mov dword [esp + 0x68], 0x1dbd23b7
mov dword [esp + 0x6c], 0x19911f8d
mov dword [esp + 0x70], 0x15fa1b94
mov dword [esp + 0x74], 0x119a17c5
mov dword [esp + 0x78], 0xddf13f0
mov dword [esp + 0x7c], 0x9df0fec
mov dword [esp + 0x80], 0x59b0b9e
mov dword [esp + 0x84], 0x19407a6
mov dword [esp + 0x88], 0xfda1039f
mov dword [esp + 0x8c], 0xf91eff69
mov dword [esp + 0x90], 0xf51afb26
mov dword [esp + 0x94], 0xf169f768
mov dword [esp + 0x98], 0xed12f364
mov dword [esp + 0x9c], 0xe9eeef0e
mov dword [esp + 0xc], 0
mov ecx, dword [esp + 0xc]
cmp ecx, 0x7b
ja 0x40dc3b
nop
nop
nop
nop
nop
nop
mov ecx, dword [esp + 0xc]
mov edx, dword [esp + 0xc]
movzx edx, byte [esp + edx + 0x24]
add ecx, 0x316d1919
xor ecx, edx
mov dword [esp + 0x2a8], ecx
mov ecx, dword [esp + 0x2a8]
add cl, 0x83
mov edx, dword [esp + 0xc]
mov byte [esp + edx + 0x24], cl
inc dword [esp + 0xc]
mov ecx, dword [esp + 0xc]
cmp ecx, 0x7c
jb 0x40dc00
movzx ecx, word [esp + 0x24]
test cx, cx
je 0x40dc61
lea edi, [esp + 0x2a8]
lea edx, [esp + 0x26]
mov word [edi], cx
add edi, 2
movzx ecx, word [edx]
add edx, 2
test cx, cx
jne 0x40dc50
mov word [edi], 0
movzx ecx, word [eax]
test cx, cx
je 0x40dc91
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 0x40dc80
mov dword [edi], 0x220022
mov dword [edi + 4], 0x22
mov dword [esp + 0x64], 0
mov dword [esp + 0x60], 0
mov dword [esp + 0x5c], 0
mov dword [esp + 0x58], 0
mov dword [esp + 0x54], 0
mov dword [esp + 0x4c], 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], 0x44
mov dword [esp + 0x50], 1
push 0xc9be8534
push dword [0x442ef0]
call fcn.00436eb0
add esp, 8
lea ecx, [esp + 0xc]
lea edx, [esp + 0x2a8]
push ecx
lea ecx, [esp + 0x28]
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 + 0x43d238]
mov eax, dword [esp + 0xc]
mov dword [esp + 4], 0xb4b58a8b
mov word [esp + 8], 0
mov byte [esp + 0xa], 0
mov dword [esp + 0x1c], 0
mov ecx, dword [esp + 0x1c]
cmp ecx, 6
ja 0x40dddb
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov ecx, dword [esp + 0x1c]
mov edx, dword [esp + 0x1c]
movzx edx, byte [esp + edx + 4]
add ecx, 0x6e85675e
xor ecx, edx
mov dword [esp + 0xbc], ecx
mov ecx, dword [esp + 0xbc]
add cl, 0x2a
mov edx, dword [esp + 0x1c]
mov byte [esp + edx + 4], cl
inc dword [esp + 0x1c]
mov ecx, dword [esp + 0x1c]
cmp ecx, 7
jb 0x40dda0
mov ecx, dword [0x442efc]
test ecx, ecx
je case.0x40e810.4
mov edx, dword [esp + 4]
xor esi, esi
mov edi, dword [0x442f00]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp dword [edi + esi*8], 0x625b6034
je 0x40de10
inc esi
cmp ecx, esi
jne 0x40de00
jmp case.0x40e810.4
mov ecx, dword [edi + esi*8 + 4]
cmp ecx, edx
je case.0x40e810.4
push eax
push 1
push dword [0x442f04]
push ecx
call fcn.00435810
add esp, 0x10
jmp case.0x40e810.0
push esi
call fcn.00422b90
add esp, 4
lea ecx, [esp + 0xaa8]
call fcn.0040a7f0
mov dword [esp + 0x24], 0xc6f3c38e
mov dword [esp + 0x28], 0x6eaccc
mov dword [esp + 0xc0], 0
mov eax, dword [esp + 0xc0]
cmp eax, 7
ja 0x40deb8
nop
nop
nop
nop
nop
mov eax, dword [esp + 0xc0]
mov ecx, dword [esp + 0xc0]
movzx ecx, byte [esp + ecx + 0x24]
add eax, 0xd5ef7597
xor eax, ecx
mov dword [esp + 0x2a8], eax
mov eax, dword [esp + 0x2a8]
add al, 0xd
mov ecx, dword [esp + 0xc0]
mov byte [esp + ecx + 0x24], al
inc dword [esp + 0xc0]
mov eax, dword [esp + 0xc0]
cmp eax, 8
jb 0x40de70
mov eax, dword [0x43c814]
mov dword [esp + 0xc], 0x4181ad6a
mov byte [esp + 0x10], 0
mov dword [esp + 0xc0], 0
mov ecx, dword [esp + 0xc0]
cmp ecx, 4
ja 0x40df3a
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov ecx, dword [esp + 0xc0]
mov edx, dword [esp + 0xc0]
movzx edx, byte [esp + edx + 0xc]
add ecx, 0x14411
xor ecx, edx
mov dword [esp + 0x2a8], ecx
mov ecx, dword [esp + 0x2a8]
add cl, 0xab
mov edx, dword [esp + 0xc0]
mov byte [esp + edx + 0xc], cl
inc dword [esp + 0xc0]
mov ecx, dword [esp + 0xc0]
cmp ecx, 5
jb 0x40def0
mov ecx, dword [str.WpM2Co__TRAX]
mov dword [esp + 0x2a8], 0xde0a3a3f
mov dword [esp + 0x2ac], 0x34063409
mov dword [esp + 0x2b0], 0x1c03300b
mov dword [esp + 0x2b4], 0xeb2d122b
mov dword [esp + 0x2b8], 0xce1c281a
mov dword [esp + 0x2bc], 0xe3d2ddd4
mov dword [esp + 0x2c0], 0xb6221c18
mov byte [esp + 0x2c4], 0xf8
mov dword [esp + 0x2c5], 0
mov byte [esp + 0x2c9], 0
mov dword [esp + 4], 0
mov edx, dword [esp + 4]
cmp edx, 0x21
ja 0x40e001
nop
nop
nop
nop
nop
nop
nop
mov edx, dword [esp + 4]
mov esi, dword [esp + 4]
movzx esi, byte [esp + esi + 0x2a8]
add edx, 0xdaa92da5
xor edx, esi
mov dword [esp + 0xc0], edx
mov edx, dword [esp + 0xc0]
add dl, 0xc7
mov esi, dword [esp + 4]
mov byte [esp + esi + 0x2a8], dl
inc dword [esp + 4]
mov edx, dword [esp + 4]
cmp edx, 0x22
jb 0x40dfc0
movzx edx, byte [esp + 0x2a8]
test dl, dl
je 0x40e02b
lea ebx, [esp + 0xc0]
lea esi, [esp + 0x2a9]
nop
nop
nop
nop
nop
mov byte [ebx], dl
inc ebx
movzx edx, byte [esi]
inc esi
test dl, dl
jne 0x40e020
mov byte [ebx], 0
movzx edx, byte [ecx]
test dl, dl
je 0x40e04b
inc ecx
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov byte [ebx], dl
inc ebx
movzx edx, byte [ecx]
inc ecx
test dl, dl
jne 0x40e040
mov byte [ebx], 0
movzx ecx, byte [esp + 0xc]
test cl, cl
je 0x40e06b
lea edx, [esp + 0xd]
nop
nop
nop
nop
nop
mov byte [ebx], cl
inc ebx
movzx ecx, byte [edx]
inc edx
test cl, cl
jne 0x40e060
mov byte [ebx], 0
movzx ecx, byte [eax]
test cl, cl
je 0x40e08b
inc eax
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov byte [ebx], cl
inc ebx
movzx ecx, byte [eax]
inc eax
test cl, cl
jne 0x40e080
mov byte [ebx], 0
movzx eax, byte [esp + 0x24]
test al, al
je 0x40e0ab
lea ecx, [esp + 0x25]
nop
nop
nop
nop
nop
mov byte [ebx], al
inc ebx
movzx eax, byte [ecx]
inc ecx
test al, al
jne 0x40e0a0
mov byte [ebx], 0
movzx eax, byte [0x441b88]
test al, al
je 0x40e0d1
xor ecx, ecx
nop
nop
nop
nop
nop
mov byte [ebx + ecx], al
movzx eax, byte [ecx + 0x441b89]
inc ecx
test al, al
jne 0x40e0c0
add ebx, ecx
mov byte [ebx], 0
mov dword [esp + 0x2a8], 0xe91beb21
mov dword [esp + 0x2ac], 0xed1aef1a
mov dword [esp + 0x2b0], 0xf100f307
mov dword [esp + 0x2b4], 0xf5c5f704
mov dword [esp + 0x2b8], 0xf905fb20
mov dword [esp + 0x2bc], 0xfd15ff08
mov dword [esp + 0x2c0], 0x81a283c2
mov dword [esp + 0x2c4], 0x85768767
mov dword [esp + 0x2c8], 0x89668b74
mov dword [esp + 0x2cc], 0x8d6b8f67
mov dword [esp + 0x2d0], 0x9166936b
mov dword [esp + 0x2d4], 0x9567977f
mov dword [esp + 0x2d8], 0x99ab9b66
mov dword [esp + 0x2dc], 0x9dad9f60
mov dword [esp + 0x2e0], 0xa15ba365
mov dword [esp + 0x2e4], 0xa595a759
mov dword [esp + 0x2e8], 0xa95bab4e
mov dword [esp + 0x2ec], 0xad5daf5e
mov dword [esp + 0x2f0], 0xb149b39f
mov dword [esp + 0x2f4], 0xb55ab746
mov dword [esp + 0x2f8], 0xb948bb5f
mov dword [esp + 0x2fc], 0xbd4fbf5d
mov dword [esp + 0x300], 0x41a94358
mov dword [esp + 0x304], 0x455547a4
mov dword [esp + 0x308], 0x494a4b4a
mov word [esp + 0x30c], 0
lea eax, [esp + 0xc0]
mov dword [esp + 0xc], 0
mov ecx, dword [esp + 0xc]
cmp ecx, 0x65
ja 0x40e255
nop
nop
nop
nop
nop
nop
nop
mov ecx, dword [esp + 0xc]
mov edx, dword [esp + 0xc]
movzx edx, byte [esp + edx + 0x2a8]
lea esi, [ecx + edx]
add ecx, 0x27
and ecx, edx
add ecx, ecx
sub esi, ecx
add esi, 0x2962f527
mov dword [esp + 0x24], esi
mov ecx, dword [esp + 0x24]
add cl, 0x3d
mov edx, dword [esp + 0xc]
mov byte [esp + edx + 0x2a8], cl
inc dword [esp + 0xc]
mov ecx, dword [esp + 0xc]
cmp ecx, 0x66
jb 0x40e210
sub ebx, eax
mov dword [esp + 0x24], 0x77d7798b
mov dword [esp + 0x28], 0x73cb75c4
mov word [esp + 0x2c], 0x7170
mov dword [esp + 0x2e], 0
mov word [esp + 0x32], 0
mov dword [esp + 4], 0
mov ecx, dword [esp + 4]
cmp ecx, 0xf
ja 0x40e2d1
nop
nop
mov ecx, dword [esp + 4]
mov edx, dword [esp + 4]
movzx edx, byte [esp + edx + 0x24]
add ecx, 0x51c1d096
xor ecx, edx
mov dword [esp + 0xc], ecx
mov ecx, dword [esp + 0xc]
mov edx, ecx
not edx
and edx, 0xee
and ecx, 0x11
sub ecx, edx
mov edx, dword [esp + 4]
mov byte [esp + edx + 0x24], cl
inc dword [esp + 4]
mov ecx, dword [esp + 4]
cmp ecx, 0x10
jb 0x40e290
lea ecx, [esp + 0xb4]
lea edx, [esp + 0xa4]
lea esi, [esp + 0x24]
push ecx
push edx
push ebx
push eax
push edi
push esi
push 0x441be8
call fcn.0040c280
add esp, 0x1c
movzx eax, al
jmp dword [eax*4 + 0x43d1e8]
xor ebx, ebx
xor eax, eax
test ebx, 0
setne al
jmp dword [eax*4 + 0x43d1f0]
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 0x40e337
cmp edx, 0x2e
jne 0x40e338
dec eax
mov edx, ecx
not edx
and edx, 2
and ecx, 0xfffffffd
sub ecx, edx
movzx ecx, byte [esi + ecx]
cmp ecx, 0x3d
je 0x40e352
cmp ecx, 0x2e
jne 0x40e353
dec eax
push eax
call fcn.004097d0
add esp, 4
mov ebx, eax
push eax
push esi
call fcn.00430780
add esp, 8
push dword [esp + 0xa4]
call fcn.00433600
add esp, 4
xor eax, eax
test ebx, ebx
setne al
jmp dword [eax*4 + 0x43d1f0]
jmp dword [0x43d1fc]
jmp dword [0x43d210]
push dword [esp + 0x20]
call fcn.004035f0
add esp, 4
xor eax, eax
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
mov word [esp + 0x2a8], 0xddd1
mov byte [esp + 0x2aa], 0x72
mov word [esp + 0x2ab], 0
mov dword [esp + 0x24], 0
mov eax, dword [esp + 0x24]
cmp eax, 4
ja 0x40e41f
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp + 0x24]
mov ecx, dword [esp + 0x24]
movzx ecx, byte [esp + ecx + 0x2a8]
add eax, 0x14414
xor eax, ecx
mov dword [esp + 0xc0], eax
mov eax, dword [esp + 0xc0]
add al, 0x9c
mov ecx, dword [esp + 0x24]
mov byte [esp + ecx + 0x2a8], al
inc dword [esp + 0x24]
mov eax, dword [esp + 0x24]
cmp eax, 5
jb 0x40e3e0
push edi
push esi
call fcn.004031a0
add esp, 8
mov dword [esp + 0xa0], eax
mov word [esp + 0x2a8], 0xece3
mov byte [esp + 0x2aa], 0x72
mov dword [esp + 0x2ab], 0
mov byte [esp + 0x2af], 0
mov dword [esp + 0x24], 0
mov eax, dword [esp + 0x24]
cmp eax, 7
ja 0x40e4af
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp + 0x24]
mov ecx, dword [esp + 0x24]
movzx ecx, byte [esp + ecx + 0x2a8]
add eax, 0xec9246ec
xor eax, ecx
mov dword [esp + 0xc0], eax
mov eax, dword [esp + 0xc0]
add al, 0x64
mov ecx, dword [esp + 0x24]
mov byte [esp + ecx + 0x2a8], al
inc dword [esp + 0x24]
mov eax, dword [esp + 0x24]
cmp eax, 8
jb 0x40e470
push edi
push esi
call fcn.004031a0
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.0040e8b0
add esp, 4
push dword [esp + 0x20]
call fcn.004035f0
add esp, 4
lea esi, [esp + 0x240]
mov ecx, esi
push 1
call fcn.00409f50
push esi
call fcn.0041b0b0
add esp, 4
mov ecx, esi
call fcn.0040a7f0
lea esi, [esp + 0xc48]
mov ecx, esi
push 3
call fcn.00409f50
push esi
call fcn.0041b920
add esp, 4
mov ecx, esi
call fcn.0040a7f0
lea esi, [esp + 0xbe0]
mov ecx, esi
push 1
call fcn.00409f50
push esi
call fcn.0041bbc0
add esp, 4
mov ecx, esi
call fcn.0040a7f0
lea esi, [esp + 0xb78]
mov ecx, esi
push 1
call fcn.00409f50
push esi
call fcn.0041d890
add esp, 4
push esi
call fcn.0041e120
add esp, 4
push esi
call fcn.0041e590
add esp, 4
mov ecx, esi
call fcn.0040a7f0
lea esi, [esp + 0xb10]
mov ecx, esi
push 1
call fcn.00409f50
push esi
call fcn.00420550
add esp, 4
mov ecx, esi
call fcn.0040a7f0
lea esi, [esp + 0xaa8]
mov ecx, esi
push 1
call fcn.00409f50
push esi
call fcn.00425300
add esp, 4
push esi
call fcn.0042bda0
add esp, 4
mov eax, dword [esp + 0xac]
jmp dword [eax*4 + 0x43d1e0]
push dword [esp + 0x20]
call fcn.00403050
add esp, 4
mov esi, eax
mov word [esp + 0x2a8], 0x1c12
mov byte [esp + 0x2aa], 0xb6
mov dword [esp + 0x2ab], 0
mov byte [esp + 0x2af], 0
mov dword [esp + 0x24], 0
mov eax, dword [esp + 0x24]
cmp eax, 7
ja 0x40e65c
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp + 0x24]
mov ecx, dword [esp + 0x24]
movzx ecx, byte [esp + ecx + 0x2a8]
lea edx, [eax + ecx]
add eax, 0xde
and eax, ecx
add eax, eax
sub edx, eax
add edx, 0xa4292cde
mov dword [esp + 0xc0], edx
mov eax, dword [esp + 0xc0]
add al, 0xaa
mov ecx, dword [esp + 0x24]
mov byte [esp + ecx + 0x2a8], al
inc dword [esp + 0x24]
mov eax, dword [esp + 0x24]
cmp eax, 8
jb 0x40e610
push edi
push esi
call fcn.004031a0
add esp, 8
xor ecx, ecx
test eax, eax
setg cl
jmp dword [ecx*4 + 0x43d1d0]
call fcn.0042f220
movzx eax, al
jmp dword [eax*4 + 0x43d1d8]
push esi
call fcn.00411aa0
add esp, 4
push esi
call fcn.00411aa0
add esp, 4
jmp dword [0x43d218]
push esi
call fcn.004035f0
add esp, 4
mov dword [esp + 0x2a8], 0xb1e7ede8
mov byte [esp + 0x2ac], 0
mov dword [esp + 0xc], 0
mov eax, dword [esp + 0xc]
cmp eax, 4
mov edx, dword [esp + 0xb0]
ja 0x40e709
nop
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0xc]
movzx ecx, byte [esp + ecx + 0x2a8]
add eax, 0x1441d
xor eax, ecx
mov dword [esp + 0x24], eax
mov eax, dword [esp + 0x24]
add al, 0x6f
mov ecx, dword [esp + 0xc]
mov byte [esp + ecx + 0x2a8], al
inc dword [esp + 0xc]
mov eax, dword [esp + 0xc]
cmp eax, 5
jb 0x40e6d0
push edi
push edx
call fcn.004031a0
add esp, 8
xor ecx, ecx
test eax, eax
setg cl
jmp dword [ecx*4 + 0x43d220]
xor eax, eax
cmp dword [esp + 0xa0], 0
setg al
jmp dword [eax*4 + 0x43d228]
lea ecx, [esp + 0x2a8]
push 1
call fcn.00409f50
mov eax, 0xffffffff
nop
nop
nop
nop
nop
nop
nop
nop
cmp byte [eax + 0x441ef1], 0
lea eax, [eax + 1]
jne 0x40e750
mov dword [esp + 0x24], 0x7a4844a4
mov dword [esp + 0x28], 0x7b7e874f
mov dword [esp + 0x2c], 0xf17c
mov byte [esp + 0x30], 0
mov dword [esp + 4], 0
mov ecx, dword [esp + 4]
cmp ecx, 0xc
ja 0x40e7dc
nop
nop
nop
nop
nop
nop
mov ecx, dword [esp + 4]
mov edx, dword [esp + 4]
movzx esi, byte [esp + edx + 0x24]
lea edx, [ecx + esi]
add edx, 0x1281b2d6
add ecx, 0x1281b2d6
and ecx, esi
mov esi, edx
not esi
and esi, ecx
add esi, ecx
not ecx
and ecx, edx
sub ecx, esi
mov dword [esp + 0xc], ecx
mov ecx, dword [esp + 0xc]
add cl, 0xd2
mov edx, dword [esp + 4]
mov byte [esp + edx + 0x24], cl
inc dword [esp + 4]
mov ecx, dword [esp + 4]
cmp ecx, 0xd
jb 0x40e790
lea esi, [esp + 0x2a8]
mov ecx, esi
push eax
push 0x441ef0
lea eax, [esp + 0x2c]
push eax
call fcn.0040a150
mov ecx, esi
call fcn.0040a7f0
mov ecx, esi
call fcn.00409f90
xor eax, eax
cmp dword [esp + 0xa0], 0
setg al
jmp dword [eax*4 + 0x43d228]
lea ecx, [esp + 0xaa8]
call fcn.00409f90
lea ecx, [esp + 0xb10]
call fcn.00409f90
lea ecx, [esp + 0xb78]
call fcn.00409f90
lea ecx, [esp + 0xbe0]
call fcn.00409f90
lea ecx, [esp + 0xc48]
call fcn.00409f90
lea ecx, [esp + 0x240]
call fcn.00409f90
mov al, 1
jmp 0x40e39f
push esi
call fcn.004097e0
add esp, 4
push esi
call fcn.004097e0
add esp, 4
jmp dword [0x43d1cc]
push ebx
call fcn.004025a0
add esp, 4
push ebx
call fcn.004025a0
add esp, 4
jmp dword [0x43d204]
mov esi, eax
jmp dword [0x43d208]
push ebx
call fcn.004097e0
add esp, 4
jmp dword [0x43d210]
xor edi, edi
mov dword [esp + 0x48], ebx
jmp 0x40e971
xor eax, eax
jmp dword [0x43d254]
nop
nop
nop
nop
nop
nop
nop
nop
inc edi
push ebx
call fcn.004035b0
add esp, 4
xor ecx, ecx
cmp edi, eax
setb cl
jmp dword [ecx*4 + 0x43d258]
push edi
push ebx
call fcn.004035c0
add esp, 8
mov dword [esp + 0x10], eax
mov word [esp + 0x50], 0xbb10
mov dword [esp + 0x52], 0
mov dword [esp + 4], 0
mov eax, dword [esp + 4]
cmp eax, 5
ja 0x40e9f9
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 + 0x50]
add eax, 0x58f8e15f
xor eax, ecx
mov dword [esp + 0xc4], eax
mov eax, dword [esp + 0xc4]
add al, 0x25
mov ecx, dword [esp + 4]
mov byte [esp + ecx + 0x50], al
inc dword [esp + 4]
mov eax, dword [esp + 4]
cmp eax, 6
jb 0x40e9c0
push 3
lea eax, [esp + 0x54]
push eax
push dword [esp + 0x18]
call fcn.00403490
add esp, 0xc
xor ecx, ecx
test eax, eax
sete cl
jmp dword [ecx*4 + 0x43d270]
mov word [esp + 0x50], 0x61f4
lea eax, [esp + 0x54]
mov byte [eax], 0
mov word [eax - 2], 0
mov dword [esp + 4], 0
mov eax, dword [esp + 4]
cmp eax, 4
ja 0x40ea82
nop
mov eax, dword [esp + 4]
mov ecx, dword [esp + 4]
movzx ecx, byte [esp + ecx + 0x50]
lea edx, [eax + 0x18]
and edx, ecx
add eax, ecx
add edx, edx
sub eax, edx
add eax, 0x14418
mov dword [esp + 0xc4], eax
mov eax, dword [esp + 0xc4]
add al, 0x88
mov ecx, dword [esp + 4]
mov byte [esp + ecx + 0x50], al
inc dword [esp + 4]
mov eax, dword [esp + 4]
cmp eax, 5
jb 0x40ea40
lea eax, [esp + 0x50]
push eax
push dword [esp + 0x14]
call fcn.00402f40
add esp, 8
fnstcw word [esp + 0x124]
movzx eax, word [esp + 0x124]
or eax, 0xc00
mov word [esp + 0x12e], ax
fldcw word [esp + 0x12e]
fistp dword [esp + 0x140]
fldcw word [esp + 0x124]
mov eax, dword [esp + 0x140]
xor ecx, ecx
cmp eax, 2
setl cl
jmp dword [ecx*4 + 0x43d278]
xor ecx, ecx
cmp eax, 3
setl cl
jmp dword [ecx*4 + 0x43d280]
sete al
movzx eax, al
jmp dword [eax*4 + 0x43d288]
mov word [esp + 0x50], 0x5bbd
mov dword [esp + 0x52], 0
mov dword [esp + 4], 0
mov eax, dword [esp + 4]
cmp eax, 5
ja 0x40eb59
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 + 0x50]
add eax, 0xfa91e10f
xor eax, ecx
mov dword [esp + 0xc4], eax
mov eax, dword [esp + 0xc4]
add al, 0xb5
mov ecx, dword [esp + 4]
mov byte [esp + ecx + 0x50], al
inc dword [esp + 4]
mov eax, dword [esp + 4]
cmp eax, 6
jb 0x40eb20
push 2
lea eax, [esp + 0x54]
push eax
push dword [esp + 0x18]
call fcn.00403490
add esp, 0xc
xor ecx, ecx
test eax, eax
setne cl
jmp dword [ecx*4 + 0x43d348]
mov word [esp + 0xc4], 0xdb74
lea eax, [esp + 0xc6]
mov byte [eax + 2], 0
mov word [eax], 0
mov dword [esp + 0x18], 0
mov eax, dword [esp + 0x18]
cmp eax, 4
ja 0x40ebe9
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 + 0xc4]
add eax, 0x1442f
xor eax, ecx
mov dword [esp + 0x2c], eax
mov eax, dword [esp + 0x2c]
add al, 0x15
mov ecx, dword [esp + 0x18]
mov byte [esp + ecx + 0xc4], al
inc dword [esp + 0x18]
mov eax, dword [esp + 0x18]
cmp eax, 5
jb 0x40ebb0
push 2
lea eax, [esp + 0xc8]
push eax
push dword [esp + 0x18]
call fcn.00403490
add esp, 0xc
xor ecx, ecx
test eax, eax
setne cl
jmp dword [ecx*4 + 0x43d350]
jmp dword [0x43d35c]
mov word [esp + 4], 0xb7f
lea eax, [esp + 6]
mov word [eax + 4], 0
mov dword [eax], 0
mov dword [esp + 0x18], 0
mov eax, dword [esp + 0x18]
cmp eax, 7
ja 0x40ec73
nop
nop
nop
nop
nop
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x18]
movzx ecx, byte [esp + ecx + 4]
add eax, 0x21062303
xor eax, ecx
mov dword [esp + 0x2c], eax
mov eax, dword [esp + 0x2c]
add al, 0xf1
mov ecx, dword [esp + 0x18]
mov byte [esp + ecx + 4], al
inc dword [esp + 0x18]
mov eax, dword [esp + 0x18]
cmp eax, 8
jb 0x40ec40
push 5
lea eax, [esp + 8]
push eax
push dword [esp + 0x18]
call fcn.00403490
add esp, 0xc
jmp case.0x40ec06.3
push 5
lea eax, [esp + 8]
push eax
push dword [esp + 0x18]
call fcn.00403490
add esp, 0xc
jmp dword [0x43d360]
mov word [esp + 4], 0xb7f
lea eax, [esp + 6]
mov word [eax + 4], 0
mov dword [eax], 0
mov dword [esp + 0x18], 0
mov eax, dword [esp + 0x18]
cmp eax, 7
ja 0x40ec90
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 + 4]
add eax, 0x21062303
xor eax, ecx
mov dword [esp + 0x2c], eax
mov eax, dword [esp + 0x2c]
add al, 0xf1
mov ecx, dword [esp + 0x18]
mov byte [esp + ecx + 4], al
inc dword [esp + 0x18]
mov eax, dword [esp + 0x18]
cmp eax, 8
jb 0x40ece0
jmp 0x40ec90
xor ecx, ecx
test eax, eax
setle cl
jmp dword [ecx*4 + 0x43d290]
mov word [esp + 0x50], 0x978
lea eax, [esp + 0x54]
mov word [eax + 2], 0
mov dword [eax - 2], 0
mov dword [esp + 4], 0
mov eax, dword [esp + 4]
cmp eax, 7
ja 0x40eda4
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp + 4]
mov ecx, dword [esp + 4]
movzx ecx, byte [esp + ecx + 0x50]
mov edx, eax
and edx, 0x268b5f82
xor eax, 0xa68b5f82
lea eax, [eax + edx*2]
xor eax, ecx
mov dword [esp + 0xc4], eax
mov eax, dword [esp + 0xc4]
add al, 0x76
mov ecx, dword [esp + 4]
mov byte [esp + ecx + 0x50], al
inc dword [esp + 4]
mov eax, dword [esp + 4]
cmp eax, 8
jb 0x40ed60
lea eax, [esp + 0x50]
push eax
push dword [esp + 0x14]
call fcn.00402e10
add esp, 8
mov word [esp + 0x50], 0x314a
mov dword [esp + 0x52], 0
mov dword [esp + 4], 0
mov ecx, dword [esp + 4]
cmp ecx, 5
ja 0x40ee1b
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov edx, dword [esp + 4]
mov ecx, dword [esp + 4]
movzx ecx, byte [esp + ecx + 0x50]
add edx, 0x30ff5534
xor edx, ecx
mov dword [esp + 0xc4], edx
mov edx, dword [esp + 0xc4]
add dl, 0xfc
mov ecx, dword [esp + 4]
mov byte [esp + ecx + 0x50], dl
inc dword [esp + 4]
mov ecx, dword [esp + 4]
cmp ecx, 6
jb 0x40ede0
mov dword [esp + 0x1c], eax
lea eax, [esp + 0x50]
push eax
push dword [esp + 0x14]
call fcn.00402e10
add esp, 8
mov edx, dword [esp + 0x1c]
test edx, edx
sete ch
test eax, eax
sete cl
or cl, ch
movzx ecx, cl
jmp dword [ecx*4 + 0x43d458]
mov dword [esp + 0x40], edi
mov ecx, edx
mov esi, ecx
inc ecx
cmp byte [esi], 0
jne 0x40ee50
mov dword [esp + 0x10], eax
xor edi, edi
cmp esi, edx
jbe 0x40ee97
cmp byte [edx], 0
je 0x40ee97
xor edi, edi
mov ebx, dword [esp + 0x1c]
nop
nop
nop
mov dword [esp + 0x50], 0
lea eax, [esp + 0x50]
push eax
push esi
push ebx
call fcn.0040d440
add esp, 0xc
lea ecx, [ebx + eax]
inc edi
cmp ecx, esi
jae 0x40ee97
cmp byte [ebx + eax], 0
mov ebx, ecx
jne 0x40ee70
mov eax, edi
inc eax
lea eax, [edi + edi + 2]
jns 0x40eea5
mov eax, 0xffffffff
push eax
call fcn.004097d0
add esp, 4
mov dword [esp + 0x50], 0
lea ecx, [eax + edi*2]
mov edi, eax
mov dword [esp + 0x3c], eax
mov dword [esp + 0x14], ecx
cmp eax, ecx
mov eax, dword [esp + 0x10]
mov ebx, dword [esp + 0x1c]
jae 0x40f844
mov edi, dword [esp + 0x3c]
cmp ebx, esi
jae 0x40f844
mov edi, dword [esp + 0x3c]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp byte [ebx], 0
je 0x40f844
lea eax, [esp + 0x50]
push eax
push esi
push ebx
call fcn.0040d440
add esp, 0xc
movzx ecx, word [esp + 0x50]
mov word [edi], cx
add edi, 2
cmp edi, dword [esp + 0x14]
jae 0x40f840
add ebx, eax
cmp ebx, esi
mov eax, dword [esp + 0x10]
jb 0x40eef0
jmp 0x40f844
mov word [esp + 0x50], 0x9b6c
mov dword [esp + 0x52], 0
mov dword [esp + 4], 0
mov eax, dword [esp + 4]
cmp eax, 5
ja 0x40ef89
nop
nop
nop
nop
mov eax, dword [esp + 4]
mov ecx, dword [esp + 4]
movzx ecx, byte [esp + ecx + 0x50]
add eax, 0x42695fdb
xor eax, ecx
mov dword [esp + 0xc4], eax
mov eax, dword [esp + 0xc4]
add al, 0xb9
mov ecx, dword [esp + 4]
mov byte [esp + ecx + 0x50], al
inc dword [esp + 4]
mov eax, dword [esp + 4]
cmp eax, 6
jb 0x40ef50
lea eax, [esp + 0x50]
push eax
push dword [esp + 0x14]
call fcn.00402e10
add esp, 8
mov dword [esp + 0x14], eax
mov dword [esp + 4], 0x21aa
mov dword [esp + 0xc4], 0
mov eax, dword [esp + 0xc4]
cmp eax, 3
ja 0x40f00d
nop
nop
nop
mov eax, dword [esp + 0xc4]
mov ecx, dword [esp + 0xc4]
movzx ecx, byte [esp + ecx + 4]
lea edx, [eax + ecx]
add eax, 0x78
and eax, ecx
add eax, eax
sub edx, eax
add edx, 0x6b9e0c78
mov dword [esp + 0x50], edx
mov eax, dword [esp + 0x50]
add al, 0xa8
mov ecx, dword [esp + 0xc4]
mov byte [esp + ecx + 4], al
inc dword [esp + 0xc4]
mov eax, dword [esp + 0xc4]
cmp eax, 4
jb 0x40efc0
lea eax, [esp + 4]
push eax
push dword [esp + 0x14]
call fcn.00402e10
add esp, 8
mov edx, dword [esp + 0x14]
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 + 0x43d4d0]
mov dword [esp + 0x40], edi
mov eax, edx
jmp dword [0x43d4dc]
mov ecx, dword [esp + 0x14]
mov esi, ecx
jmp 0x4111b0
sete al
movzx eax, al
jmp dword [eax*4 + 0x43d298]
mov word [esp + 0x50], 0x9bec
lea eax, [esp + 0x54]
mov byte [eax], 0
mov word [eax - 2], 0
mov dword [esp + 4], 0
mov eax, dword [esp + 4]
cmp eax, 4
ja 0x40f0d4
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 + 0x50]
lea edx, [eax + ecx]
add eax, 0x1b
and eax, ecx
add eax, eax
sub edx, eax
add edx, 0x1441b
mov dword [esp + 0xc4], edx
mov eax, dword [esp + 0xc4]
add al, 0x79
mov ecx, dword [esp + 4]
mov byte [esp + ecx + 0x50], al
inc dword [esp + 4]
mov eax, dword [esp + 4]
cmp eax, 5
jb 0x40f090
push 2
lea eax, [esp + 0x54]
push eax
push dword [esp + 0x18]
call fcn.00403490
add esp, 0xc
xor ecx, ecx
test eax, eax
setne cl
jmp dword [ecx*4 + 0x43d2a0]
mov dword [esp + 0xbc], 0x9b6f
mov dword [esp + 0x20], 0
mov eax, dword [esp + 0x20]
cmp eax, 3
ja 0x40f159
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp + 0x20]
mov ecx, dword [esp + 0x20]
movzx ecx, byte [esp + ecx + 0xbc]
add eax, 0x698a3ddb
xor eax, ecx
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0x34]
add al, 0xb9
mov ecx, dword [esp + 0x20]
mov byte [esp + ecx + 0xbc], al
inc dword [esp + 0x20]
mov eax, dword [esp + 0x20]
cmp eax, 4
jb 0x40f120
push 5
lea eax, [esp + 0xc0]
push eax
push dword [esp + 0x18]
call fcn.00403490
add esp, 0xc
xor ecx, ecx
test eax, eax
setne cl
jmp dword [ecx*4 + 0x43d2a8]
jmp dword [0x43d2b4]
xor ecx, ecx
test eax, eax
setne cl
jmp dword [ecx*4 + 0x43d368]
mov eax, dword [esp + 0x10]
mov word [edi], 0
lea esi, [eax - 1]
nop
nop
nop
nop
cmp byte [esi + 1], 0
lea esi, [esi + 1]
jne 0x40f850
xor edi, edi
cmp eax, esi
jae 0x40f897
cmp byte [eax], 0
je 0x40f897
xor edi, edi
mov ebx, dword [esp + 0x10]
nop
nop
nop
nop
nop
nop
mov dword [esp + 0x50], 0
lea eax, [esp + 0x50]
push eax
push esi
push ebx
call fcn.0040d440
add esp, 0xc
lea ecx, [ebx + eax]
inc edi
cmp ecx, esi
jae 0x40f897
cmp byte [ebx + eax], 0
mov ebx, ecx
jne 0x40f870
mov eax, edi
inc eax
lea eax, [edi + edi + 2]
jns 0x40f8a5
mov eax, 0xffffffff
push eax
call fcn.004097d0
add esp, 4
mov dword [esp + 0x50], 0
lea ecx, [eax + edi*2]
mov edi, eax
mov dword [esp + 0x44], eax
mov dword [esp + 0x14], ecx
cmp eax, ecx
mov ebx, dword [esp + 0x10]
jae 0x40f90b
mov edi, dword [esp + 0x44]
cmp ebx, esi
jae 0x40f90b
mov edi, dword [esp + 0x44]
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp byte [ebx], 0
je 0x40f90b
lea eax, [esp + 0x50]
push eax
push esi
push ebx
call fcn.0040d440
add esp, 0xc
movzx ecx, word [esp + 0x50]
mov word [edi], cx
add edi, 2
cmp edi, dword [esp + 0x14]
jae 0x40f90b
add ebx, eax
cmp ebx, esi
jb 0x40f8e0
mov word [edi], 0
mov word [esp + 0x50], 0x416d
mov byte [esp + 0x52], 0xce
mov word [esp + 0x53], 0
mov dword [esp + 4], 0
mov eax, dword [esp + 4]
cmp eax, 4
ja 0x40f979
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 + 0x50]
add eax, 0x14432
xor eax, ecx
mov dword [esp + 0xc4], eax
mov eax, dword [esp + 0xc4]
add al, 6
mov ecx, dword [esp + 4]
mov byte [esp + ecx + 0x50], al
inc dword [esp + 4]
mov eax, dword [esp + 4]
cmp eax, 5
jb 0x40f940
lea eax, [esp + 0x50]
push eax
push dword [ebp + 8]
call fcn.00403070
add esp, 8
xor ecx, ecx
mov dword [esp + 0x28], eax
test eax, eax
setne cl
mov dword [esp + 0x1c], 0
mov dword [esp + 0x14], 0
mov edi, dword [esp + 0x40]
jmp dword [ecx*4 + 0x43d460]
push dword [esp + 0x28]
call fcn.004035b0
add esp, 4
mov ebx, eax
mov ecx, 0xc
mul ecx
seto dl
mov ecx, 0xffffffff
mov esi, 0xffffffff
add eax, 4
jb 0x40f9d8
mov esi, eax
test dl, dl
jne 0x40f9de
mov ecx, esi
push ecx
call fcn.004097d0
add esp, 4
mov dword [eax], ebx
add eax, 4
xor ecx, ecx
test ebx, ebx
sete cl
jmp dword [ecx*4 + 0x43d468]
lea ecx, [ebx + ebx*2]
lea esi, [eax + ecx*4]
mov dword [eax], 0
mov dword [eax + 4], 0
mov byte [eax + 8], 0
lea ecx, [eax + 0xc]
xor edx, edx
cmp ecx, esi
sete dl
jmp dword [edx*4 + 0x43d470]
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 + 0x43d470]
mov dword [esp + 0x14], eax
mov ecx, ebx
xor ebx, ebx
xor eax, eax
mov dword [esp + 0x1c], ecx
cmp ebx, ecx
setb al
jmp dword [eax*4 + 0x43d478]
lea esi, [esp + 0x50]
mov ecx, esi
push 2
call fcn.00409f50
push dword [esp + 0x1c]
mov ebx, dword [esp + 0x18]
push ebx
push dword [esp + 0x4c]
push dword [esp + 0x48]
push esi
call fcn.00413d40
add esp, 0x14
mov ecx, esi
call fcn.0040a7f0
movzx eax, al
jmp dword [eax*4 + 0x43d490]
mov eax, dword [case.0x40f035.1]
nop
jmp eax
push dword [esp + 0x28]
call fcn.004035b0
add esp, 4
xor ecx, ecx
cmp edi, eax
setb cl
jmp dword [ecx*4 + 0x43d300]
xor ecx, ecx
test eax, eax
setne cl
jmp dword [ecx*4 + 0x43d2d8]
mov word [esp + 4], 0x1e0e
mov byte [esp + 6], 0xea
lea eax, [esp + 6]
mov byte [eax + 5], 0
mov dword [eax + 1], 0
mov dword [esp + 0x20], 0
mov eax, dword [esp + 0x20]
cmp eax, 7
ja 0x4105e3
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp + 0x20]
mov ecx, dword [esp + 0x20]
movzx ecx, byte [esp + ecx + 4]
add eax, 0x727c8627
xor eax, ecx
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0x34]
add al, 0x3d
mov ecx, dword [esp + 0x20]
mov byte [esp + ecx + 4], al
inc dword [esp + 0x20]
mov eax, dword [esp + 0x20]
cmp eax, 8
jb 0x4105b0
push 3
lea eax, [esp + 8]
push eax
push dword [esp + 0x18]
call fcn.00403490
add esp, 0xc
xor ecx, ecx
test eax, eax
sete cl
jmp dword [ecx*4 + 0x43d2e0]
mov word [esp + 0x50], 0x9908
lea eax, [esp + 0x54]
mov byte [eax], 0
mov word [eax - 2], 0
mov dword [esp + 4], 0
mov eax, dword [esp + 4]
cmp eax, 4
ja 0x410680
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp + 4]
mov ecx, dword [esp + 4]
movzx edx, byte [esp + ecx + 0x50]
lea ecx, [eax + edx]
add ecx, 0x14426
add eax, 0x14426
and eax, edx
mov edx, ecx
not edx
and edx, eax
add edx, eax
not eax
and eax, ecx
sub eax, edx
mov dword [esp + 0xc4], eax
mov eax, dword [esp + 0xc4]
add al, 0x42
mov ecx, dword [esp + 4]
mov byte [esp + ecx + 0x50], al
inc dword [esp + 4]
mov eax, dword [esp + 4]
cmp eax, 5
jb 0x410630
lea eax, [esp + 0x50]
push eax
push dword [esp + 0x14]
call fcn.00402e10
add esp, 8
mov dword [esp + 0x3c], eax
mov dword [esp + 4], 0x8b3f
mov dword [esp + 0xc4], 0
mov eax, dword [esp + 0xc4]
cmp eax, 3
ja 0x410702
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp + 0xc4]
mov ecx, dword [esp + 0xc4]
movzx ecx, byte [esp + ecx + 4]
add eax, 0x6a3d41e3
xor eax, ecx
mov dword [esp + 0x50], eax
mov eax, dword [esp + 0x50]
add al, 0x91
mov ecx, dword [esp + 0xc4]
mov byte [esp + ecx + 4], al
inc dword [esp + 0xc4]
mov eax, dword [esp + 0xc4]
cmp eax, 4
jb 0x4106c0
lea eax, [esp + 4]
push eax
push dword [esp + 0x14]
call fcn.00403070
add esp, 8
mov ebx, eax
mov word [esp + 0x50], 0x8906
lea eax, [esp + 0x54]
mov byte [eax + 2], 0
mov dword [eax - 2], 0
mov dword [esp + 4], 0
mov eax, dword [esp + 4]
cmp eax, 6
ja 0x410779
nop
nop
nop
nop
mov eax, dword [esp + 4]
mov ecx, dword [esp + 4]
movzx ecx, byte [esp + ecx + 0x50]
add eax, 0xc6a07362
xor eax, ecx
mov dword [esp + 0xc4], eax
mov eax, dword [esp + 0xc4]
add al, 0x16
mov ecx, dword [esp + 4]
mov byte [esp + ecx + 0x50], al
inc dword [esp + 4]
mov eax, dword [esp + 4]
cmp eax, 7
jb 0x410740
lea eax, [esp + 0x50]
push eax
push dword [esp + 0x14]
call fcn.00402e10
add esp, 8
mov dword [esp + 0x1c], eax
mov word [esp + 0x50], 0xfba0
lea eax, [esp + 0x54]
mov word [eax + 2], 0
mov dword [eax - 2], 0
mov dword [esp + 4], 0
mov eax, dword [esp + 4]
cmp eax, 7
ja 0x4107f9
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp + 4]
mov ecx, dword [esp + 4]
movzx ecx, byte [esp + ecx + 0x50]
add eax, 0xabcca7ff
xor eax, ecx
mov dword [esp + 0xc4], eax
mov eax, dword [esp + 0xc4]
add al, 5
mov ecx, dword [esp + 4]
mov byte [esp + ecx + 0x50], al
inc dword [esp + 4]
mov eax, dword [esp + 4]
cmp eax, 8
jb 0x4107c0
lea eax, [esp + 0x50]
push eax
push dword [esp + 0x14]
call fcn.00402f40
add esp, 8
mov word [esp + 0x50], 0xf6e2
mov byte [esp + 0x52], 0x56
lea eax, [esp + 0x54]
mov byte [eax + 3], 0
mov dword [eax - 1], 0
fnstcw word [esp + 0x122]
movzx eax, word [esp + 0x122]
or eax, 0xc00
mov word [esp + 0x12c], ax
fldcw word [esp + 0x12c]
fistp dword [esp + 0x13c]
fldcw word [esp + 0x122]
mov eax, dword [esp + 0x13c]
mov dword [esp + 0x30], eax
mov dword [esp + 4], 0
mov eax, dword [esp + 4]
cmp eax, 7
ja 0x4108c4
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 + 0x50]
lea edx, [eax + ecx]
add eax, 0x6e
and eax, ecx
add eax, eax
sub edx, eax
add edx, 0x3badf6e
mov dword [esp + 0xc4], edx
mov eax, dword [esp + 0xc4]
add al, 0xda
mov ecx, dword [esp + 4]
mov byte [esp + ecx + 0x50], al
inc dword [esp + 4]
mov eax, dword [esp + 4]
cmp eax, 8
jb 0x410880
mov dword [esp + 0x28], ebx
lea eax, [esp + 0x50]
push eax
push dword [esp + 0x14]
call fcn.00402f40
add esp, 8
mov word [esp + 0x50], 0x636a
mov byte [esp + 0x52], 0xce
mov word [esp + 0x53], 0
fnstcw word [esp + 0x120]
movzx eax, word [esp + 0x120]
or eax, 0xc00
mov word [esp + 0x12a], ax
fldcw word [esp + 0x12a]
fistp dword [esp + 0x138]
fldcw word [esp + 0x120]
mov eax, dword [esp + 0x138]
mov dword [esp + 0x118], eax
mov dword [esp + 4], 0
mov eax, dword [esp + 4]
cmp eax, 4
ja 0x410979
nop
nop
nop
nop
mov eax, dword [esp + 4]
mov ecx, dword [esp + 4]
movzx ecx, byte [esp + ecx + 0x50]
add eax, 0x1442d
xor eax, ecx
mov dword [esp + 0xc4], eax
mov eax, dword [esp + 0xc4]
add al, 0x1f
mov ecx, dword [esp + 4]
mov byte [esp + ecx + 0x50], al
inc dword [esp + 4]
mov eax, dword [esp + 4]
cmp eax, 5
jb 0x410940
lea eax, [esp + 0x50]
push eax
push dword [esp + 0x14]
call fcn.004031a0
add esp, 8
mov dword [esp + 0x114], eax
mov eax, dword [esp + 0x3c]
lea ebx, [eax - 1]
nop
nop
nop
nop
nop
nop
nop
nop
cmp byte [ebx + 1], 0
lea ebx, [ebx + 1]
jne 0x4109a0
mov dword [esp + 0x40], edi
xor esi, esi
cmp eax, ebx
jae 0x4109e7
cmp byte [eax], 0
je 0x4109e7
xor esi, esi
mov edi, dword [esp + 0x3c]
nop
nop
mov dword [esp + 0x50], 0
lea eax, [esp + 0x50]
push eax
push ebx
push edi
call fcn.0040d440
add esp, 0xc
lea ecx, [edi + eax]
inc esi
cmp ecx, ebx
jae 0x4109e7
cmp byte [edi + eax], 0
mov edi, ecx
jne 0x4109c0
mov eax, esi
inc eax
lea eax, [esi + esi + 2]
jns 0x4109f5
mov eax, 0xffffffff
push eax
call fcn.004097d0
add esp, 4
mov dword [esp + 0x50], 0
lea ecx, [eax + esi*2]
mov edi, eax
mov dword [esp + 0x4c], eax
mov dword [esp + 0x10], ecx
cmp eax, ecx
mov ecx, dword [esp + 0x3c]
jae 0x410a69
mov edi, dword [esp + 0x4c]
cmp ecx, ebx
jae 0x410a69
mov edi, dword [esp + 0x4c]
mov dword [esp + 0x14], esi
nop
nop
nop
nop
nop
cmp byte [ecx], 0
je 0x410a69
lea eax, [esp + 0x50]
push eax
push ebx
push ecx
mov esi, ecx
call fcn.0040d440
add esp, 0xc
movzx ecx, word [esp + 0x50]
mov word [edi], cx
add edi, 2
cmp edi, dword [esp + 0x10]
jae 0x410a65
add esi, eax
cmp esi, ebx
mov ecx, esi
mov esi, dword [esp + 0x14]
jb 0x410a30
jmp 0x410a69
mov esi, dword [esp + 0x14]
mov word [edi], 0
lea eax, [esp + 4]
push eax
push 0
push 0
push esi
mov ebx, dword [esp + 0x5c]
push ebx
push 0
call dword [0x442ef8]
mov edi, dword [esp + 4]
lea eax, [edi + edi]
test edi, edi
jns 0x410a95
mov eax, 0xffffffff
push eax
call fcn.004097d0
add esp, 4
mov ecx, eax
lea eax, [esp + 4]
push eax
push edi
mov dword [esp + 0x4c], ecx
push ecx
push esi
push ebx
push 0
call dword [0x442ef8]
jmp dword [0x43d2f8]
push ebx
call fcn.004097e0
add esp, 4
mov ecx, dword [esp + 0x1c]
mov eax, ecx
jmp 0x4119b2
mov ecx, dword [esp + 0x1c]
mov esi, ecx
jmp 0x4119aa
lea eax, [esi + 1]
cmp byte [esi], 0
jne 0x41156f
xor edi, edi
cmp esi, ecx
jbe 0x4111f7
cmp byte [ecx], 0
je 0x4111f7
xor edi, edi
mov ebx, dword [esp + 0x14]
nop
nop
nop
mov dword [esp + 0x50], 0
lea eax, [esp + 0x50]
push eax
push esi
push ebx
call fcn.0040d440
add esp, 0xc
lea ecx, [ebx + eax]
inc edi
cmp ecx, esi
jae 0x4111f7
cmp byte [ebx + eax], 0
mov ebx, ecx
jne 0x4111d0
mov eax, edi
inc eax
lea eax, [edi + edi + 2]
jns 0x411205
mov eax, 0xffffffff
push eax
call fcn.004097d0
add esp, 4
mov dword [esp + 0x50], 0
lea ecx, [eax + edi*2]
mov edi, eax
mov dword [esp + 0x44], eax
mov dword [esp + 0x10], ecx
cmp eax, ecx
jae 0x41126b
mov edi, dword [esp + 0x44]
cmp dword [esp + 0x14], esi
jae 0x41126b
mov edi, dword [esp + 0x44]
mov ebx, dword [esp + 0x14]
nop
nop
nop
nop
nop
nop
nop
cmp byte [ebx], 0
je 0x41126b
lea eax, [esp + 0x50]
push eax
push esi
push ebx
call fcn.0040d440
add esp, 0xc
movzx ecx, word [esp + 0x50]
mov word [edi], cx
add edi, 2
cmp edi, dword [esp + 0x10]
jae 0x41126b
add ebx, eax
cmp ebx, esi
jb 0x411240
mov word [edi], 0
xor ebx, ebx
mov esi, 0xfffffffe
mov eax, dword [esp + 0x1c]
nop
nop
nop
nop
nop
add esi, 2
cmp byte [eax + ebx], 0
lea ebx, [ebx + 1]
jne 0x411280
lea eax, [esi + 2]
test ebx, ebx
jns 0x411298
mov eax, 0xffffffff
push eax
call fcn.004097d0
add esp, 4
mov dword [esp + 0x50], 0
add esi, eax
mov edx, eax
mov dword [esp + 0x30], eax
cmp eax, esi
jae 0x411301
mov eax, dword [esp + 0x1c]
lea edi, [eax + ebx]
dec edi
mov edx, dword [esp + 0x30]
cmp eax, edi
jae 0x411301
mov edx, dword [esp + 0x30]
mov ebx, dword [esp + 0x1c]
nop
nop
nop
cmp byte [ebx], 0
je 0x411301
lea eax, [esp + 0x50]
push eax
push edi
push ebx
mov dword [esp + 0x1c], edx
call fcn.0040d440
mov edx, dword [esp + 0x1c]
add esp, 0xc
movzx ecx, word [esp + 0x50]
mov word [edx], cx
add edx, 2
cmp edx, esi
jae 0x411301
add ebx, eax
cmp ebx, edi
jb 0x4112d0
mov word [edx], 0
mov word [esp + 0x50], 0x9783
mov byte [esp + 0x52], 0x1e
lea eax, [esp + 0x54]
mov byte [eax + 3], 0
mov dword [eax - 1], 0
mov dword [esp + 4], 0
mov eax, dword [esp + 4]
cmp eax, 7
ja 0x411379
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 + 0x50]
add eax, 0x153ce805
xor eax, ecx
mov dword [esp + 0xc4], eax
mov eax, dword [esp + 0xc4]
add al, 0xe7
mov ecx, dword [esp + 4]
mov byte [esp + ecx + 0x50], al
inc dword [esp + 4]
mov eax, dword [esp + 4]
cmp eax, 8
jb 0x411340
lea esi, [esp + 0x50]
push esi
push dword [ebp + 8]
call fcn.00403070
add esp, 8
mov edi, eax
mov eax, dword [esp + 0x14]
jmp dword [0x43d4e4]
mov edi, eax
inc eax
cmp byte [edi], 0
jne case.0x40f035.2
xor ebx, ebx
mov eax, dword [esp + 0x14]
cmp edi, eax
jbe 0x4113e7
cmp byte [eax], 0
je 0x4113e7
xor ebx, ebx
mov esi, dword [esp + 0x14]
nop
nop
nop
mov dword [esp + 0x50], 0
lea eax, [esp + 0x50]
push eax
push edi
push esi
call fcn.0040d440
add esp, 0xc
lea ecx, [esi + eax]
inc ebx
cmp ecx, edi
jae 0x4113e7
cmp byte [esi + eax], 0
mov esi, ecx
jne 0x4113c0
mov eax, ebx
inc eax
lea eax, [ebx + ebx + 2]
jns 0x4113f5
mov eax, 0xffffffff
push eax
call fcn.004097d0
add esp, 4
mov esi, eax
mov dword [esp + 0x50], 0
lea eax, [eax + ebx*2]
mov dword [esp + 0x10], eax
cmp esi, eax
jae 0x41144b
mov ebx, dword [esp + 0x14]
cmp ebx, edi
jae 0x41144b
nop
nop
nop
nop
nop
cmp byte [ebx], 0
je 0x41144b
lea eax, [esp + 0x50]
push eax
push edi
push ebx
call fcn.0040d440
add esp, 0xc
movzx ecx, word [esp + 0x50]
mov word [esi], cx
add esi, 2
cmp esi, dword [esp + 0x10]
jae 0x41144b
add ebx, eax
cmp ebx, edi
jb 0x411420
mov word [esi], 0
xor ebx, ebx
mov edi, 0xfffffffe
mov eax, dword [esp + 0x1c]
nop
nop
nop
nop
nop
add edi, 2
cmp byte [eax + ebx], 0
lea ebx, [ebx + 1]
jne 0x411460
lea eax, [edi + 2]
test ebx, ebx
jns 0x411478
mov eax, 0xffffffff
push eax
call fcn.004097d0
add esp, 4
mov edx, eax
mov dword [esp + 0x50], 0
add edi, eax
cmp eax, edi
jae 0x4114e0
mov eax, dword [esp + 0x1c]
lea esi, [eax + ebx]
dec esi
cmp eax, esi
jae 0x4114e0
mov ebx, eax
nop
cmp byte [ebx], 0
je 0x4114e0
lea eax, [esp + 0x50]
push eax
push esi
push ebx
mov dword [esp + 0x1c], edx
call fcn.0040d440
mov edx, dword [esp + 0x1c]
add esp, 0xc
movzx ecx, word [esp + 0x50]
mov word [edx], cx
add edx, 2
cmp edx, edi
jae 0x4114e0
add ebx, eax
cmp ebx, esi
jb 0x4114a0
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov word [edx], 0
mov word [esp + 0x50], 0x9783
mov byte [esp + 0x52], 0x1e
lea eax, [esp + 0x54]
mov byte [eax + 3], 0
mov dword [eax - 1], 0
mov dword [esp + 4], 0
mov eax, dword [esp + 4]
cmp eax, 7
ja 0x411559
nop
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 + 0x50]
add eax, 0x153ce805
xor eax, ecx
mov dword [esp + 0xc4], eax
mov eax, dword [esp + 0xc4]
add al, 0xe7
mov ecx, dword [esp + 4]
mov byte [esp + ecx + 0x50], al
inc dword [esp + 4]
mov eax, dword [esp + 4]
cmp eax, 8
jb 0x411520
lea eax, [esp + 0x50]
push eax
push dword [ebp + 8]
call fcn.00403070
add esp, 8
mov ecx, dword [esp + 0x14]
mov eax, ecx
mov esi, eax
jmp 0x4111b0
mov word [esp + 0xc4], 0x96c
mov dword [esp + 0xc6], 0
mov dword [esp + 0x20], 0
mov eax, dword [esp + 0x20]
cmp eax, 5
ja 0x411809
nop
mov eax, dword [esp + 0x20]
mov ecx, dword [esp + 0x20]
movzx ecx, byte [esp + ecx + 0xc4]
add eax, 0x9d0a4682
xor eax, ecx
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0x34]
add al, 0x76
mov ecx, dword [esp + 0x20]
mov byte [esp + ecx + 0xc4], al
inc dword [esp + 0x20]
mov eax, dword [esp + 0x20]
cmp eax, 6
jb 0x4117d0
push 3
lea eax, [esp + 0xc8]
push eax
push dword [esp + 0x18]
call fcn.00403490
add esp, 0xc
mov word [esp + 0xc4], 0x96c
mov dword [esp + 0xc6], 0
mov dword [esp + 0x20], 0
mov eax, dword [esp + 0x20]
cmp eax, 5
ja 0x411889
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp + 0x20]
mov ecx, dword [esp + 0x20]
movzx ecx, byte [esp + ecx + 0xc4]
add eax, 0x9d0a4682
xor eax, ecx
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0x34]
add al, 0x76
mov ecx, dword [esp + 0x20]
mov byte [esp + ecx + 0xc4], al
inc dword [esp + 0x20]
mov eax, dword [esp + 0x20]
cmp eax, 6
jb 0x411850
push 3
lea eax, [esp + 0xc8]
push eax
push dword [esp + 0x18]
call fcn.00403490
add esp, 0xc
jmp dword [0x43d2d4]
mov dword [esp + 0x2c], 0x6b1a
mov dword [esp + 0x20], 0
mov eax, dword [esp + 0x20]
cmp eax, 3
ja 0x4118f3
nop
nop
mov eax, dword [esp + 0x20]
mov ecx, dword [esp + 0x20]
movzx ecx, byte [esp + ecx + 0x2c]
add eax, 0x6a7dc3e7
xor eax, ecx
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0x34]
add al, 0x7d
mov ecx, dword [esp + 0x20]
mov byte [esp + ecx + 0x2c], al
inc dword [esp + 0x20]
mov eax, dword [esp + 0x20]
cmp eax, 4
jb 0x4118c0
push 2
lea eax, [esp + 0x30]
push eax
push dword [esp + 0x18]
call fcn.00403490
add esp, 0xc
mov dword [esp + 0x2c], 0x6b1a
mov dword [esp + 0x20], 0
mov eax, dword [esp + 0x20]
cmp eax, 3
ja 0x411953
nop
mov eax, dword [esp + 0x20]
mov ecx, dword [esp + 0x20]
movzx ecx, byte [esp + ecx + 0x2c]
add eax, 0x6a7dc3e7
xor eax, ecx
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0x34]
add al, 0x7d
mov ecx, dword [esp + 0x20]
mov byte [esp + ecx + 0x2c], al
inc dword [esp + 0x20]
mov eax, dword [esp + 0x20]
cmp eax, 4
jb 0x411920
push 2
lea eax, [esp + 0x30]
push eax
push dword [esp + 0x18]
call fcn.00403490
add esp, 0xc
jmp dword [0x43d2bc]
xor ecx, ecx
test eax, eax
setne cl
jmp dword [ecx*4 + 0x43d2c0]
mov eax, dword [case.0x40f035.1]
nop
jmp eax
jmp dword [0x43d2cc]
lea eax, [esi + 1]
cmp byte [esi], 0
je 0x4119b6
mov esi, eax
jmp 0x4119aa
xor ebx, ebx
cmp esi, ecx
jbe 0x4119f7
cmp byte [ecx], 0
je 0x4119f7
xor ebx, ebx
mov edi, dword [esp + 0x1c]
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov dword [esp + 0x50], 0
lea eax, [esp + 0x50]
push eax
push esi
push edi
call fcn.0040d440
add esp, 0xc
lea ecx, [edi + eax]
inc ebx
cmp ecx, esi
jae 0x4119f7
cmp byte [edi + eax], 0
mov edi, ecx
jne 0x4119d0
mov eax, ebx
inc eax
lea eax, [ebx + ebx + 2]
jns 0x411a05
mov eax, 0xffffffff
push eax
call fcn.004097d0
add esp, 4
mov dword [esp + 0x50], 0
lea ecx, [eax + ebx*2]
mov edi, eax
mov dword [esp + 0x3c], eax
mov dword [esp + 0x10], ecx
cmp eax, ecx
mov ebx, dword [esp + 0x1c]
jae 0x411a6b
mov edi, dword [esp + 0x3c]
cmp ebx, esi
jae 0x411a6b
mov edi, dword [esp + 0x3c]
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp byte [ebx], 0
je 0x411a6b
lea eax, [esp + 0x50]
push eax
push esi
push ebx
call fcn.0040d440
add esp, 0xc
movzx ecx, word [esp + 0x50]
mov word [edi], cx
add edi, 2
cmp edi, dword [esp + 0x10]
jae 0x411a6b
add ebx, eax
cmp ebx, esi
jb 0x411a40
mov word [edi], 0
lea ecx, [esp + 0x50]
push 1
call fcn.00409f50
xor edi, edi
mov ebx, dword [esp + 0x48]
jmp 0x410393
mov al, 1
jmp dword [0x43d268]
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret