Function at 0x4117a5
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 [0x444934]
mov dword [esp + 0xc0], 0x4f8be7ac
mov word [esp + 0xc4], 0
mov byte [esp + 0xc6], 0
mov dword [esp + 0x1c0], 0
mov eax, dword [esp + 0x1c0]
cmp eax, 6
ja 0x40da6e
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp + 0x1c0]
mov edx, dword [esp + 0x1c0]
movzx edx, byte [esp + edx + 0xc0]
add eax, 0x29003aa7
xor eax, edx
mov dword [esp + 0x2a8], eax
mov eax, dword [esp + 0x2a8]
add al, 0x1b
mov edx, dword [esp + 0x1c0]
mov byte [esp + edx + 0xc0], al
inc dword [esp + 0x1c0]
mov eax, dword [esp + 0x1c0]
cmp eax, 7
jb 0x40da20
mov edx, dword [str.LPnhqo__ycsrsbzlktlz]
mov dword [esp + 0x2a8], 0x1e263a39
mov dword [esp + 0x2ac], 0xe050816
mov dword [esp + 0x2b0], 0x16050c1e
mov dword [esp + 0x2b4], 0xe1d1e01
mov dword [esp + 0x2b8], 0x15440407
mov dword [esp + 0x2bc], 0x4b330719
mov dword [esp + 0x2c0], 0x75c4146
mov dword [esp + 0x2c4], 0x7f3b1115
mov byte [esp + 0x2c8], 0
mov dword [esp + 0x20], 0
mov eax, dword [esp + 0x20]
cmp eax, 0x20
ja 0x40db3c
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp + 0x20]
mov esi, dword [esp + 0x20]
movzx esi, byte [esp + esi + 0x2a8]
lea edi, [eax + esi]
add edi, 0x22e6addc
add eax, 0x22e6addc
and eax, esi
add eax, eax
sub edi, eax
mov dword [esp + 0x1c0], edi
mov eax, dword [esp + 0x1c0]
add al, 0x7c
mov esi, dword [esp + 0x20]
mov byte [esp + esi + 0x2a8], al
inc dword [esp + 0x20]
mov eax, dword [esp + 0x20]
cmp eax, 0x21
jb 0x40daf0
movzx ebx, byte [esp + 0x2a8]
lea eax, [esp + 0x1c0]
test bl, bl
je 0x40db6b
lea esi, [esp + 0x2a9]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov byte [eax], bl
inc eax
movzx ebx, byte [esi]
inc esi
test bl, bl
jne 0x40db60
mov byte [eax], 0
movzx ebx, byte [edx]
test bl, bl
je 0x40db8b
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 0x40db80
mov byte [eax], 0
movzx edx, byte [esp + 0xc0]
test dl, dl
je 0x40dbbb
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 0x40dbb0
mov byte [eax], 0
movzx edx, byte [ecx]
test dl, dl
je 0x40dbdb
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 0x40dbd0
mov byte [eax], 0
mov dword [esp + 0x2a8], 0x9e2a9c40
mov dword [esp + 0x2ac], 0x9a159829
mov dword [esp + 0x2b0], 0x96239426
mov dword [esp + 0x2b4], 0x9264901b
mov dword [esp + 0x2b8], 0x6ee46c3f
mov dword [esp + 0x2bc], 0x6ad468df
mov dword [esp + 0x2c0], 0x668564a1
mov dword [esp + 0x2c4], 0x62d160c6
mov dword [esp + 0x2c8], 0x7ec97cd3
mov dword [esp + 0x2cc], 0x7ada78c6
mov dword [esp + 0x2d0], 0x76f974da
mov dword [esp + 0x2d4], 0x72c670ce
mov dword [esp + 0x2d8], 0x4eba4cc5
mov dword [esp + 0x2dc], 0x4abc48c7
mov dword [esp + 0x2e0], 0x46ca44c4
mov dword [esp + 0x2e4], 0x42b440c8
mov dword [esp + 0x2e8], 0x5eea5cfd
mov dword [esp + 0x2ec], 0x5aec58ed
mov dword [esp + 0x2f0], 0x56d854ae
mov dword [esp + 0x2f4], 0x52e550e5
mov dword [esp + 0x2f8], 0x2e9b2cee
mov dword [esp + 0x2fc], 0x2a9e288c
mov dword [esp + 0x300], 0x26982497
mov dword [esp + 0x304], 0x2234209b
mov dword [esp + 0x308], 0x3e3d3c39
mov byte [esp + 0x30c], 0
lea ecx, [esp + 0x1c0]
mov dword [esp + 0x20], 0
mov edx, dword [esp + 0x20]
cmp edx, 0x64
ja 0x40dd61
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov edx, dword [esp + 0x20]
mov esi, dword [esp + 0x20]
movzx esi, byte [esp + esi + 0x2a8]
add edx, 0x676b036f
xor edx, esi
mov dword [esp + 0xc0], edx
mov edx, dword [esp + 0xc0]
add dl, 0x14
mov esi, dword [esp + 0x20]
mov byte [esp + esi + 0x2a8], dl
inc dword [esp + 0x20]
mov edx, dword [esp + 0x20]
cmp edx, 0x65
jb 0x40dd20
sub eax, ecx
mov dword [esp + 0xc0], 0x69096b39
mov dword [esp + 0xc4], 0x6df56ffe
mov word [esp + 0xc8], 0x6362
mov dword [esp + 0xca], 0
mov dword [esp + 0x240], 0
mov edx, dword [esp + 0x240]
cmp edx, 0xd
ja 0x40de05
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov edx, dword [esp + 0x240]
mov esi, dword [esp + 0x240]
movzx esi, byte [esp + esi + 0xc0]
mov edi, edx
and edi, 0xd1081c70
xor edx, 0xd1081c70
lea edx, [edx + edi*2]
xor edx, esi
mov dword [esp + 0x20], edx
mov edx, dword [esp + 0x20]
add dl, 0xe6
mov esi, dword [esp + 0x240]
mov byte [esp + esi + 0xc0], dl
inc dword [esp + 0x240]
mov edx, dword [esp + 0x240]
cmp edx, 0xe
jb 0x40ddb0
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 0x449660
call fcn.0040c720
add esp, 0x1c
movzx eax, al
jmp dword [eax*4 + 0x44531c]
xor esi, esi
xor eax, eax
test esi, 0
sete al
jmp dword [eax*4 + 0x445324]
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
mov edx, ecx
xor edx, 1
mov esi, ecx
and esi, 0xfffffffe
add esi, esi
sub esi, edx
movzx edx, byte [edi + esi]
mov esi, edi
cmp edx, 0x3d
je 0x40de90
cmp edx, 0x2e
jne 0x40de91
dec eax
movzx ecx, byte [esi + ecx - 2]
cmp ecx, 0x3d
lea edi, [esp + 0x2a8]
mov dword [esp + 0x1c], esi
je 0x40deab
cmp ecx, 0x2e
jne 0x40deac
dec eax
push eax
call fcn.00409a50
add esp, 4
mov esi, eax
push eax
push dword [esp + 0x20]
call fcn.00437f90
add esp, 8
push dword [esp + 0xa8]
call fcn.0043b3e0
add esp, 4
xor eax, eax
test esi, esi
sete al
jmp dword [eax*4 + 0x445324]
jmp dword [0x44532c]
push esi
call fcn.004029e0
add esp, 4
push esi
call fcn.004029e0
add esp, 4
jmp dword [0x445334]
mov dword [esp + 0x1c], eax
jmp dword [0x44533c]
jmp dword [0x445348]
push esi
call fcn.00409a60
add esp, 4
nop
nop
nop
nop
nop
nop
nop
nop
push esi
call fcn.00409a60
add esp, 4
jmp dword [0x445350]
push dword [esp + 0x1c]
call fcn.00403460
add esp, 4
mov esi, eax
mov word [esp + 0x2a8], 0xa39b
mov byte [esp + 0x2aa], 0x17
mov word [esp + 0x2ab], 0
mov dword [esp + 0x20], 0
mov eax, dword [esp + 0x20]
cmp eax, 4
ja 0x40dfaf
nop
nop
nop
nop
nop
nop
mov eax, dword [esp + 0x20]
mov ecx, dword [esp + 0x20]
movzx ecx, byte [esp + ecx + 0x2a8]
add eax, 0x64037d39
xor eax, ecx
mov dword [esp + 0xc0], eax
mov eax, dword [esp + 0xc0]
add al, 0xd4
mov ecx, dword [esp + 0x20]
mov byte [esp + ecx + 0x2a8], al
inc dword [esp + 0x20]
mov eax, dword [esp + 0x20]
cmp eax, 5
jb 0x40df70
push edi
push esi
call fcn.004035b0
add esp, 8
xor ecx, ecx
test eax, eax
setg cl
jmp dword [ecx*4 + 0x445354]
call fcn.004364b0
movzx eax, al
jmp dword [eax*4 + 0x44535c]
mov word [esp + 0x2a8], 0xdad4
mov byte [esp + 0x2aa], 0x77
mov word [esp + 0x2ab], 0
mov byte [esp + 0x2ad], 0
mov dword [esp + 0x20], 0
mov eax, dword [esp + 0x20]
cmp eax, 5
ja 0x40e04f
nop
nop
nop
nop
nop
mov eax, dword [esp + 0x20]
mov ecx, dword [esp + 0x20]
movzx ecx, byte [esp + ecx + 0x2a8]
add eax, 0x257f3b51
xor eax, ecx
mov dword [esp + 0xc0], eax
mov eax, dword [esp + 0xc0]
add al, 0xdc
mov ecx, dword [esp + 0x20]
mov byte [esp + ecx + 0x2a8], al
inc dword [esp + 0x20]
mov eax, dword [esp + 0x20]
cmp eax, 6
jb 0x40e010
push edi
push esi
call fcn.004035b0
add esp, 8
mov dword [esp + 0xa0], eax
mov word [esp + 0x2a8], 0xeee1
mov byte [esp + 0x2aa], 0x2c
mov dword [esp + 0x2ab], 0
mov byte [esp + 0x2af], 0
mov dword [esp + 0x20], 0
mov eax, dword [esp + 0x20]
cmp eax, 7
ja 0x40e0df
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 + 0x2a8]
add eax, 0x665c85de
xor eax, ecx
mov dword [esp + 0xc0], eax
mov eax, dword [esp + 0xc0]
add al, 0x34
mov ecx, dword [esp + 0x20]
mov byte [esp + ecx + 0x2a8], al
inc dword [esp + 0x20]
mov eax, dword [esp + 0x20]
cmp eax, 8
jb 0x40e0a0
push edi
push esi
call fcn.004035b0
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.0040edc0
add esp, 4
push dword [esp + 0x1c]
call fcn.00403a10
add esp, 4
lea esi, [esp + 0x240]
mov ecx, esi
push 1
call fcn.0040a1e0
push esi
call fcn.0041d2f0
add esp, 4
mov ecx, esi
call fcn.0040ab50
lea esi, [esp + 0xc48]
mov ecx, esi
push 3
call fcn.0040a1e0
push esi
call fcn.0041da00
add esp, 4
mov ecx, esi
call fcn.0040ab50
lea esi, [esp + 0xbe0]
mov ecx, esi
push 1
call fcn.0040a1e0
push esi
call fcn.0041dc90
add esp, 4
mov ecx, esi
call fcn.0040ab50
lea esi, [esp + 0xb78]
mov ecx, esi
push 1
call fcn.0040a1e0
push esi
call fcn.0041f8f0
add esp, 4
push esi
call fcn.004202f0
add esp, 4
push esi
call fcn.00420750
add esp, 4
mov ecx, esi
call fcn.0040ab50
lea esi, [esp + 0xb10]
mov ecx, esi
push 1
call fcn.0040a1e0
push esi
call fcn.004226c0
add esp, 4
mov ecx, esi
call fcn.0040ab50
lea esi, [esp + 0xaa8]
mov ecx, esi
push 1
call fcn.0040a1e0
push esi
call fcn.00427070
add esp, 4
push esi
call fcn.00431d40
add esp, 4
mov eax, dword [esp + 0xac]
jmp dword [eax*4 + 0x445364]
push esi
call fcn.00424990
add esp, 4
mov eax, dword [case.0x40e1ee.0]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
jmp eax
lea ecx, [esp + 0xaa8]
call fcn.0040ab50
mov dword [esp + 0x20], 0xb6bb8bce
mov word [esp + 0x24], 0xec8c
mov byte [esp + 0x26], 0x2e
mov word [esp + 0x27], 0
mov byte [esp + 0x29], 0
mov dword [esp + 0xc0], 0
mov eax, dword [esp + 0xc0]
cmp eax, 9
ja 0x40e2ba
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov ecx, dword [esp + 0xc0]
mov eax, dword [esp + 0xc0]
movzx eax, byte [esp + eax + 0x20]
add ecx, 0xbb420853
mov edx, ecx
and edx, eax
mov esi, ecx
xor esi, eax
not eax
or ecx, eax
sub eax, ecx
add eax, edx
lea eax, [esi + eax*2]
mov dword [esp + 0x2a8], eax
mov eax, dword [esp + 0x2a8]
add al, 0x89
mov ecx, dword [esp + 0xc0]
mov byte [esp + ecx + 0x20], al
inc dword [esp + 0xc0]
mov eax, dword [esp + 0xc0]
cmp eax, 0xa
jb 0x40e260
mov eax, dword [0x444934]
mov dword [esp + 8], 0x82c032f5
mov word [esp + 0xc], 0
mov byte [esp + 0xe], 0
mov dword [esp + 0xc0], 0
mov ecx, dword [esp + 0xc0]
cmp ecx, 6
ja 0x40e33a
nop
nop
nop
nop
nop
nop
mov ecx, dword [esp + 0xc0]
mov edx, dword [esp + 0xc0]
movzx edx, byte [esp + edx + 8]
add ecx, 0x9011902d
xor ecx, edx
mov dword [esp + 0x2a8], ecx
mov ecx, dword [esp + 0x2a8]
add cl, 0x4e
mov edx, dword [esp + 0xc0]
mov byte [esp + edx + 8], cl
inc dword [esp + 0xc0]
mov ecx, dword [esp + 0xc0]
cmp ecx, 7
jb 0x40e2f0
mov ecx, dword [str.LPnhqo__ycsrsbzlktlz]
mov dword [esp + 0x2a8], 0xd9e3f1fe
mov dword [esp + 0x2ac], 0xfbe7f7f0
mov dword [esp + 0x2b0], 0xdbdacbd2
mov dword [esp + 0x2b4], 0x8cccc9c2
mov dword [esp + 0x2b8], 0xe9ddc3d3
mov dword [esp + 0x2bc], 0x849b9e95
mov dword [esp + 0x2c0], 0xf1dbdfc1
mov byte [esp + 0x2c4], 0xb1
mov word [esp + 0x2c5], 0
mov byte [esp + 0x2c7], 0
mov dword [esp], 0
mov edx, dword [esp]
cmp edx, 0x1f
ja 0x40e3fc
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov edx, dword [esp]
mov esi, dword [esp]
movzx esi, byte [esp + esi + 0x2a8]
add edx, 0x2ec23198
xor edx, esi
mov dword [esp + 0xc0], edx
mov edx, dword [esp + 0xc0]
add dl, 0xfb
mov esi, dword [esp]
mov byte [esp + esi + 0x2a8], dl
inc dword [esp]
mov edx, dword [esp]
cmp edx, 0x20
jb 0x40e3c0
movzx edx, byte [esp + 0x2a8]
test dl, dl
je 0x40e42b
lea ebx, [esp + 0xc0]
lea esi, [esp + 0x2a9]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov byte [ebx], dl
inc ebx
movzx edx, byte [esi]
inc esi
test dl, dl
jne 0x40e420
mov byte [ebx], 0
movzx edx, byte [ecx]
test dl, dl
je 0x40e44b
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 0x40e440
mov byte [ebx], 0
movzx ecx, byte [esp + 8]
test cl, cl
je 0x40e46b
lea edx, [esp + 9]
nop
nop
nop
nop
nop
mov byte [ebx], cl
inc ebx
movzx ecx, byte [edx]
inc edx
test cl, cl
jne 0x40e460
mov byte [ebx], 0
movzx ecx, byte [eax]
test cl, cl
je 0x40e48b
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 0x40e480
mov byte [ebx], 0
movzx eax, byte [esp + 0x20]
test al, al
je 0x40e4ab
lea ecx, [esp + 0x21]
nop
nop
nop
nop
nop
mov byte [ebx], al
inc ebx
movzx eax, byte [ecx]
inc ecx
test al, al
jne 0x40e4a0
mov byte [ebx], 0
movzx eax, byte [0x449600]
test al, al
je 0x40e4d1
xor ecx, ecx
nop
nop
nop
nop
nop
mov byte [ebx + ecx], al
movzx eax, byte [ecx + 0x449601]
inc ecx
test al, al
jne 0x40e4c0
add ebx, ecx
mov byte [ebx], 0
mov dword [esp + 0x2a8], 0xfb9094f
mov dword [esp + 0x2ac], 0x3b80dbc
mov dword [esp + 0x2b0], 0x7b201b9
mov dword [esp + 0x2b4], 0x1b7705b2
mov dword [esp + 0x2b8], 0x1f97194e
mov dword [esp + 0x2bc], 0x13a71dae
mov dword [esp + 0x2c0], 0x1770115c
mov dword [esp + 0x2c4], 0x6ba415b1
mov dword [esp + 0x2c8], 0x6fd469da
mov dword [esp + 0x2cc], 0x63c96dd1
mov dword [esp + 0x2d0], 0x67d461c5
mov dword [esp + 0x2d4], 0x7bd565d9
mov dword [esp + 0x2d8], 0x7f0979c8
mov dword [esp + 0x2dc], 0x730f7df6
mov dword [esp + 0x2e0], 0x77f971fb
mov dword [esp + 0x2e4], 0x4b0775ff
mov dword [esp + 0x2e8], 0x4ff949f0
mov dword [esp + 0x2ec], 0x43ff4df8
mov dword [esp + 0x2f0], 0x47cb4131
mov dword [esp + 0x2f4], 0x5bf845f0
mov dword [esp + 0x2f8], 0x5fea59e1
mov dword [esp + 0x2fc], 0x53ed5dfb
mov dword [esp + 0x300], 0x57eb51f6
mov dword [esp + 0x304], 0xab4755f2
mov dword [esp + 0x308], 0xafa8a9b4
mov word [esp + 0x30c], 0
lea eax, [esp + 0xc0]
mov dword [esp + 8], 0
mov ecx, dword [esp + 8]
cmp ecx, 0x65
ja 0x40e64b
nop
nop
nop
nop
nop
nop
nop
mov ecx, dword [esp + 8]
mov edx, dword [esp + 8]
movzx edx, byte [esp + edx + 0x2a8]
add ecx, 0x5d156e21
xor ecx, edx
mov dword [esp + 0x20], ecx
mov ecx, dword [esp + 0x20]
add cl, 0xd5
mov edx, dword [esp + 8]
mov byte [esp + edx + 0x2a8], cl
inc dword [esp + 8]
mov ecx, dword [esp + 8]
cmp ecx, 0x66
jb 0x40e610
sub ebx, eax
mov dword [esp + 0x20], 0xef8fedd3
mov dword [esp + 0x24], 0xe39be190
mov word [esp + 0x28], 0xe5e4
mov dword [esp + 0x2a], 0
mov dword [esp], 0
mov ecx, dword [esp]
cmp ecx, 0xd
ja 0x40e6b0
nop
nop
nop
nop
nop
mov ecx, dword [esp]
mov edx, dword [esp]
movzx edx, byte [esp + edx + 0x20]
add ecx, 0x43080164
xor ecx, edx
mov dword [esp + 8], ecx
mov ecx, dword [esp + 8]
add cl, 0x78
mov edx, dword [esp]
mov byte [esp + edx + 0x20], cl
inc dword [esp]
mov ecx, dword [esp]
cmp ecx, 0xe
jb 0x40e680
lea ecx, [esp + 0xb4]
lea edx, [esp + 0xa4]
lea esi, [esp + 0x20]
push ecx
push edx
push ebx
push eax
push edi
push esi
push 0x449660
call fcn.0040c720
add esp, 0x1c
movzx eax, al
jmp dword [eax*4 + 0x44537c]
xor ebx, ebx
xor eax, eax
test ebx, 0
setne al
jmp dword [eax*4 + 0x445384]
mov ecx, dword [esp + 0xb4]
mov esi, dword [esp + 0xa4]
lea eax, [ecx + ecx*2]
shr eax, 2
mov edx, ecx
xor edx, 1
mov ebx, ecx
and ebx, 0xfffffffe
add ebx, ebx
sub ebx, edx
movzx edx, byte [esi + ebx]
cmp edx, 0x3d
je 0x40e723
cmp edx, 0x2e
jne 0x40e724
dec eax
movzx ecx, byte [esi + ecx - 2]
cmp ecx, 0x3d
je 0x40e733
cmp ecx, 0x2e
jne 0x40e734
dec eax
push eax
call fcn.00409a50
add esp, 4
mov ebx, eax
push eax
push esi
call fcn.00437f90
add esp, 8
push dword [esp + 0xa4]
call fcn.0043b3e0
add esp, 4
xor eax, eax
test ebx, ebx
setne al
jmp dword [eax*4 + 0x445384]
push ebx
call fcn.004029e0
add esp, 4
mov esi, eax
jmp dword [0x44538c]
push ebx
call fcn.00409a60
add esp, 4
push esi
call fcn.00411e90
add esp, 4
push esi
call fcn.00403a10
add esp, 4
mov dword [esp + 0x2a8], 0x741c181b
mov word [esp + 0x2ac], 0
mov dword [esp + 8], 0
mov eax, dword [esp + 8]
cmp eax, 5
mov esi, dword [esp + 0xb0]
ja 0x40e810
nop
mov eax, dword [esp + 8]
mov ecx, dword [esp + 8]
movzx ecx, byte [esp + ecx + 0x2a8]
lea edx, [eax + ecx]
add edx, 0x3db92970
add eax, 0x3db92970
and eax, ecx
mov ecx, edx
xor ecx, eax
add ecx, eax
not eax
and eax, edx
add eax, eax
sub eax, ecx
mov dword [esp + 0x20], eax
mov eax, dword [esp + 0x20]
add al, 0xf9
mov ecx, dword [esp + 8]
mov byte [esp + ecx + 0x2a8], al
inc dword [esp + 8]
mov eax, dword [esp + 8]
cmp eax, 6
jb 0x40e7c0
push edi
push esi
call fcn.004035b0
add esp, 8
xor ecx, ecx
test eax, eax
setg cl
jmp dword [ecx*4 + 0x445394]
xor eax, eax
cmp dword [esp + 0xa0], 0
setg al
jmp dword [eax*4 + 0x44539c]
lea ecx, [esp + 0x2a8]
push 1
call fcn.0040a1e0
mov eax, 0xffffffff
nop
cmp byte [eax + 0x449969], 0
lea eax, [eax + 1]
jne 0x40e850
mov dword [esp + 0x20], 0x402eceee
mov dword [esp + 0x24], 0x4144f931
mov word [esp + 0x28], 0xcb46
mov dword [esp + 0x2a], 0
mov byte [esp + 0x2e], 0
mov dword [esp], 0
mov ecx, dword [esp]
cmp ecx, 0xe
ja 0x40e8c0
nop
mov ecx, dword [esp]
mov edx, dword [esp]
movzx edx, byte [esp + edx + 0x20]
add ecx, 0x62c847fe
xor ecx, edx
mov dword [esp + 8], ecx
mov ecx, dword [esp + 8]
add cl, 0x34
mov edx, dword [esp]
mov byte [esp + edx + 0x20], cl
inc dword [esp]
mov ecx, dword [esp]
cmp ecx, 0xf
jb 0x40e890
lea esi, [esp + 0x2a8]
mov ecx, esi
push eax
push 0x449968
lea eax, [esp + 0x28]
push eax
call fcn.0040a3e0
mov ecx, esi
call fcn.0040ab50
mov ecx, esi
call fcn.0040a220
xor eax, eax
cmp dword [esp + 0xa0], 0
setg al
jmp dword [eax*4 + 0x44539c]
push 0
call fcn.0043e790
add esp, 4
xor ecx, ecx
test eax, eax
setne cl
jmp dword [ecx*4 + 0x4453a4]
mov dword [esp + 0x20], 0x6c9a628e
mov dword [esp + 0x24], 0x685f6e83
mov dword [esp + 0x28], 0x748d6a84
mov dword [esp + 0x2c], 0x70517698
mov dword [esp + 0x30], 0x7c807251
mov dword [esp + 0x34], 0x789a7e83
mov dword [esp + 0x38], 0x4f97a89
mov dword [esp + 0x3c], 0x300627
mov dword [esp + 0x40], 0xce602f4
mov dword [esp + 0x44], 0x8290ef9
mov dword [esp + 0x48], 0x14e20ae6
mov dword [esp + 0x4c], 0x102716fb
mov dword [esp + 0x50], 0x1ce512fc
mov dword [esp + 0x54], 0x18391ef0
mov dword [esp + 0x58], 0x24141a39
mov dword [esp + 0x5c], 0x200126ca
mov dword [esp + 0x60], 0x2cc622df
mov dword [esp + 0x64], 0x28c62ed8
mov dword [esp + 0x68], 0x34ca2ada
mov dword [esp + 0x6c], 0x301136cb
mov dword [esp + 0x70], 0x3cc13202
mov dword [esp + 0x74], 0x38043e1f
mov dword [esp + 0x78], 0xc4f43a1b
mov dword [esp + 0x7c], 0xc030c631
mov dword [esp + 0x80], 0xcc3fc221
mov dword [esp + 0x84], 0xc82ace20
mov dword [esp + 0x88], 0xd4f5ca3e
mov dword [esp + 0x8c], 0xd0f1d6f9
mov dword [esp + 0x90], 0xdc32d23f
mov dword [esp + 0x94], 0xd8f9de2b
mov dword [esp + 0x98], 0xe4e5daf9
mov dword [esp + 0x9c], 0
mov dword [esp + 8], 0
mov ecx, dword [esp + 8]
cmp ecx, 0x7f
ja 0x40ea7e
nop
nop
nop
nop
mov ecx, dword [esp + 8]
mov edx, dword [esp + 8]
movzx edx, byte [esp + edx + 0x20]
add ecx, 0x2e4617a6
xor ecx, edx
mov dword [esp + 0x2a8], ecx
mov ecx, dword [esp + 0x2a8]
add cl, 0x3b
mov edx, dword [esp + 8]
mov byte [esp + edx + 0x20], cl
inc dword [esp + 8]
mov ecx, dword [esp + 8]
cmp ecx, 0x80
jb 0x40ea40
movzx ecx, word [esp + 0x20]
test cx, cx
lea esi, [esp + 0x20]
je 0x40eab1
lea edi, [esp + 0x2a8]
lea edx, [esp + 0x22]
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov word [edi], cx
add edi, 2
movzx ecx, word [edx]
add edx, 2
test cx, cx
jne 0x40eaa0
mov word [edi], 0
movzx ecx, word [eax]
test cx, cx
je 0x40eae1
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 0x40ead0
mov word [edi], 0x22
jmp dword [0x4453b0]
push dword [esp + 0x1c]
call fcn.00403a10
add esp, 4
xor eax, eax
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
xor ecx, ecx
test eax, eax
setne cl
jmp dword [ecx*4 + 0x4453bc]
mov eax, dword [esp + 8]
mov dword [esp], 0x70605
mov byte [esp + 4], 0
mov dword [esp + 0x18], 0
mov ecx, dword [esp + 0x18]
cmp ecx, 4
ja 0x40eb83
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov ecx, dword [esp + 0x18]
mov edx, dword [esp + 0x18]
movzx edx, byte [esp + edx]
lea esi, [ecx + edx]
add ecx, 0x31
and ecx, edx
add ecx, ecx
sub esi, ecx
add esi, 0xad100031
mov dword [esp + 0xbc], esi
mov ecx, dword [esp + 0xbc]
add cl, 0xcb
mov edx, dword [esp + 0x18]
mov byte [esp + edx], cl
inc dword [esp + 0x18]
mov ecx, dword [esp + 0x18]
cmp ecx, 5
jb 0x40eb40
mov ecx, dword [0x44a974]
test ecx, ecx
je case.0x40e8f4.0
mov edx, dword [esp]
xor esi, esi
mov edi, dword [0x44a978]
nop
nop
nop
nop
nop
nop
nop
nop
cmp dword [edi + esi*8], 0x625b6034
je 0x40ebb0
inc esi
cmp ecx, esi
jne 0x40eba0
jmp case.0x40e8f4.0
mov ecx, dword [edi + esi*8 + 4]
cmp ecx, edx
je case.0x40e8f4.0
push eax
push 1
push dword [0x44a97c]
push ecx
call fcn.0043d1f0
add esp, 0x10
lea ecx, [esp + 0xaa8]
call fcn.0040a220
lea ecx, [esp + 0xb10]
call fcn.0040a220
lea ecx, [esp + 0xb78]
call fcn.0040a220
lea ecx, [esp + 0xbe0]
call fcn.0040a220
lea ecx, [esp + 0xc48]
call fcn.0040a220
lea ecx, [esp + 0x240]
call fcn.0040a220
mov al, 1
jmp 0x40eafa
mov dword [edi + 2], 0x220022
mov word [edi + 6], 0
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 [0x44a968]
call fcn.0043e870
add esp, 8
lea ecx, [esp + 8]
lea edx, [esp + 0x2a8]
push ecx
push esi
push 0
push 0
push 0x8000000
push 0
push 0
push 0
push edx
push 0
call eax
mov dword [edi + 2], 0x220022
mov word [edi + 6], 0
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 [0x44a968]
call fcn.0043e870
add esp, 8
lea ecx, [esp + 8]
lea edx, [esp + 0x2a8]
push ecx
push esi
push 0
push 0
push 0x8000000
push 0
push 0
push 0
push edx
push 0
call eax
jmp dword [0x4453b8]
mov dword [esp + 0x40], esi
jmp 0x40ee78
mov ebx, dword [esp + 0x12c]
inc ebx
push esi
call fcn.004039d0
add esp, 4
xor ecx, ecx
cmp ebx, eax
setb cl
mov al, 1
jmp dword [ecx*4 + 0x4453cc]
mov dword [esp + 0x12c], ebx
push ebx
push esi
call fcn.004039e0
add esp, 8
mov word [esp + 0x98], 0xe16a
mov dword [esp + 0x9a], 0
mov ebx, eax
mov dword [esp + 4], 0
mov eax, dword [esp + 4]
cmp eax, 5
ja 0x40ef09
nop
nop
nop
nop
nop
nop
mov eax, dword [esp + 4]
mov ecx, dword [esp + 4]
movzx ecx, byte [esp + ecx + 0x98]
add eax, 0x6d1ee48b
xor eax, ecx
mov dword [esp + 0x48], eax
mov eax, dword [esp + 0x48]
add al, 0x93
mov ecx, dword [esp + 4]
mov byte [esp + ecx + 0x98], al
inc dword [esp + 4]
mov eax, dword [esp + 4]
cmp eax, 6
jb 0x40eed0
push 3
push edi
push ebx
call fcn.004038b0
add esp, 0xc
xor ecx, ecx
test eax, eax
sete cl
jmp dword [ecx*4 + 0x4453d4]
jmp dword [0x4453dc]
mov word [esp + 0x48], 0x8012
lea eax, [esp + 0x4a]
mov word [eax + 4], 0
mov dword [eax], 0
mov dword [esp + 0x10], 0
mov eax, dword [esp + 0x10]
cmp eax, 7
ja 0x40ef93
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x10]
movzx ecx, byte [esp + ecx + 0x48]
add eax, 0xe427b7fb
xor eax, ecx
mov dword [esp + 0x28], eax
mov eax, dword [esp + 0x28]
add al, 0x84
mov ecx, dword [esp + 0x10]
mov byte [esp + ecx + 0x48], al
inc dword [esp + 0x10]
mov eax, dword [esp + 0x10]
cmp eax, 8
jb 0x40ef60
push 5
lea eax, [esp + 0x4c]
push eax
push ebx
call fcn.004038b0
add esp, 0xc
xor ecx, ecx
test eax, eax
setne cl
jmp dword [ecx*4 + 0x4454dc]
mov dword [esp + 0x44], 0xca41
jmp dword [0x4454e8]
mov eax, dword [esp + 0x140]
xor ecx, ecx
cmp eax, 2
setl cl
jmp dword [ecx*4 + 0x4453ec]
xor ecx, ecx
cmp eax, 3
setl cl
jmp dword [ecx*4 + 0x4453f4]
sete al
movzx eax, al
jmp dword [eax*4 + 0x4453fc]
mov word [esp + 0x98], 0x3a52
mov dword [esp + 0x9a], 0
mov dword [esp + 4], 0
mov eax, dword [esp + 4]
cmp eax, 5
ja 0x40f059
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp + 4]
mov ecx, dword [esp + 4]
movzx ecx, byte [esp + ecx + 0x98]
add eax, 0x9b789228
xor eax, ecx
mov dword [esp + 0x48], eax
mov eax, dword [esp + 0x48]
add al, 0xed
mov ecx, dword [esp + 4]
mov byte [esp + ecx + 0x98], al
inc dword [esp + 4]
mov eax, dword [esp + 4]
cmp eax, 6
jb 0x40f020
push 2
push edi
push ebx
call fcn.004038b0
add esp, 0xc
xor ecx, ecx
test eax, eax
setne cl
jmp dword [ecx*4 + 0x4454cc]
mov dword [esp + 0x14], 0x1ead
mov dword [esp + 0x10], 0
mov eax, dword [esp + 0x10]
cmp eax, 3
ja 0x40f0c3
nop
nop
nop
nop
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x10]
movzx ecx, byte [esp + ecx + 0x14]
add eax, 0x407903b5
xor eax, ecx
mov dword [esp + 0x28], eax
mov eax, dword [esp + 0x28]
add al, 0x58
mov ecx, dword [esp + 0x10]
mov byte [esp + ecx + 0x14], al
inc dword [esp + 0x10]
mov eax, dword [esp + 0x10]
cmp eax, 4
jb 0x40f090
push 2
lea eax, [esp + 0x18]
push eax
push ebx
call fcn.004038b0
add esp, 0xc
xor ecx, ecx
test eax, eax
setne cl
jmp dword [ecx*4 + 0x4454d4]
mov eax, dword [case.0x40ef1c.1]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
jmp eax
xor ecx, ecx
test eax, eax
setle cl
jmp dword [ecx*4 + 0x445404]
mov word [esp + 0x98], 0x1283
lea eax, [esp + 0x9a]
mov byte [eax + 4], 0
mov dword [eax], 0
mov dword [esp + 4], 0
mov eax, dword [esp + 4]
cmp eax, 6
ja 0x40f184
nop
nop
nop
nop
nop
nop
mov eax, dword [esp + 4]
mov ecx, dword [esp + 4]
movzx ecx, byte [esp + ecx + 0x98]
mov edx, eax
and edx, 0xd998fb08
xor eax, 0xd998fb08
lea eax, [eax + edx*2]
xor eax, ecx
mov dword [esp + 0x48], eax
mov eax, dword [esp + 0x48]
add al, 0xe5
mov ecx, dword [esp + 4]
mov byte [esp + ecx + 0x98], al
inc dword [esp + 4]
mov eax, dword [esp + 4]
cmp eax, 7
jb 0x40f140
push edi
push ebx
call fcn.00403220
add esp, 8
mov dword [esp + 0x1c], eax
mov word [esp + 0x98], 0x2abb
lea eax, [esp + 0x9a]
mov byte [eax + 4], 0
mov dword [eax], 0
mov dword [esp + 4], 0
mov eax, dword [esp + 4]
cmp eax, 6
ja 0x40f206
nop
nop
mov eax, dword [esp + 4]
mov ecx, dword [esp + 4]
movzx ecx, byte [esp + ecx + 0x98]
add eax, 0xd04bf4cf
xor eax, ecx
mov dword [esp + 0x48], eax
mov eax, dword [esp + 0x48]
mov ecx, eax
not ecx
and ecx, 0xfa
and eax, 5
sub eax, ecx
mov ecx, dword [esp + 4]
mov byte [esp + ecx + 0x98], al
inc dword [esp + 4]
mov eax, dword [esp + 4]
cmp eax, 7
jb 0x40f1c0
push edi
push ebx
call fcn.00403220
add esp, 8
mov ebx, dword [esp + 0x1c]
test ebx, ebx
sete dl
test eax, eax
sete cl
or cl, dl
movzx ecx, cl
jmp dword [ecx*4 + 0x4455ec]
mov ecx, ebx
mov edx, ebx
nop
nop
mov ebx, ecx
inc ecx
cmp byte [ebx], 0
jne 0x40f230
mov dword [esp + 0x18], eax
xor esi, esi
cmp ebx, edx
jbe 0x40f27d
cmp byte [edx], 0
je 0x40f27d
xor esi, esi
mov edi, dword [esp + 0x1c]
nop
nop
nop
mov dword [esp + 0x98], 0
lea eax, [esp + 0x98]
push eax
push ebx
push edi
call fcn.0040d840
add esp, 0xc
inc esi
lea ecx, [edi + eax]
cmp ecx, ebx
jae 0x40f27d
cmp byte [edi + eax], 0
mov edi, ecx
jne 0x40f250
mov eax, esi
inc eax
lea eax, [esi + esi + 2]
jns 0x40f28b
mov eax, 0xffffffff
push eax
call fcn.00409a50
add esp, 4
mov dword [esp + 0x98], 0
lea ecx, [eax + esi*2]
mov esi, eax
mov dword [esp + 0x3c], eax
mov dword [esp + 0x20], ecx
cmp eax, ecx
mov eax, dword [esp + 0x18]
mov edi, dword [esp + 0x1c]
jae 0x40f519
mov esi, dword [esp + 0x3c]
cmp edi, ebx
jae 0x40f519
mov esi, dword [esp + 0x3c]
nop
nop
nop
nop
cmp byte [edi], 0
je 0x40f519
lea eax, [esp + 0x98]
push eax
push ebx
push edi
call fcn.0040d840
add esp, 0xc
movzx ecx, word [esp + 0x98]
mov word [esi], cx
add esi, 2
cmp esi, dword [esp + 0x20]
jae 0x40f515
add edi, eax
cmp edi, ebx
mov eax, dword [esp + 0x18]
jb 0x40f2d0
jmp 0x40f519
mov word [esp + 0x98], 0x5627
mov dword [esp + 0x9a], 0
mov dword [esp + 4], 0
mov eax, dword [esp + 4]
cmp eax, 5
ja 0x40f379
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp + 4]
mov ecx, dword [esp + 4]
movzx ecx, byte [esp + ecx + 0x98]
add eax, 0x7f0fb458
xor eax, ecx
mov dword [esp + 0x48], eax
mov eax, dword [esp + 0x48]
add al, 0xf1
mov ecx, dword [esp + 4]
mov byte [esp + ecx + 0x98], al
inc dword [esp + 4]
mov eax, dword [esp + 4]
cmp eax, 6
jb 0x40f340
push edi
push ebx
call fcn.00403220
add esp, 8
mov dword [esp + 0x1c], eax
mov dword [esp + 4], 0x8304
mov dword [esp + 0x48], 0
mov eax, dword [esp + 0x48]
cmp eax, 3
ja 0x40f3ec
mov eax, dword [esp + 0x48]
mov ecx, dword [esp + 0x48]
movzx ecx, byte [esp + ecx + 4]
lea edx, [eax - 0x4a690dec]
lea esi, [eax + ecx]
add esi, 0xb596f214
add eax, 0x14
or eax, edx
and eax, ecx
add eax, eax
sub esi, eax
mov dword [esp + 0x98], esi
mov eax, dword [esp + 0x98]
add al, 0x6a
mov ecx, dword [esp + 0x48]
mov byte [esp + ecx + 4], al
inc dword [esp + 0x48]
mov eax, dword [esp + 0x48]
cmp eax, 4
jb case.default.0x40f411
lea eax, [esp + 4]
push eax
push ebx
call fcn.00403220
add esp, 8
mov ebx, dword [esp + 0x1c]
test ebx, ebx
sete dl
test eax, eax
sete cl
or cl, dl
movzx ecx, cl
mov esi, dword [esp + 0x40]
jmp dword [ecx*4 + 0x445664]
mov ecx, ebx
mov edx, ebx
nop
nop
nop
nop
mov ebx, ecx
inc ecx
cmp byte [ebx], 0
jne 0x40f420
mov dword [esp + 0x20], eax
xor edi, edi
cmp ebx, edx
jbe 0x40f46d
cmp byte [edx], 0
je 0x40f46d
xor edi, edi
mov esi, dword [esp + 0x1c]
nop
nop
nop
mov dword [esp + 0x98], 0
lea eax, [esp + 0x98]
push eax
push ebx
push esi
call fcn.0040d840
add esp, 0xc
inc edi
lea ecx, [esi + eax]
cmp ecx, ebx
jae 0x40f46d
cmp byte [esi + eax], 0
mov esi, ecx
jne 0x40f440
mov eax, edi
inc eax
lea eax, [edi + edi + 2]
jns 0x40f47b
mov eax, 0xffffffff
push eax
call fcn.00409a50
add esp, 4
mov dword [esp + 0x98], 0
lea ecx, [eax + edi*2]
mov edi, eax
mov dword [esp + 0x34], eax
mov dword [esp + 0x18], ecx
cmp eax, ecx
mov eax, dword [esp + 0x20]
mov esi, dword [esp + 0x1c]
jae 0x40f9a5
mov edi, dword [esp + 0x34]
cmp esi, ebx
jae 0x40f9a5
mov edi, dword [esp + 0x34]
nop
nop
nop
nop
cmp byte [esi], 0
je 0x40f9a5
lea eax, [esp + 0x98]
push eax
push ebx
push esi
call fcn.0040d840
add esp, 0xc
movzx ecx, word [esp + 0x98]
mov word [edi], cx
add edi, 2
cmp edi, dword [esp + 0x18]
jae 0x40f9a1
add esi, eax
cmp esi, ebx
mov eax, dword [esp + 0x20]
jb 0x40f4c0
jmp 0x40f9a5
sete al
movzx eax, al
jmp dword [eax*4 + 0x44540c]
jmp dword [0x445418]
mov eax, dword [esp + 0x18]
mov word [esi], 0
lea edi, [eax - 1]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp byte [edi + 1], 0
lea edi, [edi + 1]
jne 0x40f530
xor esi, esi
cmp eax, edi
jae 0x40f57d
cmp byte [eax], 0
je 0x40f57d
xor esi, esi
mov ebx, dword [esp + 0x18]
nop
nop
nop
nop
nop
nop
mov dword [esp + 0x98], 0
lea eax, [esp + 0x98]
push eax
push edi
push ebx
call fcn.0040d840
add esp, 0xc
inc esi
lea ecx, [ebx + eax]
cmp ecx, edi
jae 0x40f57d
cmp byte [ebx + eax], 0
mov ebx, ecx
jne 0x40f550
mov eax, esi
inc eax
lea eax, [esi + esi + 2]
jns 0x40f58b
mov eax, 0xffffffff
push eax
call fcn.00409a50
add esp, 4
mov dword [esp + 0x98], 0
lea ecx, [eax + esi*2]
mov esi, eax
mov dword [esp + 0x34], eax
mov dword [esp + 0x20], ecx
cmp eax, ecx
mov ebx, dword [esp + 0x18]
jae 0x40f5f1
mov esi, dword [esp + 0x34]
cmp ebx, edi
jae 0x40f5f1
mov esi, dword [esp + 0x34]
cmp byte [ebx], 0
je 0x40f5f1
lea eax, [esp + 0x98]
push eax
push edi
push ebx
call fcn.0040d840
add esp, 0xc
movzx ecx, word [esp + 0x98]
mov word [esi], cx
add esi, 2
cmp esi, dword [esp + 0x20]
jae 0x40f5f1
add ebx, eax
cmp ebx, edi
jb 0x40f5c0
mov word [esi], 0
mov word [esp + 0x98], 0xe519
mov byte [esp + 0x9a], 0x7e
mov dword [esp + 0x9b], 0
mov dword [esp + 4], 0
mov eax, dword [esp + 4]
cmp eax, 6
ja 0x40f695
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov ecx, dword [esp + 4]
mov eax, dword [esp + 4]
movzx edx, byte [esp + eax + 0x98]
lea eax, [ecx + edx]
add eax, 0x8072efec
add ecx, 0x8072efec
mov esi, edx
not esi
or esi, ecx
lea ecx, [edx + esi]
inc ecx
sub eax, ecx
mov edx, eax
xor edx, ecx
not ecx
and ecx, eax
add ecx, ecx
sub ecx, edx
mov dword [esp + 0x48], ecx
mov eax, dword [esp + 0x48]
mov ecx, eax
not ecx
and ecx, 0x90
and eax, 0x6f
sub eax, ecx
mov ecx, dword [esp + 4]
mov byte [esp + ecx + 0x98], al
inc dword [esp + 4]
mov eax, dword [esp + 4]
cmp eax, 7
jb 0x40f630
lea edi, [esp + 0x98]
push edi
push dword [ebp + 8]
call fcn.00403480
add esp, 8
xor ecx, ecx
mov dword [esp + 0x24], eax
test eax, eax
setne cl
xor ebx, ebx
mov dword [esp + 0x1c], 0
jmp dword [ecx*4 + 0x4455f4]
mov ecx, edi
push 2
call fcn.0040a1e0
push ebx
push dword [esp + 0x20]
push dword [esp + 0x3c]
push dword [esp + 0x48]
push edi
call fcn.004141c0
add esp, 0x14
mov ecx, edi
call fcn.0040ab50
movzx eax, al
lea ebx, [0x449967]
jmp dword [eax*4 + 0x445614]
push dword [esp + 0x24]
call fcn.004039d0
add esp, 4
mov ebx, eax
mov ecx, 0xc
mul ecx
seto dl
mov ecx, 0xffffffff
mov esi, 0xffffffff
add eax, 4
jb 0x40f729
mov esi, eax
test dl, dl
jne 0x40f72f
mov ecx, esi
push ecx
call fcn.00409a50
add esp, 4
mov dword [eax], ebx
add eax, 4
mov dword [esp + 0x1c], eax
xor eax, eax
test ebx, ebx
sete al
jmp dword [eax*4 + 0x4455fc]
lea eax, [ebx + ebx*2]
mov ecx, dword [esp + 0x1c]
lea eax, [ecx + eax*4]
mov dword [ecx], 0
mov dword [ecx + 4], 0
mov byte [ecx + 8], 0
add ecx, 0xc
xor edx, edx
cmp ecx, eax
sete dl
jmp dword [edx*4 + 0x445604]
mov dword [ecx], 0
mov dword [ecx + 4], 0
mov byte [ecx + 8], 0
add ecx, 0xc
xor edx, edx
cmp ecx, eax
sete dl
jmp dword [edx*4 + 0x445604]
xor esi, esi
xor eax, eax
cmp esi, ebx
setb al
mov dword [esp + 0x30], ebx
jmp dword [eax*4 + 0x44560c]
mov eax, dword [esp + 0x20]
mov word [edi], 0
xor esi, esi
mov edi, 0xfffffffe
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
add edi, 2
cmp byte [eax + esi], 0
lea esi, [esi + 1]
jne 0x40f9c0
lea eax, [edi + 2]
test esi, esi
jns 0x40f9d8
mov eax, 0xffffffff
push eax
call fcn.00409a50
add esp, 4
mov dword [esp + 0x98], 0
add edi, eax
mov dword [esp + 0x18], eax
mov dword [esp + 0x38], eax
cmp eax, edi
mov ecx, dword [esp + 0x20]
jae 0x40fa5b
lea ebx, [ecx + esi]
dec ebx
mov eax, dword [esp + 0x38]
mov dword [esp + 0x18], eax
cmp ecx, ebx
jae 0x40fa5b
mov eax, dword [esp + 0x38]
mov dword [esp + 0x18], eax
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp byte [ecx], 0
je 0x40fa5b
lea eax, [esp + 0x98]
push eax
push ebx
push ecx
mov esi, ecx
call fcn.0040d840
add esp, 0xc
movzx ecx, word [esp + 0x98]
mov edx, dword [esp + 0x18]
mov word [edx], cx
add edx, 2
mov dword [esp + 0x18], edx
cmp edx, edi
jae 0x40fa5b
add esi, eax
cmp esi, ebx
mov ecx, esi
jb 0x40fa20
mov eax, dword [esp + 0x18]
mov word [eax], 0
mov dword [esp + 4], 0x81081e
mov dword [esp + 0x48], 0
mov eax, dword [esp + 0x48]
cmp eax, 3
ja 0x40fab9
nop
nop
nop
mov eax, dword [esp + 0x48]
mov ecx, dword [esp + 0x48]
movzx ecx, byte [esp + ecx + 4]
add eax, 0xd33f37b9
xor eax, ecx
mov dword [esp + 0x98], eax
mov eax, dword [esp + 0x98]
add al, 0xc6
mov ecx, dword [esp + 0x48]
mov byte [esp + ecx + 4], al
inc dword [esp + 0x48]
mov eax, dword [esp + 0x48]
cmp eax, 4
jb 0x40fa80
lea eax, [esp + 4]
push eax
push dword [ebp + 8]
call fcn.00403480
add esp, 8
xor ecx, ecx
mov dword [esp + 0x30], eax
test eax, eax
setne cl
xor ebx, ebx
mov dword [esp + 0x24], 0
lea edi, [esp + 0x98]
jmp dword [ecx*4 + 0x44566c]
mov ecx, edi
push 3
call fcn.0040a1e0
push dword [esp + 0x24]
push ebx
push dword [esp + 0x40]
push dword [esp + 0x40]
push edi
call fcn.00416940
add esp, 0x14
mov ecx, edi
call fcn.0040ab50
xor eax, eax
test ebx, ebx
sete al
jmp dword [eax*4 + 0x44568c]
push dword [esp + 0x30]
call fcn.004039d0
add esp, 4
mov ecx, eax
mov dword [esp + 0x24], eax
mov ecx, 0xc
mul ecx
seto dl
mov ecx, 0xffffffff
mov esi, 0xffffffff
add eax, 4
jb 0x40fbb0
mov esi, eax
test dl, dl
jne 0x40fbb6
mov ecx, esi
push ecx
call fcn.00409a50
add esp, 4
mov ebx, eax
mov ecx, dword [esp + 0x24]
mov dword [eax], ecx
add ebx, 4
xor eax, eax
test ecx, ecx
sete al
jmp dword [eax*4 + 0x445674]
mov eax, dword [esp + 0x24]
lea eax, [eax + eax*2]
lea eax, [ebx + eax*4]
mov dword [ebx], 0
mov dword [ebx + 4], 0
mov dword [ebx + 8], 0
lea ecx, [ebx + 0xc]
xor edx, edx
cmp ecx, eax
sete dl
jmp dword [edx*4 + 0x44567c]
xor ecx, ecx
xor eax, eax
cmp ecx, dword [esp + 0x24]
setb al
mov dword [esp + 0x3c], ebx
jmp dword [eax*4 + 0x445684]
mov word [esp + 4], 0x71ca
lea eax, [esp + 6]
mov byte [eax + 2], 0
mov word [eax], 0
mov dword [esp + 0x10], 0
mov eax, dword [esp + 0x10]
cmp eax, 4
ja 0x40ff80
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x10]
movzx ecx, byte [esp + ecx + 4]
lea edx, [eax + ecx]
add edx, 0x8b0178f
add eax, 0x8b0178f
and eax, ecx
add eax, eax
sub edx, eax
mov dword [esp + 0x28], edx
mov eax, dword [esp + 0x28]
add al, 0x1f
mov ecx, dword [esp + 0x10]
mov byte [esp + ecx + 4], al
inc dword [esp + 0x10]
mov eax, dword [esp + 0x10]
cmp eax, 5
jb 0x40ff40
push 3
lea eax, [esp + 8]
push eax
push ebx
call fcn.004038b0
add esp, 0xc
xor ecx, ecx
test eax, eax
setne cl
jmp dword [ecx*4 + 0x4454fc]
mov dword [esp + 0x11c], 0x9b0177
mov dword [esp + 0x10], 0
mov eax, dword [esp + 0x10]
cmp eax, 3
ja 0x40fff9
nop
nop
nop
nop
nop
nop
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x10]
movzx ecx, byte [esp + ecx + 0x11c]
add eax, 0xbac17cca
xor eax, ecx
mov dword [esp + 0x28], eax
mov eax, dword [esp + 0x28]
add al, 0xa9
mov ecx, dword [esp + 0x10]
mov byte [esp + ecx + 0x11c], al
inc dword [esp + 0x10]
mov eax, dword [esp + 0x10]
cmp eax, 4
jb 0x40ffc0
push 3
lea eax, [esp + 0x120]
push eax
push ebx
call fcn.004038b0
add esp, 0xc
xor ecx, ecx
test eax, eax
sete cl
jmp dword [ecx*4 + 0x445504]
mov dword [esp + 4], 0x9305
mov dword [esp + 0x48], 0
mov eax, dword [esp + 0x48]
cmp eax, 3
ja 0x410079
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp + 0x48]
mov ecx, dword [esp + 0x48]
movzx ecx, byte [esp + ecx + 4]
add eax, 0xdc68b967
xor eax, ecx
mov dword [esp + 0x98], eax
mov eax, dword [esp + 0x98]
add al, 5
mov ecx, dword [esp + 0x48]
mov byte [esp + ecx + 4], al
inc dword [esp + 0x48]
mov eax, dword [esp + 0x48]
cmp eax, 4
jb 0x410040
lea eax, [esp + 4]
push eax
push ebx
call fcn.00403220
add esp, 8
mov dword [esp + 0x24], eax
mov word [esp + 0x98], 0x2e91
lea eax, [esp + 0x9a]
mov word [eax + 4], 0
mov dword [eax], 0
mov dword [esp + 4], 0
mov eax, dword [esp + 4]
cmp eax, 7
ja 0x410105
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp + 4]
mov ecx, dword [esp + 4]
movzx ecx, byte [esp + ecx + 0x98]
lea edx, [eax + 0xc7]
add eax, ecx
and edx, ecx
add edx, edx
sub eax, edx
add eax, 0x339a7dc7
mov dword [esp + 0x48], eax
mov eax, dword [esp + 0x48]
add al, 0x1a
mov ecx, dword [esp + 4]
mov byte [esp + ecx + 0x98], al
inc dword [esp + 4]
mov eax, dword [esp + 4]
cmp eax, 8
jb 0x4100c0
push edi
push ebx
call fcn.00403220
add esp, 8
mov dword [esp + 0x20], eax
mov word [esp + 0x98], 0xe81a
lea eax, [esp + 0x9a]
mov word [eax + 4], 0
mov dword [eax], 0
mov dword [esp + 4], 0
mov eax, dword [esp + 4]
cmp eax, 7
ja 0x410189
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 + 0x98]
add eax, 0x5a31b5a2
xor eax, ecx
mov dword [esp + 0x48], eax
mov eax, dword [esp + 0x48]
add al, 0xb5
mov ecx, dword [esp + 4]
mov byte [esp + ecx + 0x98], al
inc dword [esp + 4]
mov eax, dword [esp + 4]
cmp eax, 8
jb 0x410150
push edi
push ebx
call fcn.00403480
add esp, 8
mov dword [esp + 0x30], eax
mov word [esp + 0x98], 0xb932
lea eax, [esp + 0x9a]
mov byte [eax + 2], 0
mov word [eax], 0
mov dword [esp + 4], 0
mov eax, dword [esp + 4]
cmp eax, 4
ja 0x410209
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 + 0x98]
add eax, 0xe16f5924
xor eax, ecx
mov dword [esp + 0x48], eax
mov eax, dword [esp + 0x48]
add al, 0x64
mov ecx, dword [esp + 4]
mov byte [esp + ecx + 0x98], al
inc dword [esp + 4]
mov eax, dword [esp + 4]
cmp eax, 5
jb 0x4101d0
push edi
push ebx
call fcn.00403220
add esp, 8
mov dword [esp + 0x104], eax
mov dword [esp + 4], 0xa4c1
mov dword [esp + 0x48], 0
mov eax, dword [esp + 0x48]
cmp eax, 3
ja 0x41028c
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp + 0x48]
mov ecx, dword [esp + 0x48]
movzx ecx, byte [esp + ecx + 4]
lea edx, [eax + 0x490c192c]
lea esi, [eax + ecx]
add esi, 0x490c192c
add eax, 0x2c
or eax, edx
and eax, ecx
add eax, eax
sub esi, eax
mov dword [esp + 0x98], esi
mov eax, dword [esp + 0x98]
add al, 0x77
mov ecx, dword [esp + 0x48]
mov byte [esp + ecx + 4], al
inc dword [esp + 0x48]
mov eax, dword [esp + 0x48]
cmp eax, 4
jb 0x410240
lea eax, [esp + 4]
push eax
push ebx
call fcn.00403350
add esp, 8
mov dword [esp + 4], 0x7c809c
fnstcw word [esp + 0x112]
movzx eax, word [esp + 0x112]
or eax, 0xc00
mov word [esp + 0x12a], ax
fldcw word [esp + 0x12a]
fistp dword [esp + 0x134]
fldcw word [esp + 0x112]
mov eax, dword [esp + 0x134]
mov dword [esp + 0x3c], eax
mov dword [esp + 0x48], 0
mov eax, dword [esp + 0x48]
cmp eax, 3
ja 0x410329
nop
mov eax, dword [esp + 0x48]
mov ecx, dword [esp + 0x48]
movzx ecx, byte [esp + ecx + 4]
add eax, 0x23cdbfb6
xor eax, ecx
mov dword [esp + 0x98], eax
mov eax, dword [esp + 0x98]
add al, 0x3c
mov ecx, dword [esp + 0x48]
mov byte [esp + ecx + 4], al
inc dword [esp + 0x48]
mov eax, dword [esp + 0x48]
cmp eax, 4
jb 0x4102f0
lea eax, [esp + 4]
push eax
push ebx
call fcn.00403350
add esp, 8
xor esi, esi
mov ebx, 0xfffffffe
mov eax, dword [esp + 0x24]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
add ebx, 2
cmp byte [eax + esi], 0
lea esi, [esi + 1]
jne 0x410350
fnstcw word [esp + 0x110]
movzx eax, word [esp + 0x110]
or eax, 0xc00
mov word [esp + 0x128], ax
fldcw word [esp + 0x128]
fistp dword [esp + 0x130]
fldcw word [esp + 0x110]
mov eax, dword [esp + 0x130]
mov dword [esp + 0x34], eax
lea eax, [ebx + 2]
test esi, esi
jns 0x4103a4
mov eax, 0xffffffff
push eax
call fcn.00409a50
add esp, 4
mov dword [esp + 0x98], 0
add ebx, eax
mov dword [esp + 0x18], eax
mov dword [esp + 0x1c], eax
cmp eax, ebx
mov ecx, dword [esp + 0x24]
jae 0x41041d
lea edi, [ecx + esi]
dec edi
mov eax, dword [esp + 0x1c]
mov dword [esp + 0x18], eax
cmp ecx, edi
jae 0x41041d
mov eax, dword [esp + 0x1c]
mov dword [esp + 0x18], eax
cmp byte [ecx], 0
je 0x41041d
lea eax, [esp + 0x98]
push eax
push edi
push ecx
mov esi, ecx
call fcn.0040d840
add esp, 0xc
movzx ecx, word [esp + 0x98]
mov edx, dword [esp + 0x18]
mov word [edx], cx
add edx, 2
mov dword [esp + 0x18], edx
cmp edx, ebx
jae 0x41041d
add esi, eax
cmp esi, edi
mov ecx, esi
jb 0x4103e2
mov eax, dword [esp + 0x18]
mov word [eax], 0
mov dword [esp + 0x48], 0
mov dword [esp + 0x4c], 0
mov dword [esp + 0x50], 0
lea ecx, [esp + 0x48]
mov esi, dword [esp + 0x1c]
push esi
call fcn.0043b480
jmp dword [0x44551c]
mov word [esp + 0x98], 0x3384
lea eax, [esp + 0x9a]
mov byte [eax + 2], 0
mov word [eax], 0
mov dword [esp + 4], 0
mov eax, dword [esp + 4]
cmp eax, 4
ja 0x410fb9
nop
nop
nop
nop
nop
mov eax, dword [esp + 4]
mov ecx, dword [esp + 4]
movzx ecx, byte [esp + ecx + 0x98]
add eax, 0x8077c11
xor eax, ecx
mov dword [esp + 0x48], eax
mov eax, dword [esp + 0x48]
add al, 0xdf
mov ecx, dword [esp + 4]
mov byte [esp + ecx + 0x98], al
inc dword [esp + 4]
mov eax, dword [esp + 4]
cmp eax, 5
jb 0x410f80
push edi
push ebx
call fcn.00403350
fstp st(0)
add esp, 8
mov word [esp + 0x98], 0x3384
lea eax, [esp + 0x9a]
mov byte [eax + 2], 0
mov word [eax], 0
mov dword [esp + 4], 0
mov eax, dword [esp + 4]
cmp eax, 4
ja 0x411029
mov eax, dword [esp + 4]
mov ecx, dword [esp + 4]
movzx ecx, byte [esp + ecx + 0x98]
add eax, 0x8077c11
xor eax, ecx
mov dword [esp + 0x48], eax
mov eax, dword [esp + 0x48]
add al, 0xdf
mov ecx, dword [esp + 4]
mov byte [esp + ecx + 0x98], al
inc dword [esp + 4]
mov eax, dword [esp + 4]
cmp eax, 5
jb 0x410ff0
push edi
push ebx
call fcn.00403350
add esp, 8
fnstcw word [esp + 0x10a]
movzx eax, word [esp + 0x10a]
or eax, 0xc00
mov word [esp + 0x122], ax
fldcw word [esp + 0x122]
fistp dword [esp + 0x140]
fldcw word [esp + 0x10a]
jmp dword [0x4453e4]
push ebx
call fcn.004039d0
add esp, 4
jmp dword [0x445480]
push ebx
call fcn.004039d0
add esp, 4
jmp case.0x40e75f.60
jmp case.0x40ef1c.1
xor ecx, ecx
test eax, eax
setne cl
jmp dword [ecx*4 + 0x445424]
mov word [esp + 0x48], 0xb55d
lea eax, [esp + 0x4a]
mov byte [eax + 2], 0
mov word [eax], 0
mov dword [esp + 0x14], 0
mov eax, dword [esp + 0x14]
cmp eax, 4
ja 0x4112b3
nop
nop
nop
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x14]
movzx ecx, byte [esp + ecx + 0x48]
add eax, 0xaececc3f
xor eax, ecx
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x10]
add al, 0xb
mov ecx, dword [esp + 0x14]
mov byte [esp + ecx + 0x48], al
inc dword [esp + 0x14]
mov eax, dword [esp + 0x14]
cmp eax, 5
jb 0x411280
push 5
lea eax, [esp + 0x4c]
push eax
push ebx
call fcn.004038b0
add esp, 0xc
xor ecx, ecx
test eax, eax
setne cl
jmp dword [ecx*4 + 0x44542c]
mov word [esp + 4], 0x44c1
lea eax, [esp + 6]
mov byte [eax + 2], 0
mov word [eax], 0
mov dword [esp + 0x14], 0
mov eax, dword [esp + 0x14]
cmp eax, 4
ja 0x411333
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x14]
movzx ecx, byte [esp + ecx + 4]
add eax, 0x64b416a7
xor eax, ecx
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x10]
add al, 0x14
mov ecx, dword [esp + 0x14]
mov byte [esp + ecx + 4], al
inc dword [esp + 0x14]
mov eax, dword [esp + 0x14]
cmp eax, 5
jb 0x411300
push 2
lea eax, [esp + 8]
push eax
push ebx
call fcn.004038b0
add esp, 0xc
xor ecx, ecx
test eax, eax
setne cl
jmp dword [ecx*4 + 0x445434]
mov word [esp + 0x28], 0xc2af
lea eax, [esp + 0x29]
mov byte [eax + 5], 0
mov dword [eax + 1], 0
mov dword [esp + 0x14], 0
mov eax, dword [esp + 0x14]
cmp eax, 6
ja 0x4113b3
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x14]
movzx ecx, byte [esp + ecx + 0x28]
add eax, 0x3fa90944
xor eax, ecx
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x10]
add al, 0x79
mov ecx, dword [esp + 0x14]
mov byte [esp + ecx + 0x28], al
inc dword [esp + 0x14]
mov eax, dword [esp + 0x14]
cmp eax, 7
jb 0x411380
push 3
lea eax, [esp + 0x2c]
push eax
push ebx
call fcn.004038b0
add esp, 0xc
xor ecx, ecx
test eax, eax
setne cl
jmp dword [ecx*4 + 0x44543c]
mov dword [esp + 0x44], 0x853715
mov dword [esp + 0x14], 0
mov eax, dword [esp + 0x14]
cmp eax, 3
ja 0x411423
nop
nop
nop
nop
nop
nop
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x14]
movzx ecx, byte [esp + ecx + 0x44]
add eax, 0x20f2525f
xor eax, ecx
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x10]
add al, 0x1c
mov ecx, dword [esp + 0x14]
mov byte [esp + ecx + 0x44], al
inc dword [esp + 0x14]
mov eax, dword [esp + 0x14]
cmp eax, 4
jb 0x4113f0
push 3
lea eax, [esp + 0x48]
push eax
push ebx
call fcn.004038b0
add esp, 0xc
xor ecx, ecx
test eax, eax
sete cl
jmp dword [ecx*4 + 0x445444]
jmp dword [0x44544c]
mov dword [esp + 0x10], 0
mov eax, dword [esp + 0x10]
cmp eax, 3
ja case.0x40efaa.3
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x10]
movzx ecx, byte [esp + ecx + 0x44]
add eax, 0x4c116082
xor eax, ecx
mov dword [esp + 0x28], eax
mov eax, dword [esp + 0x28]
add al, 0xb7
mov ecx, dword [esp + 0x10]
mov byte [esp + ecx + 0x44], al
inc dword [esp + 0x10]
mov eax, dword [esp + 0x10]
cmp eax, 4
jb 0x411600
mov dword [esp + 0x10], 0
mov eax, dword [esp + 0x10]
cmp eax, 3
ja 0x411683
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x10]
movzx ecx, byte [esp + ecx + 0x44]
add eax, 0x4c116082
xor eax, ecx
mov dword [esp + 0x28], eax
mov eax, dword [esp + 0x28]
add al, 0xb7
mov ecx, dword [esp + 0x10]
mov byte [esp + ecx + 0x44], al
inc dword [esp + 0x10]
mov eax, dword [esp + 0x10]
cmp eax, 4
jb 0x411650
jmp dword [0x4454f0]
push 2
lea eax, [esp + 0x48]
push eax
push ebx
call fcn.004038b0
add esp, 0xc
xor ecx, ecx
test eax, eax
setne cl
jmp dword [ecx*4 + 0x4454f4]
mov esi, dword [esp + 4]
lea eax, [esi + esi]
test esi, esi
jns 0x4116b7
mov eax, 0xffffffff
push eax
call fcn.00409a50
add esp, 4
mov ecx, eax
lea eax, [esp + 4]
push eax
push esi
mov dword [esp + 0x3c], ecx
push ecx
push ebx
push edi
push 0
call dword [0x44a970]
jmp dword [0x44545c]
push edi
call fcn.00409a60
add esp, 4
mov ecx, dword [esp + 0x1c]
mov eax, ecx
jmp 0x411c98
mov ecx, dword [esp + 0x1c]
mov esi, ecx
jmp 0x411c90
mov word [esp + 0x98], 0xcc5d
mov dword [esp + 0x9a], 0
mov dword [esp + 0x14], 0
mov eax, dword [esp + 0x14]
cmp eax, 5
ja 0x411809
nop
nop
nop
nop
nop
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x14]
movzx ecx, byte [esp + ecx + 0x98]
add eax, 0xcd24d254
xor eax, ecx
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x10]
add al, 0x67
mov ecx, dword [esp + 0x14]
mov byte [esp + ecx + 0x98], al
inc dword [esp + 0x14]
mov eax, dword [esp + 0x14]
cmp eax, 6
jb 0x4117d0
push 2
push edi
push ebx
call fcn.004038b0
add esp, 0xc
jmp dword [0x445420]
mov word [esp + 0x98], 0xcc5d
mov dword [esp + 0x9a], 0
mov dword [esp + 0x14], 0
mov eax, dword [esp + 0x14]
cmp eax, 5
ja 0x411889
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x14]
movzx ecx, byte [esp + ecx + 0x98]
add eax, 0xcd24d254
xor eax, ecx
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x10]
add al, 0x67
mov ecx, dword [esp + 0x14]
mov byte [esp + ecx + 0x98], al
inc dword [esp + 0x14]
mov eax, dword [esp + 0x14]
cmp eax, 6
jb 0x411850
push 2
push edi
push ebx
call fcn.004038b0
add esp, 0xc
jmp case.0x40e75f.37
mov dword [esp + 0x24], eax
mov word [esp + 0x98], 0xd260
lea eax, [esp + 0x9a]
mov byte [eax + 4], 0
mov dword [eax], 0
mov dword [esp + 4], 0
mov eax, dword [esp + 4]
cmp eax, 6
ja 0x411909
nop
nop
nop
nop
nop
nop
mov eax, dword [esp + 4]
mov ecx, dword [esp + 4]
movzx ecx, byte [esp + ecx + 0x98]
add eax, 0x31351db3
xor eax, ecx
mov dword [esp + 0x48], eax
mov eax, dword [esp + 0x48]
add al, 0x9a
mov ecx, dword [esp + 4]
mov byte [esp + ecx + 0x98], al
inc dword [esp + 4]
mov eax, dword [esp + 4]
cmp eax, 7
jb 0x4118d0
push edi
push ebx
call fcn.00403480
add esp, 8
mov dword [esp + 0x3c], eax
mov word [esp + 0x98], 0x9d16
lea eax, [esp + 0x9a]
mov byte [eax + 4], 0
mov dword [eax], 0
mov dword [esp + 4], 0
mov eax, dword [esp + 4]
cmp eax, 6
ja 0x411994
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 + 0x98]
mov edx, eax
and edx, 0xe10c0690
xor eax, 0x610c0690
lea eax, [eax + edx*2]
xor eax, ecx
mov dword [esp + 0x48], eax
mov eax, dword [esp + 0x48]
add al, 0xf4
mov ecx, dword [esp + 4]
mov byte [esp + ecx + 0x98], al
inc dword [esp + 4]
mov eax, dword [esp + 4]
cmp eax, 7
jb 0x411950
push edi
push ebx
call fcn.00403220
add esp, 8
mov dword [esp + 0x1c], eax
mov word [esp + 0x98], 0x3691
lea eax, [esp + 0x9a]
mov word [eax + 4], 0
mov dword [eax], 0
mov dword [esp + 4], 0
mov eax, dword [esp + 4]
cmp eax, 7
ja 0x411a16
mov eax, dword [esp + 4]
mov ecx, dword [esp + 4]
movzx ecx, byte [esp + ecx + 0x98]
lea edx, [eax + ecx]
add eax, 0x85
and eax, ecx
add eax, eax
sub edx, eax
add edx, 0x811e3985
mov dword [esp + 0x48], edx
mov eax, dword [esp + 0x48]
add al, 0x50
mov ecx, dword [esp + 4]
mov byte [esp + ecx + 0x98], al
inc dword [esp + 4]
mov eax, dword [esp + 4]
cmp eax, 8
jb 0x4119d0
push edi
push ebx
call fcn.00403350
add esp, 8
mov word [esp + 0x98], 0x8f99
mov byte [esp + 0x9a], 0xf1
mov dword [esp + 0x9b], 0
fnstcw word [esp + 0x10e]
movzx eax, word [esp + 0x10e]
or eax, 0xc00
mov word [esp + 0x126], ax
fldcw word [esp + 0x126]
fistp dword [esp + 0x13c]
fldcw word [esp + 0x10e]
mov eax, dword [esp + 0x13c]
mov dword [esp + 0x38], eax
mov dword [esp + 4], 0
mov eax, dword [esp + 4]
cmp eax, 6
ja 0x411ac9
nop
nop
nop
nop
nop
nop
mov eax, dword [esp + 4]
mov ecx, dword [esp + 4]
movzx ecx, byte [esp + ecx + 0x98]
add eax, 0x38e61274
xor eax, ecx
mov dword [esp + 0x48], eax
mov eax, dword [esp + 0x48]
add al, 0x79
mov ecx, dword [esp + 4]
mov byte [esp + ecx + 0x98], al
inc dword [esp + 4]
mov eax, dword [esp + 4]
cmp eax, 7
jb 0x411a90
push edi
push ebx
call fcn.00403350
add esp, 8
mov dword [esp + 4], 0x49dce1
fnstcw word [esp + 0x10c]
movzx eax, word [esp + 0x10c]
or eax, 0xc00
mov word [esp + 0x124], ax
fldcw word [esp + 0x124]
fistp dword [esp + 0x138]
fldcw word [esp + 0x10c]
mov eax, dword [esp + 0x138]
mov dword [esp + 0x118], eax
mov dword [esp + 0x48], 0
mov eax, dword [esp + 0x48]
cmp eax, 3
ja 0x411b69
nop
nop
nop
nop
nop
mov eax, dword [esp + 0x48]
mov ecx, dword [esp + 0x48]
movzx ecx, byte [esp + ecx + 4]
add eax, 0xb6a91ffd
xor eax, ecx
mov dword [esp + 0x98], eax
mov eax, dword [esp + 0x98]
add al, 0x4a
mov ecx, dword [esp + 0x48]
mov byte [esp + ecx + 4], al
inc dword [esp + 0x48]
mov eax, dword [esp + 0x48]
cmp eax, 4
jb 0x411b30
lea eax, [esp + 4]
push eax
push ebx
call fcn.004035b0
add esp, 8
mov dword [esp + 0x104], eax
mov eax, dword [esp + 0x24]
lea esi, [eax - 1]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp byte [esi + 1], 0
lea esi, [esi + 1]
jne 0x411b90
xor ebx, ebx
cmp eax, esi
jae 0x411bdd
cmp byte [eax], 0
je 0x411bdd
xor ebx, ebx
mov edi, dword [esp + 0x24]
nop
nop
nop
nop
nop
nop
mov dword [esp + 0x98], 0
lea eax, [esp + 0x98]
push eax
push esi
push edi
call fcn.0040d840
add esp, 0xc
inc ebx
lea ecx, [edi + eax]
cmp ecx, esi
jae 0x411bdd
cmp byte [edi + eax], 0
mov edi, ecx
jne 0x411bb0
mov eax, ebx
inc eax
lea eax, [ebx + ebx + 2]
jns 0x411beb
mov eax, 0xffffffff
push eax
call fcn.00409a50
add esp, 4
mov dword [esp + 0x98], 0
lea ecx, [eax + ebx*2]
mov edi, eax
mov dword [esp + 0x30], eax
mov dword [esp + 0x18], ecx
cmp eax, ecx
mov ecx, dword [esp + 0x24]
jae 0x411c6f
mov edi, dword [esp + 0x30]
cmp ecx, esi
jae 0x411c6f
mov edi, dword [esp + 0x30]
mov dword [esp + 0x20], ebx
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp byte [ecx], 0
je 0x411c6f
lea eax, [esp + 0x98]
push eax
push esi
push ecx
mov ebx, ecx
call fcn.0040d840
add esp, 0xc
movzx ecx, word [esp + 0x98]
mov word [edi], cx
add edi, 2
cmp edi, dword [esp + 0x18]
jae 0x411c6b
add ebx, eax
cmp ebx, esi
mov ecx, ebx
mov ebx, dword [esp + 0x20]
jb 0x411c30
jmp 0x411c6f
mov ebx, dword [esp + 0x20]
mov word [edi], 0
lea eax, [esp + 4]
push eax
push 0
push 0
push ebx
mov edi, dword [esp + 0x40]
push edi
push 0
call dword [0x44a970]
jmp 0x4116a7
lea eax, [esi + 1]
cmp byte [esi], 0
je 0x411c9c
mov esi, eax
jmp 0x411c90
xor edi, edi
cmp esi, ecx
jbe case.0x40e75f.59
cmp byte [ecx], 0
je case.0x40e75f.59
xor edi, edi
mov ebx, dword [esp + 0x1c]
nop
nop
nop
mov dword [esp + 0x98], 0
lea eax, [esp + 0x98]
push eax
push esi
push ebx
call fcn.0040d840
add esp, 0xc
inc edi
lea ecx, [ebx + eax]
cmp ecx, esi
jae case.0x40e75f.59
cmp byte [ebx + eax], 0
mov ebx, ecx
jne 0x411cb0
mov eax, edi
inc eax
lea eax, [edi + edi + 2]
jns 0x411ceb
mov eax, 0xffffffff
push eax
call fcn.00409a50
add esp, 4
mov dword [esp + 0x98], 0
lea ecx, [eax + edi*2]
mov edi, eax
mov dword [esp + 0x30], eax
mov dword [esp + 0x18], ecx
cmp eax, ecx
mov ebx, dword [esp + 0x1c]
jae 0x411d51
mov edi, dword [esp + 0x30]
cmp ebx, esi
jae 0x411d51
mov edi, dword [esp + 0x30]
cmp byte [ebx], 0
je 0x411d51
lea eax, [esp + 0x98]
push eax
push esi
push ebx
call fcn.0040d840
add esp, 0xc
movzx ecx, word [esp + 0x98]
mov word [edi], cx
add edi, 2
cmp edi, dword [esp + 0x18]
jae 0x411d51
add ebx, eax
cmp ebx, esi
jb 0x411d20
mov word [edi], 0
lea edi, [esp + 0x98]
mov ecx, edi
push 1
call fcn.0040a1e0
mov dword [esp + 0x1c], 0
mov esi, dword [esp + 0x40]
mov ebx, dword [esp + 0x3c]
jmp dword [0x445474]
mov word [esp + 0x98], 0xf665
lea eax, [esp + 0x9a]
mov word [eax + 4], 0
mov dword [eax], 0
mov dword [esp + 4], 0
mov eax, dword [esp + 4]
cmp eax, 7
ja 0x411de9
nop
nop
nop
nop
nop
nop
mov eax, dword [esp + 4]
mov ecx, dword [esp + 4]
movzx ecx, byte [esp + ecx + 0x98]
add eax, 0xc1fc334d
xor eax, ecx
mov dword [esp + 0x48], eax
mov eax, dword [esp + 0x48]
add al, 0x48
mov ecx, dword [esp + 4]
mov byte [esp + ecx + 0x98], al
inc dword [esp + 4]
mov eax, dword [esp + 4]
cmp eax, 8
jb 0x411db0
push edi
push ebx
call fcn.00403220
add esp, 8
mov word [esp + 0x98], 0xf665
lea eax, [esp + 0x9a]
mov word [eax + 4], 0
mov dword [eax], 0
mov dword [esp + 4], 0
mov eax, dword [esp + 4]
cmp eax, 7
ja 0x411e69
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 + 0x98]
add eax, 0xc1fc334d
xor eax, ecx
mov dword [esp + 0x48], eax
mov eax, dword [esp + 0x48]
add al, 0x48
mov ecx, dword [esp + 4]
mov byte [esp + ecx + 0x98], al
inc dword [esp + 4]
mov eax, dword [esp + 4]
cmp eax, 8
jb 0x411e30
push edi
push ebx
call fcn.00403220
add esp, 8
jmp dword [0x445454]
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
out 0x40, eax
add byte [esi - 0x19], ah
inc eax
add byte [edi - 0x19], dh
inc eax
add byte [eax + 0x280040e7], al
call 0xe88053da
inc eax
add dl, cl
jmp 0x4453df
add byte [eax + 0xf], dl
inc ecx
add al, al
out dx, eax
inc eax
add byte [eax + 0xf], dl
inc ecx
add dh, dl
out dx, eax
inc eax
add byte [eax], al
int1
inc eax
add ch, ah
out dx, eax
inc eax
add byte [edx], dl
inc eax
add byte [eax - 0x12], dh
inc eax
add dl, dh
out dx, eax
inc eax
add byte [esi], cl
int1
inc eax
add byte [edx], al
cmc
inc eax
add byte [eax - 0x12], dh
inc eax
add byte [edi], cl
cmc
inc eax
add byte [ebx], bl
sbb byte [ecx], al
movsd dword es:[edi], dword [esi]
pop ss
inc ecx
add byte [ebx], bl
sbb byte [ecx], al
dec edx
adc al, byte [ecx]
inc ebp
adc al, byte [ecx]
pop eax
adc al, byte [ecx]
inc ebp
adc al, byte [ecx]
rcl dword [edx]
inc ecx
add byte [ebp + 0x12], al
inc ecx
add byte [ecx + 0x13], dl
inc ecx
add byte [ebp + 0x12], al
inc ecx
add cl, dl
adc eax, dword [ecx]
inc ecx
adc al, 65
add byte [eax - 0x12], dh
inc eax
add bl, dh
sbb eax, 0x1d7c0041
inc ecx
add byte [edx + 0x7c004118], bl
sbb eax, 0x16dd0041
inc ecx
add cl, dh
push ss
inc ecx
add byte [ecx], al
add byte [eax], al
add byte [ecx], al
add byte [eax], al
add byte [ecx], al
add byte [eax], al
add ch, bl
sbb al, 0x41
add byte [eax + 0x10], dh
inc ecx
add byte [ecx], al
adc al, byte [ecx]
add dword [edx], edx
inc ecx
add byte [edi + 0x10], bh
inc ecx
add byte [edi], cl
adc al, byte [ecx]
xchg ecx, eax
adc byte [ecx], al
adc eax, 0x27004112
adc al, byte [ecx]
mov ah, 0x10
inc ecx
add al, dh
adc dword [ecx], eax
rcl byte [eax]
inc ecx
add byte [eax + edx + 0x10d00041], bh
inc ecx
add al, ah
adc byte [ecx], al
add byte [ecx], dl
inc ecx
add byte [eax], al
adc dword [ecx], eax
add dl, byte [ecx]
inc ecx
add byte [eax], al
adc dword [ecx], eax
retf