Function at 0x40f312
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff8
sub esp, 0xcb0
mov ecx, dword [0x4458c4]
mov dword [esp + 0xb8], 0x72b4eaa9
mov word [esp + 0xbc], 0
mov dword [esp + 0x1b8], 0
mov eax, dword [esp + 0x1b8]
cmp eax, 5
ja 0x40d8b4
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp + 0x1b8]
mov edx, dword [esp + 0x1b8]
movzx esi, byte [esp + edx + 0xb8]
lea edx, [eax + 0xb]
and edx, esi
add eax, esi
sub eax, edx
mov esi, 0xca09bcf4
sub esi, eax
add eax, 0xe254a30b
and esi, edx
not edx
and edx, eax
sub edx, esi
mov dword [esp + 0x2a0], edx
mov eax, dword [esp + 0x2a0]
add al, 0x84
mov edx, dword [esp + 0x1b8]
mov byte [esp + edx + 0xb8], al
inc dword [esp + 0x1b8]
mov eax, dword [esp + 0x1b8]
cmp eax, 6
jb 0x40d850
mov edx, dword [str.LPnhqo__bvnqgemxfyyo]
mov dword [esp + 0x2a0], 0x743c2c25
mov dword [esp + 0x2a4], 0x24292a38
mov dword [esp + 0x2a8], 0x3c313638
mov dword [esp + 0x2ac], 0x34212035
mov dword [esp + 0x2b0], 0x2d7e3e3f
mov dword [esp + 0x2b4], 0x6b632f3d
mov dword [esp + 0x2b8], 0xcf869170
mov dword [esp + 0x2bc], 0x679bc1c9
mov dword [esp + 0x24], 0
mov eax, dword [esp + 0x24]
cmp eax, 0x1f
ja 0x40d96f
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 + 0x2a0]
add eax, 0xa558367
xor eax, esi
mov dword [esp + 0x1b8], eax
mov eax, dword [esp + 0x1b8]
add al, 0x1f
mov esi, dword [esp + 0x24]
mov byte [esp + esi + 0x2a0], al
inc dword [esp + 0x24]
mov eax, dword [esp + 0x24]
cmp eax, 0x20
jb 0x40d930
movzx ebx, byte [esp + 0x2a0]
lea eax, [esp + 0x1b8]
test bl, bl
je 0x40d99b
lea esi, [esp + 0x2a1]
nop
nop
nop
nop
nop
nop
nop
mov byte [eax], bl
inc eax
movzx ebx, byte [esi]
inc esi
test bl, bl
jne 0x40d990
mov byte [eax], 0
movzx ebx, byte [edx]
test bl, bl
je 0x40d9bb
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 0x40d9b0
mov byte [eax], 0
movzx edx, byte [esp + 0xb8]
test dl, dl
je 0x40d9eb
lea esi, [esp + 0xb9]
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 0x40d9e0
mov byte [eax], 0
movzx edx, byte [ecx]
test dl, dl
je 0x40da0b
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 0x40da00
mov byte [eax], 0
mov dword [esp + 0x2a0], 0x339d2d6b
mov dword [esp + 0x2a4], 0x37843180
mov dword [esp + 0x2a8], 0x3b86359d
mov dword [esp + 0x2ac], 0x3f4b398e
mov dword [esp + 0x2b0], 0x3833d6a
mov dword [esp + 0x2b4], 0x7ab01b2
mov dword [esp + 0x2b8], 0xb640578
mov dword [esp + 0x2bc], 0xfb809ad
mov dword [esp + 0x2c0], 0x13a00dbe
mov dword [esp + 0x2c4], 0x17b511bd
mov dword [esp + 0x2c8], 0x1ba015b1
mov dword [esp + 0x2cc], 0x1fa919b5
mov dword [esp + 0x2d0], 0x636d1dac
mov dword [esp + 0x2d4], 0x671361da
mov dword [esp + 0x2d8], 0x6bdd65df
mov dword [esp + 0x2dc], 0x6f1b69d3
mov dword [esp + 0x2e0], 0x73dd6dc4
mov dword [esp + 0x2e4], 0x77c371c4
mov dword [esp + 0x2e8], 0x7bcf7505
mov dword [esp + 0x2ec], 0x7fd479cc
mov dword [esp + 0x2f0], 0x43ce7dd5
mov dword [esp + 0x2f4], 0x47f141e7
mov dword [esp + 0x2f8], 0x4bef45e2
mov dword [esp + 0x2fc], 0x4f5b49ee
mov dword [esp + 0x300], 0x534c4d40
mov dword [esp + 0x304], 0
lea ecx, [esp + 0x1b8]
mov dword [esp + 0x24], 0
mov edx, dword [esp + 0x24]
cmp edx, 0x67
ja 0x40db91
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 + 0x2a0]
add edx, 0x19c04e8d
xor edx, esi
mov dword [esp + 0xb8], edx
mov edx, dword [esp + 0xb8]
add dl, 0x5d
mov esi, dword [esp + 0x24]
mov byte [esp + esi + 0x2a0], dl
inc dword [esp + 0x24]
mov edx, dword [esp + 0x24]
cmp edx, 0x68
jb 0x40db50
sub eax, ecx
mov dword [esp + 0xb8], 0xfb5bf90f
mov dword [esp + 0xbc], 0xf74ff54a
mov dword [esp + 0xc0], 0xf1f6
mov dword [esp + 0x238], 0
mov edx, dword [esp + 0x238]
cmp edx, 0xb
ja 0x40dc1a
nop
nop
nop
nop
nop
mov edx, dword [esp + 0x238]
mov esi, dword [esp + 0x238]
movzx esi, byte [esp + esi + 0xb8]
add edx, 0x6d2fb793
xor edx, esi
mov dword [esp + 0x24], edx
mov edx, dword [esp + 0x24]
add dl, 0x93
mov esi, dword [esp + 0x238]
mov byte [esp + esi + 0xb8], dl
inc dword [esp + 0x238]
mov edx, dword [esp + 0x238]
cmp edx, 0xc
jb 0x40dbd0
lea edx, [esp + 0xac]
lea esi, [esp + 0x1c]
lea edi, [esp + 0x2a0]
lea ebx, [esp + 0xb8]
push edx
push esi
push eax
push ecx
push edi
push ebx
push 0x44a784
call fcn.0040c680
add esp, 0x1c
movzx eax, al
xor esi, esi
jmp dword [eax*4 + 0x4461e4]
xor eax, eax
test esi, esi
sete al
jmp dword [eax*4 + 0x4461fc]
push esi
call fcn.00402a00
add esp, 4
mov ebx, eax
jmp dword [0x446204]
push esi
call fcn.00409cd0
add esp, 4
mov dword [esp + 0xa4], ebx
push ebx
call fcn.004034b0
add esp, 4
mov esi, eax
mov word [esp + 0x2a0], 0x447e
mov byte [esp + 0x2a2], 0xea
mov word [esp + 0x2a3], 0
mov dword [esp + 0x24], 0
mov eax, dword [esp + 0x24]
cmp eax, 4
ja 0x40dd0c
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp + 0x24]
mov ecx, dword [esp + 0x24]
movzx ecx, byte [esp + ecx + 0x2a0]
lea edx, [eax + ecx]
add eax, 0xd9
and eax, ecx
add eax, eax
sub edx, eax
add edx, 0x8a1202d9
mov dword [esp + 0xb8], edx
mov eax, dword [esp + 0xb8]
add al, 0xcf
mov ecx, dword [esp + 0x24]
mov byte [esp + ecx + 0x2a0], al
inc dword [esp + 0x24]
mov eax, dword [esp + 0x24]
cmp eax, 5
jb 0x40dcc0
push edi
push esi
call fcn.00403600
add esp, 8
xor ecx, ecx
test eax, eax
setg cl
lea ebx, [esp + 0xb8]
jmp dword [ecx*4 + 0x44620c]
call fcn.00437760
movzx eax, al
jmp dword [eax*4 + 0x446214]
mov word [esp + 0x2a0], 0x232f
mov byte [esp + 0x2a2], 0x4c
mov word [esp + 0x2a3], 0
mov dword [esp + 0x24], 0
mov eax, dword [esp + 0x24]
cmp eax, 4
ja 0x40ddaf
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp + 0x24]
mov ecx, dword [esp + 0x24]
movzx ecx, byte [esp + ecx + 0x2a0]
add eax, 0x34a9e648
xor eax, ecx
mov dword [esp + 0xb8], eax
mov eax, dword [esp + 0xb8]
add al, 0xfa
mov ecx, dword [esp + 0x24]
mov byte [esp + ecx + 0x2a0], al
inc dword [esp + 0x24]
mov eax, dword [esp + 0x24]
cmp eax, 5
jb 0x40dd70
push edi
push esi
call fcn.00403600
add esp, 8
mov dword [esp + 0xa0], eax
mov word [esp + 0x2a0], 0x565b
mov byte [esp + 0x2a2], 0xf0
mov word [esp + 0x2a3], 0
mov dword [esp + 0x24], 0
mov eax, dword [esp + 0x24]
cmp eax, 4
ja 0x40de2f
nop
nop
nop
mov eax, dword [esp + 0x24]
mov ecx, dword [esp + 0x24]
movzx ecx, byte [esp + ecx + 0x2a0]
add eax, 0xaf0b50f
xor eax, ecx
mov dword [esp + 0xb8], eax
mov eax, dword [esp + 0xb8]
add al, 0x1f
mov ecx, dword [esp + 0x24]
mov byte [esp + ecx + 0x2a0], al
inc dword [esp + 0x24]
mov eax, dword [esp + 0x24]
cmp eax, 5
jb 0x40ddf0
push edi
push esi
call fcn.00403600
add esp, 8
xor ecx, ecx
test eax, eax
setg cl
mov edi, ecx
mov dword [esp + 0xb0], esi
push esi
call fcn.0040ebc0
add esp, 4
push dword [esp + 0xa4]
call fcn.00403a60
add esp, 4
lea esi, [esp + 0x238]
mov ecx, esi
push 1
call fcn.0040a430
push esi
call fcn.0041d2e0
add esp, 4
mov ecx, esi
call fcn.0040acc0
lea esi, [esp + 0xc40]
mov ecx, esi
push 3
call fcn.0040a430
push esi
call fcn.0041dbf0
add esp, 4
mov ecx, esi
call fcn.0040acc0
lea esi, [esp + 0xbd8]
mov ecx, esi
push 1
call fcn.0040a430
push esi
call fcn.0041dec0
add esp, 4
mov ecx, esi
call fcn.0040acc0
lea esi, [esp + 0xb70]
mov ecx, esi
push 1
call fcn.0040a430
push esi
call fcn.0041fc00
add esp, 4
push esi
call fcn.004207b0
add esp, 4
push esi
call fcn.00420bf0
add esp, 4
push esi
call fcn.00423bd0
add esp, 4
mov ecx, esi
call fcn.0040acc0
lea esi, [esp + 0xb08]
mov ecx, esi
push 1
call fcn.0040a430
push esi
call fcn.004229f0
add esp, 4
mov ecx, esi
call fcn.0040acc0
lea esi, [esp + 0xaa0]
mov ecx, esi
push 1
call fcn.0040a430
push esi
call fcn.00428cd0
add esp, 4
push esi
call fcn.00433360
add esp, 4
jmp dword [edi*4 + 0x44621c]
push esi
call fcn.00425810
add esp, 4
lea ecx, [esp + 0xaa0]
call fcn.0040acc0
mov dword [esp + 0x24], 0xf9e8fe3b
mov word [esp + 0x28], 0x27fd
mov byte [esp + 0x2a], 0x63
mov dword [esp + 0x2b], 0
mov dword [esp + 0xb8], 0
mov eax, dword [esp + 0xb8]
cmp eax, 0xa
ja 0x40dfe1
nop
nop
nop
mov eax, dword [esp + 0xb8]
mov ecx, dword [esp + 0xb8]
movzx ecx, byte [esp + ecx + 0x24]
lea edx, [eax + 0x59]
add eax, ecx
and edx, ecx
add edx, edx
sub eax, edx
add eax, 0xe297f259
mov dword [esp + 0x2a0], eax
mov eax, dword [esp + 0x2a0]
add al, 0xc4
mov ecx, dword [esp + 0xb8]
mov byte [esp + ecx + 0x24], al
inc dword [esp + 0xb8]
mov eax, dword [esp + 0xb8]
cmp eax, 0xb
jb 0x40df90
mov eax, dword [0x4458c4]
mov dword [esp + 0xc], 0x2561510c
mov word [esp + 0x10], 0
mov dword [esp + 0xb8], 0
mov ecx, dword [esp + 0xb8]
cmp ecx, 5
ja 0x40e05a
nop
nop
nop
nop
mov ecx, dword [esp + 0xb8]
mov edx, dword [esp + 0xb8]
movzx edx, byte [esp + edx + 0xc]
add ecx, 0x33554220
xor ecx, edx
mov dword [esp + 0x2a0], ecx
mov ecx, dword [esp + 0x2a0]
add cl, 0xfa
mov edx, dword [esp + 0xb8]
mov byte [esp + edx + 0xc], cl
inc dword [esp + 0xb8]
mov ecx, dword [esp + 0xb8]
cmp ecx, 6
jb 0x40e010
mov ecx, dword [str.LPnhqo__bvnqgemxfyyo]
mov dword [esp + 0x2a0], 0x30e8d8d9
mov dword [esp + 0x2a4], 0xd6e4eaeb
mov dword [esp + 0x2a8], 0xfee1eee5
mov dword [esp + 0x2ac], 0x35f3f0cd
mov dword [esp + 0x2b0], 0x20faf6e4
mov dword [esp + 0x2b4], 0x3d303336
mov dword [esp + 0x2b8], 0x18c0fafa
mov byte [esp + 0x2bc], 0x5a
mov dword [esp + 0x2bd], 0
mov byte [esp + 0x2c1], 0
mov dword [esp], 0
mov edx, dword [esp]
cmp edx, 0x21
ja 0x40e128
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov edx, dword [esp]
mov esi, dword [esp]
movzx esi, byte [esp + esi + 0x2a0]
lea edi, [edx + 0xc5]
add edx, esi
and edi, esi
add edi, edi
sub edx, edi
add edx, 0xdf1849c5
mov dword [esp + 0xb8], edx
mov edx, dword [esp + 0xb8]
add dl, 0x45
mov esi, dword [esp]
mov byte [esp + esi + 0x2a0], dl
inc dword [esp]
mov edx, dword [esp]
cmp edx, 0x22
jb 0x40e0e0
movzx edx, byte [esp + 0x2a0]
test dl, dl
je 0x40e15b
lea ebx, [esp + 0xb8]
lea esi, [esp + 0x2a1]
nop
nop
nop
nop
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 0x40e150
mov byte [ebx], 0
movzx edx, byte [ecx]
test dl, dl
je 0x40e17b
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 0x40e170
mov byte [ebx], 0
movzx ecx, byte [esp + 0xc]
test cl, cl
lea edi, [esp + 0x2a0]
je 0x40e1ab
lea edx, [esp + 0xd]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov byte [ebx], cl
inc ebx
movzx ecx, byte [edx]
inc edx
test cl, cl
jne 0x40e1a0
mov byte [ebx], 0
movzx ecx, byte [eax]
test cl, cl
je 0x40e1cb
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 0x40e1c0
mov byte [ebx], 0
movzx eax, byte [esp + 0x24]
test al, al
je 0x40e1eb
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 0x40e1e0
mov byte [ebx], 0
movzx eax, byte [0x44a724]
test al, al
je 0x40e211
xor ecx, ecx
nop
nop
nop
nop
nop
mov byte [ebx + ecx], al
movzx eax, byte [ecx + 0x44a725]
inc ecx
test al, al
jne 0x40e200
add ebx, ecx
mov byte [ebx], 0
lea eax, [esp + 0xb8]
mov dword [esp + 0x2a0], 0x3eae30fc
mov dword [esp + 0x2a4], 0x3aa73caf
mov dword [esp + 0x2a8], 0x26b538d2
mov dword [esp + 0x2ac], 0x22f024b9
mov dword [esp + 0x2b0], 0x2ea820dd
mov dword [esp + 0x2b4], 0x2ac02cbd
mov dword [esp + 0x2b8], 0xd6f728ef
mov dword [esp + 0x2bc], 0xd243d43a
mov dword [esp + 0x2c0], 0xde4bd041
mov dword [esp + 0x2c4], 0xda36dc4a
mov dword [esp + 0x2c8], 0xc65bd836
mov dword [esp + 0x2cc], 0xc252c452
mov dword [esp + 0x2d0], 0xce1ec053
mov dword [esp + 0x2d4], 0xca18cc55
mov dword [esp + 0x2d8], 0xf66ec850
mov dword [esp + 0x2dc], 0xf220f46c
mov dword [esp + 0x2e0], 0xfe6ef01b
mov dword [esp + 0x2e4], 0xfa68fc63
mov dword [esp + 0x2e8], 0xe67cf82a
mov dword [esp + 0x2ec], 0xe277e47b
mov dword [esp + 0x2f0], 0xee7de00a
mov dword [esp + 0x2f4], 0xea7aec00
mov dword [esp + 0x2f8], 0x967ce805
mov dword [esp + 0x2fc], 0x92a09479
mov dword [esp + 0x300], 0x9e9f90a7
mov dword [esp + 0xc], 0
mov ecx, dword [esp + 0xc]
cmp ecx, 0x63
ja 0x40e387
nop
mov ecx, dword [esp + 0xc]
mov edx, dword [esp + 0xc]
movzx edx, byte [esp + edx + 0x2a0]
add ecx, 0xb8b47de6
xor ecx, edx
mov dword [esp + 0x24], ecx
mov ecx, dword [esp + 0x24]
mov edx, ecx
xor edx, 0xd7
and ecx, 0x28
add ecx, ecx
sub ecx, edx
mov edx, dword [esp + 0xc]
mov byte [esp + edx + 0x2a0], cl
inc dword [esp + 0xc]
mov ecx, dword [esp + 0xc]
cmp ecx, 0x64
jb 0x40e340
sub ebx, eax
mov dword [esp + 0x24], 0xc757c99b
mov dword [esp + 0x28], 0xc353c556
mov word [esp + 0x2c], 0xc1c2
mov dword [esp + 0x2e], 0
mov word [esp + 0x32], 0
mov dword [esp], 0
mov ecx, dword [esp]
cmp ecx, 0xf
ja 0x40e3fc
nop
nop
mov ecx, dword [esp]
mov edx, dword [esp]
movzx edx, byte [esp + edx + 0x24]
add ecx, 0xf8c61f75
xor ecx, edx
mov dword [esp + 0xc], ecx
mov ecx, dword [esp + 0xc]
mov edx, ecx
xor edx, 0xbf
and ecx, 0x40
add ecx, ecx
sub ecx, edx
mov edx, dword [esp]
mov byte [esp + edx + 0x24], cl
inc dword [esp]
mov ecx, dword [esp]
cmp ecx, 0x10
jb 0x40e3c0
lea ecx, [esp + 0xb4]
lea edx, [esp + 0xa8]
lea esi, [esp + 0x24]
push ecx
push edx
push ebx
push eax
push edi
push esi
push 0x44a784
call fcn.0040c680
add esp, 0x1c
movzx eax, al
jmp dword [eax*4 + 0x446224]
xor ebx, ebx
xor eax, eax
test ebx, 0
setne al
jmp dword [eax*4 + 0x44622c]
jmp dword [0x4461f0]
push 0x104
push edi
call dword [sym.imp.KERNEL32.dll_GetSystemDirectoryW]
mov ecx, dword [esp + 0xac]
mov esi, dword [esp + 0x1c]
lea eax, [ecx + ecx*2]
shr eax, 2
movzx edx, byte [esi + ecx - 1]
cmp edx, 0x3d
je 0x40e471
cmp edx, 0x2e
jne 0x40e472
dec eax
movzx ecx, byte [esi + ecx - 2]
cmp ecx, 0x3d
je 0x40e481
cmp ecx, 0x2e
jne 0x40e482
dec eax
push eax
call fcn.00409cc0
add esp, 4
push eax
push esi
call fcn.00439250
add esp, 8
push dword [esp + 0x1c]
call fcn.0043c040
add esp, 4
jmp case.0x40dc4b.3
dec eax
push eax
call fcn.00409cc0
add esp, 4
mov esi, eax
push eax
push edi
call fcn.00439250
add esp, 8
push dword [esp + 0x1c]
call fcn.0043c040
add esp, 4
mov edi, ebx
jmp dword [0x4461f4]
push 0x104
mov ebx, edi
push edi
call dword [sym.imp.KERNEL32.dll_GetSystemDirectoryW]
mov ecx, dword [esp + 0xac]
mov edi, dword [esp + 0x1c]
lea eax, [ecx + ecx*2]
shr eax, 2
movzx edx, byte [edi + ecx - 1]
cmp edx, 0x3d
je 0x40e508
cmp edx, 0x2e
jne 0x40e509
dec eax
movzx ecx, byte [edi + ecx - 2]
cmp ecx, 0x3d
je 0x40e4b0
cmp ecx, 0x2e
je 0x40e4b0
jmp 0x40e4b1
mov ecx, dword [esp + 0xb4]
mov esi, dword [esp + 0xa8]
lea eax, [ecx + ecx*2]
shr eax, 2
movzx edx, byte [esi + ecx - 1]
cmp edx, 0x3d
je 0x40e53d
cmp edx, 0x2e
jne 0x40e53e
dec eax
movzx ecx, byte [esi + ecx - 2]
cmp ecx, 0x3d
je 0x40e54d
cmp ecx, 0x2e
jne 0x40e54e
dec eax
push eax
call fcn.00409cc0
add esp, 4
mov ebx, eax
push eax
push esi
call fcn.00439250
add esp, 8
push dword [esp + 0xa8]
call fcn.0043c040
add esp, 4
xor eax, eax
test ebx, ebx
setne al
jmp dword [eax*4 + 0x44622c]
push ebx
call fcn.00402a00
add esp, 4
mov esi, eax
jmp dword [0x446234]
push ebx
call fcn.00409cd0
add esp, 4
push esi
call fcn.00411c70
add esp, 4
push esi
call fcn.00403a60
add esp, 4
mov dword [esp + 0x2a0], 0x67010700
mov dword [esp + 0x2a4], 0
mov dword [esp + 0xc], 0
mov eax, dword [esp + 0xc]
cmp eax, 7
mov edx, dword [esp + 0xb0]
ja 0x40e619
nop
nop
nop
nop
nop
nop
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0xc]
movzx ecx, byte [esp + ecx + 0x2a0]
add eax, 0x438775ec
xor eax, ecx
mov dword [esp + 0x24], eax
mov eax, dword [esp + 0x24]
add al, 0x78
mov ecx, dword [esp + 0xc]
mov byte [esp + ecx + 0x2a0], al
inc dword [esp + 0xc]
mov eax, dword [esp + 0xc]
cmp eax, 8
jb 0x40e5e0
push edi
push edx
call fcn.00403600
add esp, 8
xor ecx, ecx
test eax, eax
setg cl
jmp dword [ecx*4 + 0x44623c]
xor eax, eax
cmp dword [esp + 0xa0], 0
setg al
jmp dword [eax*4 + 0x446244]
lea ecx, [esp + 0x2a0]
push 1
call fcn.0040a430
xor eax, eax
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp byte [eax + 0x44aa8c], 0
lea eax, [eax + 1]
jne 0x40e660
lea edx, [eax + 0x44aa8b]
lea ecx, [eax + 0x44aa8c]
neg ecx
mov eax, 0x44aa8c
and ecx, eax
not eax
and eax, edx
mov dword [esp + 0x24], 0xc5f5f791
mov dword [esp + 0x28], 0xcccbb4f2
mov word [esp + 0x2c], 0x42c9
mov dword [esp + 0x2e], 0
mov byte [esp + 0x32], 0
sub eax, ecx
mov dword [esp], 0
mov ecx, dword [esp]
cmp ecx, 0xe
ja 0x40e6f0
nop
nop
nop
nop
nop
nop
mov ecx, dword [esp]
mov edx, dword [esp]
movzx edx, byte [esp + edx + 0x24]
add ecx, 0x7297f323
xor ecx, edx
mov dword [esp + 0xc], ecx
mov ecx, dword [esp + 0xc]
add cl, 0x92
mov edx, dword [esp]
mov byte [esp + edx + 0x24], cl
inc dword [esp]
mov ecx, dword [esp]
cmp ecx, 0xf
jb 0x40e6c0
lea esi, [esp + 0x2a0]
mov ecx, esi
push eax
push 0x44aa8c
lea eax, [esp + 0x2c]
push eax
call fcn.0040a630
mov ecx, esi
call fcn.0040acc0
mov ecx, esi
call fcn.0040a470
xor eax, eax
cmp dword [esp + 0xa0], 0
setg al
jmp dword [eax*4 + 0x446244]
push 0
call fcn.0043f210
add esp, 4
xor ecx, ecx
test eax, eax
setne cl
jmp dword [ecx*4 + 0x44624c]
mov dword [esp + 0x24], 0x9a0c9804
mov dword [esp + 0x28], 0x96c19409
mov dword [esp + 0x2c], 0x921b900e
mov dword [esp + 0x30], 0x8eaf8c12
mov dword [esp + 0x34], 0x8a0688ab
mov dword [esp + 0x38], 0x86e48409
mov dword [esp + 0x3c], 0x820f8013
mov dword [esp + 0x40], 0xbeeebc9d
mov dword [esp + 0x44], 0xba20b82e
mov dword [esp + 0x48], 0xb697b423
mov dword [esp + 0x4c], 0xb224b02c
mov dword [esp + 0x50], 0xaef9ac31
mov dword [esp + 0x54], 0xaa23a836
mov dword [esp + 0x58], 0xa687a43a
mov dword [esp + 0x5c], 0xa2f2a083
mov dword [esp + 0x60], 0xdeffdc40
mov dword [esp + 0x64], 0xda40d855
mov dword [esp + 0x68], 0xd648d442
mov dword [esp + 0x6c], 0xd25cd040
mov dword [esp + 0x70], 0xceefcc41
mov dword [esp + 0x74], 0xca47c898
mov dword [esp + 0x78], 0xc68ac4e5
mov dword [esp + 0x7c], 0xc292c0e1
mov dword [esp + 0x80], 0xfe6efc6b
mov dword [esp + 0x84], 0xfa69f89b
mov dword [esp + 0x88], 0xf694f46a
mov dword [esp + 0x8c], 0xf2d3f064
mov dword [esp + 0x90], 0xeecfecb3
mov dword [esp + 0x94], 0xea74e875
mov dword [esp + 0x98], 0xe6c7e471
mov dword [esp + 0x9c], 0xe2e3e0c3
mov dword [esp + 0xc], 0
mov ecx, dword [esp + 0xc]
cmp ecx, 0x7b
ja 0x40e8ab
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov ecx, dword [esp + 0xc]
mov edx, dword [esp + 0xc]
movzx edx, byte [esp + edx + 0x24]
add ecx, 0xeb629904
xor ecx, edx
mov dword [esp + 0x2a0], ecx
mov ecx, dword [esp + 0x2a0]
add cl, 0x63
mov edx, dword [esp + 0xc]
mov byte [esp + edx + 0x24], cl
inc dword [esp + 0xc]
mov ecx, dword [esp + 0xc]
cmp ecx, 0x7c
jb 0x40e870
movzx ecx, word [esp + 0x24]
test cx, cx
je 0x40e8d1
lea edi, [esp + 0x2a0]
lea edx, [esp + 0x26]
mov word [edi], cx
add edi, 2
movzx ecx, word [edx]
add edx, 2
test cx, cx
jne 0x40e8c0
mov word [edi], 0
movzx ecx, word [eax]
test cx, cx
je 0x40e901
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 0x40e8f0
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 [0x44ba8c]
call fcn.0043f320
add esp, 8
lea ecx, [esp + 0xc]
lea edx, [esp + 0x2a0]
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 + 0x446254]
lea ecx, [esp + 0xaa0]
call fcn.0040a470
lea ecx, [esp + 0xb08]
call fcn.0040a470
lea ecx, [esp + 0xb70]
call fcn.0040a470
lea ecx, [esp + 0xbd8]
call fcn.0040a470
lea ecx, [esp + 0xc40]
call fcn.0040a470
lea ecx, [esp + 0x238]
call fcn.0040a470
mov al, 1
jmp 0x40ea39
push dword [esp + 0xa4]
call fcn.00403a60
add esp, 4
xor eax, eax
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
mov esi, dword [esp + 0xc]
jmp dword [0x44625c]
mov dword [esp], 0xd3d0d1d6
mov dword [esp + 4], 0
mov dword [esp + 8], 0
mov eax, dword [esp + 8]
cmp eax, 7
ja 0x40eaa1
nop
nop
nop
nop
nop
mov eax, dword [esp + 8]
mov ecx, dword [esp + 8]
movzx ecx, byte [esp + ecx]
add eax, 0xb3ba1ca3
xor eax, ecx
mov dword [esp + 0x20], eax
mov eax, dword [esp + 0x20]
add al, 0x8a
mov ecx, dword [esp + 8]
mov byte [esp + ecx], al
inc dword [esp + 8]
mov eax, dword [esp + 8]
cmp eax, 8
jb 0x40ea70
mov eax, dword [0x44ba98]
test eax, eax
je case.0x40e724.6
mov ecx, dword [esp]
xor edx, edx
mov edi, dword [0x44ba9c]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp dword [edi + edx*8], 0x625b6034
je 0x40ead0
inc edx
cmp eax, edx
jne 0x40eac0
jmp case.0x40e724.6
mov eax, dword [edi + edx*8 + 4]
cmp eax, ecx
je case.0x40e724.6
push esi
push 1
push dword [0x44baa0]
push eax
call fcn.0043dc50
add esp, 0x10
jmp case.0x40e724.6
jmp dword [0x446268]
mov dword [esp], 0xd3d0d1d6
mov dword [esp + 4], 0
mov dword [esp + 8], 0
mov eax, dword [esp + 8]
cmp eax, 7
ja 0x40eb51
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp + 8]
mov ecx, dword [esp + 8]
movzx ecx, byte [esp + ecx]
add eax, 0xb3ba1ca3
xor eax, ecx
mov dword [esp + 0x20], eax
mov eax, dword [esp + 0x20]
add al, 0x8a
mov ecx, dword [esp + 8]
mov byte [esp + ecx], al
inc dword [esp + 8]
mov eax, dword [esp + 8]
cmp eax, 8
jb 0x40eb20
mov eax, dword [0x44ba98]
test eax, eax
je 0x40eaf0
mov ecx, dword [esp]
xor edx, edx
mov edi, dword [0x44ba9c]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp dword [edi + edx*8], 0x625b6034
je 0x40eb90
inc edx
cmp eax, edx
jne 0x40eb70
jmp 0x40eaf0
mov eax, dword [edi + edx*8 + 4]
cmp eax, ecx
je 0x40eaf0
push esi
push 1
push dword [0x44baa0]
push eax
call fcn.0043dc50
add esp, 0x10
jmp dword [0x446268]
mov eax, dword [esi + 0xa0]
add eax, 2
mov dword [esi + 0xe0], eax
mov eax, dword [esi + 0xa4]
add eax, 3
mov dword [esi + 0xe4], eax
mov eax, dword [esi + 0x68]
add eax, 2
mov dword [esi + 0xe8], eax
mov eax, dword [esi + 0xb0]
add eax, 2
mov dword [esi + 0xec], eax
add dword [esi + 0xb4], 2
mov eax, dword [esi + 0x80]
add eax, 3
mov dword [esi + 0xd4], eax
mov eax, dword [esi + 0xb8]
add eax, 3
mov dword [esi + 0x128], eax
mov eax, dword [esi + 0x64]
add eax, 0x4a
mov dword [esi + 0xf8], eax
mov eax, dword [esi + 0x50]
mov ecx, eax
add ecx, 4
mov dword [esi + 0xf4], ecx
mov ecx, dword [esi + 0xc4]
add ecx, 3
mov dword [esi + 0x140], ecx
mov ecx, dword [esi + 0xbc]
add ecx, 3
mov dword [esi + 0x124], ecx
add dword [esi + 0xa8], 3
add dword [esi + 0xac], 2
inc eax
mov dword [esi + 0xf0], eax
jmp 0x40ee8d
mov ebx, dword [esi + 0x148]
inc ebx
mov edx, dword [esi + 0xc8]
push edx
call fcn.00403a20
mov edx, dword [esi + 0xc8]
add esp, 4
xor ecx, ecx
cmp ebx, eax
setb cl
mov al, 1
jmp dword [ecx*4 + 0x446274]
mov dword [esi + 0x148], ebx
push ebx
push edx
call fcn.00403a30
add esp, 8
mov dword [esi + 8], eax
mov dword [esi + 0x1c], 0xfb8
mov dword [esi], 0
mov eax, dword [esi]
cmp eax, 3
ja 0x40ef07
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esi]
mov ecx, dword [esi]
movzx ecx, byte [esi + ecx + 0x1c]
add eax, 0xcd584ad
xor eax, ecx
mov dword [esi + 0xc], eax
mov eax, dword [esi + 0xc]
add al, 0x5f
mov ecx, dword [esi]
mov byte [esi + ecx + 0x1c], al
inc dword [esi]
mov eax, dword [esi]
cmp eax, 4
jb 0x40eee0
push 3
lea eax, [esi + 0x1c]
push eax
push dword [esi + 8]
call fcn.00403900
add esp, 0xc
xor ecx, ecx
test eax, eax
sete cl
jmp dword [ecx*4 + 0x44627c]
mov word [esi + 0xc], 0x59e6
lea eax, [esi + 0xe]
mov word [eax + 4], 0
mov dword [eax], 0
mov dword [esi + 0x1c], 0
mov eax, dword [esi + 0x1c]
cmp eax, 7
ja 0x40ef87
nop
nop
nop
nop
nop
nop
mov eax, dword [esi + 0x1c]
mov ecx, dword [esi + 0x1c]
movzx edx, byte [esi + ecx + 0xc]
lea ecx, [eax + edx]
add eax, 0xfd
and eax, edx
add eax, eax
sub ecx, eax
add ecx, 0x3c24c7fd
mov dword [esi], ecx
mov eax, dword [esi]
add al, 0x59
mov ecx, dword [esi + 0x1c]
mov byte [esi + ecx + 0xc], al
inc dword [esi + 0x1c]
mov eax, dword [esi + 0x1c]
cmp eax, 8
jb 0x40ef50
lea eax, [esi + 0xc]
push eax
push dword [esi + 8]
call fcn.004033a0
add esp, 8
fnstcw word [esi + 0x5a]
movzx eax, word [esi + 0x5a]
or eax, 0xc00
mov word [esi + 0x8a], ax
fldcw word [esi + 0x8a]
fistp dword [esi + 0x15c]
fldcw word [esi + 0x5a]
mov eax, dword [esi + 0x15c]
xor ecx, ecx
cmp eax, 2
setl cl
jmp dword [ecx*4 + 0x446284]
xor ecx, ecx
cmp eax, 3
setl cl
jmp dword [ecx*4 + 0x44628c]
sete al
movzx eax, al
jmp dword [eax*4 + 0x446294]
mov ebx, dword [esi + 0x134]
mov dword [ebx], 0xeaa
mov dword [esi], 0
mov eax, dword [esi]
cmp eax, 3
ja 0x40f041
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esi]
mov ecx, dword [esi]
movzx ecx, byte [ebx + ecx]
lea edx, [eax + 0xe7]
add eax, ecx
and edx, ecx
add edx, edx
sub eax, edx
add eax, 0x347184e7
mov dword [esi + 0xc], eax
mov eax, dword [esi + 0xc]
add al, 0x1a
mov ecx, dword [esi]
mov byte [ebx + ecx], al
inc dword [esi]
mov eax, dword [esi]
cmp eax, 4
jb 0x40f010
push 2
push ebx
push dword [esi + 8]
call fcn.00403900
add esp, 0xc
xor ecx, ecx
test eax, eax
setne cl
jmp dword [ecx*4 + 0x446354]
mov edx, dword [esi + 0x130]
mov word [edx], 0x1869
mov eax, dword [esi + 0xb4]
mov byte [eax + 4], 0
mov dword [eax], 0
mov dword [esi], 0
mov eax, dword [esi]
cmp eax, 6
ja 0x40f0b5
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esi]
mov ecx, dword [esi]
movzx ecx, byte [edx + ecx]
add eax, 0x6adb5b94
xor eax, ecx
mov dword [esi + 0xc], eax
mov eax, dword [esi + 0xc]
add al, 0x73
mov ecx, dword [esi]
mov byte [edx + ecx], al
inc dword [esi]
mov eax, dword [esi]
cmp eax, 7
jb 0x40f090
push 2
push edx
push dword [esi + 8]
call fcn.00403900
add esp, 0xc
xor ecx, ecx
test eax, eax
setne cl
jmp dword [ecx*4 + 0x44635c]
mov edx, dword [esi + 0xb0]
mov word [edx], 0x41d1
mov eax, dword [esi + 0xec]
mov word [eax + 4], 0
mov dword [eax], 0
mov dword [esi], 0
mov eax, dword [esi]
cmp eax, 7
ja 0x40f125
nop
nop
nop
nop
nop
mov eax, dword [esi]
mov ecx, dword [esi]
movzx ecx, byte [edx + ecx]
add eax, 0xbf8fdef5
xor eax, ecx
mov dword [esi + 0xc], eax
mov eax, dword [esi + 0xc]
add al, 0x49
mov ecx, dword [esi]
mov byte [edx + ecx], al
inc dword [esi]
mov eax, dword [esi]
cmp eax, 8
jb 0x40f100
push 5
push edx
push dword [esi + 8]
call fcn.00403900
add esp, 0xc
xor ecx, ecx
test eax, eax
setne cl
jmp dword [ecx*4 + 0x446364]
mov edx, dword [esi + 0x68]
mov word [edx], 0xd75e
mov eax, dword [esi + 0xe8]
mov byte [eax + 2], 0
mov word [eax], 0
mov dword [esi], 0
mov eax, dword [esi]
cmp eax, 4
ja 0x40f1a8
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esi]
mov ecx, dword [esi]
mov edx, dword [esi + 0x68]
movzx edx, byte [edx + ecx]
lea ecx, [eax + edx]
add eax, 0xab
and eax, edx
mov edx, dword [esi + 0x68]
add eax, eax
sub ecx, eax
add ecx, 0xde15dbab
mov dword [esi + 0xc], ecx
mov eax, dword [esi + 0xc]
add al, 0x85
mov ecx, dword [esi]
mov byte [edx + ecx], al
inc dword [esi]
mov eax, dword [esi]
cmp eax, 5
jb 0x40f170
push 2
push edx
push dword [esi + 8]
call fcn.00403900
add esp, 0xc
xor ecx, ecx
test eax, eax
setne cl
jmp dword [ecx*4 + 0x44636c]
mov edx, dword [esi + 0x118]
mov dword [edx], 0x16b1
mov dword [esi], 0
mov eax, dword [esi]
cmp eax, 3
ja 0x40f205
nop
nop
nop
mov eax, dword [esi]
mov ecx, dword [esi]
movzx ecx, byte [edx + ecx]
add eax, 0x808bfda5
xor eax, ecx
mov dword [esi + 0xc], eax
mov eax, dword [esi + 0xc]
add al, 0x50
mov ecx, dword [esi]
mov byte [edx + ecx], al
inc dword [esi]
mov eax, dword [esi]
cmp eax, 4
jb 0x40f1e0
push 3
push edx
push dword [esi + 8]
call fcn.00403900
add esp, 0xc
xor ecx, ecx
test eax, eax
setne cl
jmp dword [ecx*4 + 0x446374]
jmp case.0x40f493.1
xor ecx, ecx
test eax, eax
setle cl
jmp dword [ecx*4 + 0x44629c]
jmp dword [0x446444]
mov dword [edi], 0xc659
mov dword [esi], 0
mov eax, dword [esi]
cmp eax, 3
ja 0x40f290
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esi]
mov ecx, dword [esi]
movzx edx, byte [edi + ecx]
lea ecx, [eax + edx]
add eax, 0x37
and eax, edx
add eax, eax
sub ecx, eax
add ecx, 0xf6dbe937
mov dword [esi + 0xc], ecx
mov eax, dword [esi + 0xc]
add al, 2
mov ecx, dword [esi]
mov byte [edi + ecx], al
inc dword [esi]
mov eax, dword [esi]
cmp eax, 4
jb 0x40f260
push edi
push dword [esi + 8]
call fcn.00403270
add esp, 8
mov edx, dword [esi + 0xcc]
mov word [edx], 0x28a3
mov dword [edx + 2], 0
mov dword [esi], 0
mov eax, dword [esi]
cmp eax, 5
ja 0x40f2e5
nop
nop
nop
nop
nop
mov eax, dword [esi]
mov ecx, dword [esi]
movzx ecx, byte [edx + ecx]
add eax, 0x6cbd7ca4
xor eax, ecx
mov dword [esi + 0xc], eax
mov eax, dword [esi + 0xc]
add al, 0x73
mov ecx, dword [esi]
mov byte [edx + ecx], al
inc dword [esi]
mov eax, dword [esi]
cmp eax, 6
jb 0x40f2c0
push edx
push dword [esi + 8]
call fcn.00403270
add esp, 8
jmp case.0x410663.32
push edx
push dword [esi + 8]
call fcn.00403270
add esp, 8
jmp dword [0x446450]
mov dword [edi], 0xc659
mov dword [esi], 0
mov eax, dword [esi]
cmp eax, 3
ja 0x40f360
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esi]
mov ecx, dword [esi]
movzx edx, byte [edi + ecx]
lea ecx, [eax + edx]
add eax, 0x37
and eax, edx
add eax, eax
sub ecx, eax
add ecx, 0xf6dbe937
mov dword [esi + 0xc], ecx
mov eax, dword [esi + 0xc]
add al, 2
mov ecx, dword [esi]
mov byte [edi + ecx], al
inc dword [esi]
mov eax, dword [esi]
cmp eax, 4
jb 0x40f330
push edi
push dword [esi + 8]
call fcn.00403270
add esp, 8
mov ebx, eax
mov edx, dword [esi + 0xcc]
mov word [edx], 0x28a3
mov dword [edx + 2], 0
mov dword [esi], 0
mov eax, dword [esi]
cmp eax, 5
ja 0x40f300
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esi]
mov ecx, dword [esi]
movzx ecx, byte [edx + ecx]
add eax, 0x6cbd7ca4
xor eax, ecx
mov dword [esi + 0xc], eax
mov eax, dword [esi + 0xc]
add al, 0x73
mov ecx, dword [esi]
mov byte [edx + ecx], al
inc dword [esi]
mov eax, dword [esi]
cmp eax, 6
jb 0x40f3a0
jmp 0x40f300
mov edx, dword [esi + 0x13c]
mov dword [edx], 0xac1b
mov dword [esi], 0
mov eax, dword [esi]
cmp eax, 3
ja 0x40f415
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esi]
mov ecx, dword [esi]
movzx ecx, byte [edx + ecx]
add eax, 0x43323ec3
xor eax, ecx
mov dword [esi + 0xc], eax
mov eax, dword [esi + 0xc]
add al, 0x98
mov ecx, dword [esi]
mov byte [edx + ecx], al
inc dword [esi]
mov eax, dword [esi]
cmp eax, 4
jb 0x40f3f0
push edx
push dword [esi + 8]
call fcn.00403270
add esp, 8
mov dword [esi + 0x24], eax
mov edx, dword [esi + 0x138]
mov dword [edx], 0xf16a
mov dword [esi], 0
mov eax, dword [esi]
cmp eax, 3
ja 0x40f472
nop
nop
nop
mov eax, dword [esi]
mov ecx, dword [esi]
movzx ecx, byte [edx + ecx]
add eax, 0xa207c164
xor eax, ecx
mov dword [esi + 0xc], eax
mov eax, dword [esi + 0xc]
mov ecx, eax
not ecx
and ecx, 0x94
and eax, 0x6b
sub eax, ecx
mov ecx, dword [esi]
mov byte [edx + ecx], al
inc dword [esi]
mov eax, dword [esi]
cmp eax, 4
jb 0x40f440
push edx
push dword [esi + 8]
call fcn.00403270
add esp, 8
mov edx, dword [esi + 0x24]
test edx, edx
sete ch
mov dword [esi + 0x2c], eax
test eax, eax
sete cl
or cl, ch
movzx eax, cl
jmp dword [eax*4 + 0x4464ec]
mov ecx, edx
nop
nop
nop
nop
mov eax, ecx
inc ecx
cmp byte [eax], 0
jne 0x40f4a0
mov ecx, eax
not ecx
and ecx, edx
mov edi, edx
not edi
and edi, eax
sub edi, ecx
mov eax, edx
add eax, edi
mov dword [esi + 0x18], eax
xor ebx, ebx
mov dword [esi + 0x28], edi
test edi, edi
jle 0x40f508
cmp byte [edx], 0
mov edx, dword [esi + 0x18]
je 0x40f508
xor ebx, ebx
mov edi, dword [esi + 0x24]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov dword [esi + 0xc], 0
lea eax, [esi + 0xc]
push eax
push edx
push edi
call fcn.0040d6a0
mov edx, dword [esi + 0x18]
add esp, 0xc
inc ebx
lea ecx, [edi + eax]
cmp ecx, edx
jae 0x40f508
cmp byte [edi + eax], 0
mov edi, ecx
jne 0x40f4e0
mov eax, ebx
inc eax
lea eax, [ebx + ebx + 2]
jns 0x40f516
mov eax, 0xffffffff
push eax
call fcn.00409cc0
add esp, 4
mov dword [esi + 0xc], 0
lea ecx, [eax + ebx*2]
mov dword [esi + 8], eax
mov dword [esi + 0x30], eax
mov dword [esi + 0x14], ecx
cmp eax, ecx
mov ebx, dword [esi + 0x24]
mov edi, dword [esi + 0x18]
jae 0x40f57e
mov eax, dword [esi + 0x30]
mov dword [esi + 8], eax
cmp dword [esi + 0x28], 0
jle 0x40f57e
mov eax, dword [esi + 0x30]
mov dword [esi + 8], eax
nop
nop
cmp byte [ebx], 0
je 0x40f57e
lea eax, [esi + 0xc]
push eax
push edi
push ebx
call fcn.0040d6a0
add esp, 0xc
movzx ecx, word [esi + 0xc]
mov edx, dword [esi + 8]
mov word [edx], cx
add edx, 2
mov dword [esi + 8], edx
cmp edx, dword [esi + 0x14]
jae 0x40f57e
add ebx, eax
cmp ebx, edi
jb 0x40f550
mov eax, dword [esi + 8]
mov word [eax], 0
xor eax, eax
mov edi, dword [esi + 0x2c]
nop
nop
nop
nop
nop
cmp byte [edi + eax], 0
lea eax, [eax + 1]
jne 0x40f590
lea ecx, [edi + eax]
dec ecx
add eax, edi
neg eax
and eax, edi
not edi
and edi, ecx
sub edi, eax
mov eax, edi
inc eax
lea eax, [edi + edi + 2]
jns 0x40f5b7
mov eax, 0xffffffff
push eax
call fcn.00409cc0
add esp, 4
mov dword [esi + 0x34], eax
lea ecx, [eax + edi*2]
add ecx, 2
cmp dword [esi + 0x2c], 0
jne 0x40f5eb
mov eax, 0xffffffff
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
lea edi, [eax + 1]
cmp byte [eax + 1], 0
mov eax, edi
jne 0x40f5e0
mov dword [esi + 0xc], 0
add ecx, 0xfffffffe
mov eax, dword [esi + 0x34]
mov edx, eax
mov dword [esi + 0x18], ecx
cmp eax, ecx
mov eax, dword [esi + 0x2c]
jae 0x40f652
mov edx, dword [esi + 0x34]
test edi, edi
jle 0x40f652
mov ebx, eax
add ebx, edi
mov edx, dword [esi + 0x34]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp byte [eax], 0
je 0x40f652
mov edi, eax
lea eax, [esi + 0xc]
push eax
push ebx
push edi
mov dword [esi + 8], edx
call fcn.0040d6a0
mov edx, dword [esi + 8]
add esp, 0xc
movzx ecx, word [esi + 0xc]
mov word [edx], cx
add edx, 2
cmp edx, dword [esi + 0x18]
jae 0x40f652
add edi, eax
cmp edi, ebx
mov eax, edi
jb 0x40f620
mov word [edx], 0
mov edi, dword [esi + 0xb8]
mov word [edi], 0xbc8e
mov byte [edi + 2], 0x35
mov eax, dword [esi + 0x128]
mov byte [eax + 4], 0
mov dword [eax], 0
mov dword [esi], 0
mov eax, dword [esi]
cmp eax, 7
ja 0x40f6c0
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esi]
mov ecx, dword [esi]
movzx ecx, byte [edi + ecx]
mov edx, eax
and edx, 0xc743705b
xor eax, 0x4743705b
lea eax, [eax + edx*2]
xor eax, ecx
mov dword [esi + 0xc], eax
mov eax, dword [esi + 0xc]
add al, 0x98
mov ecx, dword [esi]
mov byte [edi + ecx], al
inc dword [esi]
mov eax, dword [esi]
cmp eax, 8
jb 0x40f690
push edi
push dword [ebp + 8]
call fcn.004034d0
add esp, 8
xor ecx, ecx
mov dword [esi + 0x2c], eax
test eax, eax
setne cl
mov dword [esi + 0x24], 0
mov dword [esi + 0x28], 0
mov edi, dword [esi + 0x38]
jmp dword [ecx*4 + 0x4464f4]
push dword [esi + 0x2c]
call fcn.00403a20
add esp, 4
mov ecx, eax
mov dword [esi + 0x28], eax
mov ecx, 0xc
mul ecx
seto dl
mov ecx, 0xffffffff
mov edi, 0xffffffff
add eax, 4
jb 0x40f719
mov edi, eax
test dl, dl
jne 0x40f71f
mov ecx, edi
push ecx
call fcn.00409cc0
add esp, 4
mov ecx, dword [esi + 0x28]
mov dword [eax], ecx
add eax, 4
mov dword [esi + 0x24], eax
xor eax, eax
test ecx, ecx
sete al
jmp dword [eax*4 + 0x4464fc]
mov eax, dword [esi + 0x28]
lea eax, [eax + eax*2]
mov ecx, dword [esi + 0x24]
lea eax, [ecx + eax*4]
mov dword [ecx], 0
mov dword [ecx + 4], 0
mov dword [ecx + 8], 0
add ecx, 0xc
xor edx, edx
cmp ecx, eax
sete dl
jmp dword [edx*4 + 0x446504]
mov dword [ecx], 0
mov dword [ecx + 4], 0
mov dword [ecx + 8], 0
add ecx, 0xc
xor edx, edx
cmp ecx, eax
sete dl
jmp dword [edx*4 + 0x446504]
xor ecx, ecx
xor eax, eax
mov dword [esi + 0x14], 0
cmp ecx, dword [esi + 0x28]
setb al
mov edi, dword [esi + 0x38]
jmp dword [eax*4 + 0x44650c]
jmp dword [0x44651c]
mov ebx, dword [esi + 0xc0]
mov ecx, ebx
push 3
call fcn.0040a430
push dword [esi + 0x28]
push dword [esi + 0x24]
push dword [esi + 0x34]
push dword [esi + 0x30]
push ebx
call fcn.004162f0
add esp, 0x14
mov ecx, ebx
call fcn.0040acc0
mov edx, dword [esi + 0x24]
xor eax, eax
test edx, edx
sete al
jmp dword [eax*4 + 0x446534]
lea edi, [edx - 4]
mov eax, dword [edx - 4]
xor ecx, ecx
test eax, eax
lea eax, [eax + eax*2]
lea ebx, [edx + eax*4]
sete cl
jmp dword [ecx*4 + 0x44653c]
push edi
call fcn.00409cd0
add esp, 4
mov edi, dword [esi + 0x38]
jmp dword [0x44654c]
jmp dword [0x446554]
push dword [esi + 0x34]
call fcn.00409cd0
add esp, 4
mov ecx, dword [esi + 0xc0]
call fcn.0040a470
jmp case.0x40f493.1
mov edx, dword [esi + 0x14]
inc edx
xor eax, eax
mov ecx, edx
mov dword [esi + 0x14], edx
cmp edx, dword [esi + 0x28]
setb al
jmp dword [eax*4 + 0x44650c]
jmp dword [0x446524]
push dword [esi + 0x14]
push dword [esi + 0x2c]
call fcn.00403a30
add esp, 8
mov edi, eax
mov edx, dword [esi + 0x80]
mov word [edx], 0x907
mov byte [edx + 2], 0xba
mov eax, dword [esi + 0xd4]
mov dword [eax], 0
mov byte [eax + 4], 0
mov dword [esi], 0
mov eax, dword [esi]
cmp eax, 7
ja 0x40f8d5
nop
nop
nop
nop
nop
nop
mov eax, dword [esi]
mov ecx, dword [esi]
movzx ecx, byte [edx + ecx]
add eax, 0x7d591fd3
xor eax, ecx
mov dword [esi + 0xc], eax
mov eax, dword [esi + 0xc]
add al, 0x91
mov ecx, dword [esi]
mov byte [edx + ecx], al
inc dword [esi]
mov eax, dword [esi]
cmp eax, 8
jb 0x40f8b0
push edx
push edi
call fcn.00403270
add esp, 8
mov dword [esi + 0x18], eax
mov edx, dword [esi + 0xdc]
mov dword [edx], 0xc3422e
mov dword [esi], 0
mov eax, dword [esi]
cmp eax, 3
ja 0x40f925
nop
nop
nop
nop
nop
mov eax, dword [esi]
mov ecx, dword [esi]
movzx ecx, byte [edx + ecx]
add eax, 0x3da41882
xor eax, ecx
mov dword [esi + 0xc], eax
mov eax, dword [esi + 0xc]
add al, 0xb9
mov ecx, dword [esi]
mov byte [edx + ecx], al
inc dword [esi]
mov eax, dword [esi]
cmp eax, 4
jb 0x40f900
push edx
mov ebx, edi
push edi
call fcn.00403270
add esp, 8
mov dword [esi + 8], eax
mov edx, dword [esi + 0xd8]
mov word [edx], 0xaa5c
mov byte [edx + 2], 0x35
mov dword [edx + 3], 0
mov dword [esi], 0
mov eax, dword [esi]
cmp eax, 6
ja 0x40f985
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esi]
mov ecx, dword [esi]
movzx ecx, byte [edx + ecx]
add eax, 0xba2f1920
xor eax, ecx
mov dword [esi + 0xc], eax
mov eax, dword [esi + 0xc]
add al, 0xe9
mov ecx, dword [esi]
mov byte [edx + ecx], al
inc dword [esi]
mov eax, dword [esi]
cmp eax, 7
jb 0x40f960
push edx
push ebx
call fcn.00403270
add esp, 8
mov ecx, dword [esi + 0x14]
lea ecx, [ecx + ecx*2]
mov edx, dword [esi + 0x24]
mov dword [edx + ecx*4], 0
mov ebx, dword [esi + 0x18]
mov dword [edx + ecx*4 + 4], ebx
mov dword [edx + ecx*4 + 8], eax
lea eax, [edx + ecx*4]
mov dword [esi + 0x18], eax
xor eax, eax
mov edi, dword [esi + 8]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp byte [edi + eax], 0
lea eax, [eax + 1]
jne 0x40f9c0
lea ecx, [edi + eax]
dec ecx
add eax, edi
neg eax
and eax, edi
not edi
and edi, ecx
sub edi, eax
mov eax, edi
inc eax
jns 0x40f9f0
mov eax, 0xffffffff
jmp 0x40f9f7
lea eax, [edi*2 + 2]
push eax
call fcn.00409cc0
add esp, 4
mov ecx, eax
mov eax, dword [esi + 0x18]
mov ebx, ecx
mov dword [eax], ecx
mov eax, edi
cmp dword [esi + 8], 0
jne 0x40fa2b
mov ecx, 0xffffffff
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
lea eax, [ecx + 1]
cmp byte [ecx + 1], 0
mov ecx, eax
jne 0x40fa20
lea ecx, [ebx + edi*2]
add ecx, 2
mov edx, ebx
mov dword [esi + 0xc], 0
add ecx, 0xfffffffe
mov dword [esi + 0x18], ecx
cmp ebx, ecx
jae 0x40fa80
test eax, eax
jle 0x40fa80
mov ebx, dword [esi + 8]
mov edi, ebx
add edi, eax
nop
cmp byte [ebx], 0
je 0x40fa80
lea eax, [esi + 0xc]
push eax
push edi
push ebx
mov dword [esi + 8], edx
call fcn.0040d6a0
mov edx, dword [esi + 8]
add esp, 0xc
movzx ecx, word [esi + 0xc]
mov word [edx], cx
add edx, 2
cmp edx, dword [esi + 0x18]
jae 0x40fa80
add ebx, eax
cmp ebx, edi
jb 0x40fa50
nop
nop
mov word [edx], 0
jmp case.0x410663.88
mov word [edx], 0
mov edi, dword [esi + 0x38]
jmp dword [0x44652c]
push dword [esi + 0x14]
push dword [esi + 0x2c]
call fcn.00403a30
add esp, 8
mov ebx, eax
mov edx, dword [esi + 0x80]
mov word [edx], 0x907
mov byte [edx + 2], 0xba
mov eax, dword [esi + 0xd4]
mov dword [eax], 0
mov byte [eax + 4], 0
mov dword [esi], 0
mov eax, dword [esi]
cmp eax, 7
ja 0x40fb05
nop
nop
nop
nop
nop
nop
mov eax, dword [esi]
mov ecx, dword [esi]
movzx ecx, byte [edx + ecx]
add eax, 0x7d591fd3
xor eax, ecx
mov dword [esi + 0xc], eax
mov eax, dword [esi + 0xc]
add al, 0x91
mov ecx, dword [esi]
mov byte [edx + ecx], al
inc dword [esi]
mov eax, dword [esi]
cmp eax, 8
jb 0x40fae0
push edx
push ebx
call fcn.00403270
add esp, 8
mov dword [esi + 0x18], eax
mov edx, dword [esi + 0xdc]
mov dword [edx], 0xc3422e
mov dword [esi], 0
mov eax, dword [esi]
cmp eax, 3
ja 0x40fb55
nop
nop
nop
nop
nop
mov eax, dword [esi]
mov ecx, dword [esi]
movzx ecx, byte [edx + ecx]
add eax, 0x3da41882
xor eax, ecx
mov dword [esi + 0xc], eax
mov eax, dword [esi + 0xc]
add al, 0xb9
mov ecx, dword [esi]
mov byte [edx + ecx], al
inc dword [esi]
mov eax, dword [esi]
cmp eax, 4
jb 0x40fb30
push edx
push ebx
call fcn.00403270
add esp, 8
mov dword [esi + 8], eax
mov edx, dword [esi + 0xd8]
mov word [edx], 0xaa5c
mov byte [edx + 2], 0x35
mov dword [edx + 3], 0
mov dword [esi], 0
mov eax, dword [esi]
cmp eax, 6
ja 0x40fbb5
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esi]
mov ecx, dword [esi]
movzx ecx, byte [edx + ecx]
add eax, 0xba2f1920
xor eax, ecx
mov dword [esi + 0xc], eax
mov eax, dword [esi + 0xc]
add al, 0xe9
mov ecx, dword [esi]
mov byte [edx + ecx], al
inc dword [esi]
mov eax, dword [esi]
cmp eax, 7
jb 0x40fb90
push edx
push ebx
call fcn.00403270
add esp, 8
mov ecx, dword [esi + 0x14]
lea ecx, [ecx + ecx*2]
mov edx, dword [esi + 0x24]
mov dword [edx + ecx*4], 0
mov ebx, dword [esi + 0x18]
mov dword [edx + ecx*4 + 4], ebx
mov dword [edx + ecx*4 + 8], eax
lea eax, [edx + ecx*4]
mov dword [esi + 0x18], eax
xor eax, eax
mov edi, dword [esi + 8]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp byte [edi + eax], 0
lea eax, [eax + 1]
jne 0x40fbf0
lea ecx, [edi + eax]
dec ecx
add eax, edi
neg eax
and eax, edi
not edi
and edi, ecx
sub edi, eax
mov eax, edi
inc eax
jns 0x40fc20
mov eax, 0xffffffff
jmp 0x40fc27
lea eax, [edi*2 + 2]
push eax
call fcn.00409cc0
add esp, 4
mov ecx, eax
mov eax, dword [esi + 0x18]
mov ebx, ecx
mov dword [eax], ecx
mov eax, edi
cmp dword [esi + 8], 0
jne 0x40fc5b
mov ecx, 0xffffffff
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
lea eax, [ecx + 1]
cmp byte [ecx + 1], 0
mov ecx, eax
jne 0x40fc50
lea ecx, [ebx + edi*2]
add ecx, 2
mov edx, ebx
mov dword [esi + 0xc], 0
add ecx, 0xfffffffe
mov dword [esi + 0x18], ecx
cmp ebx, ecx
jae 0x40fa90
test eax, eax
jle 0x40fa90
mov ebx, dword [esi + 8]
mov edi, ebx
add edi, eax
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp byte [ebx], 0
je 0x40fa90
lea eax, [esi + 0xc]
push eax
push edi
push ebx
mov dword [esi + 8], edx
call fcn.0040d6a0
mov edx, dword [esi + 8]
add esp, 0xc
movzx ecx, word [esi + 0xc]
mov word [edx], cx
add edx, 2
cmp edx, dword [esi + 0x18]
jae 0x40fa90
add ebx, eax
cmp ebx, edi
jb 0x40fc90
jmp 0x40fa90
add ebx, 0xfffffff4
xor eax, eax
cmp ebx, edx
sete al
jmp dword [eax*4 + 0x446544]
mov eax, dword [ebx - 0xc]
test eax, eax
je 0x40fcd0
push eax
call fcn.00409cd0
mov edx, dword [esi + 0x24]
add esp, 4
jmp 0x40fcd0
sete al
movzx eax, al
jmp dword [eax*4 + 0x4462a4]
mov word [esi + 0xc], 0xee7d
lea eax, [esi + 0xe]
mov word [eax + 4], 0
mov dword [eax], 0
mov dword [esi + 0x1c], 0
mov eax, dword [esi + 0x1c]
cmp eax, 7
ja 0x40fd5a
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esi + 0x1c]
mov ecx, dword [esi + 0x1c]
movzx ecx, byte [esi + ecx + 0xc]
add eax, 0xc03b8d55
xor eax, ecx
mov dword [esi], eax
mov eax, dword [esi]
add al, 0x48
mov ecx, dword [esi + 0x1c]
mov byte [esi + ecx + 0xc], al
inc dword [esi + 0x1c]
mov eax, dword [esi + 0x1c]
cmp eax, 8
jb 0x40fd30
push 2
lea eax, [esi + 0xc]
push eax
push dword [esi + 8]
call fcn.00403900
add esp, 0xc
xor ecx, ecx
test eax, eax
setne cl
jmp dword [ecx*4 + 0x4462ac]
jmp dword [0x4462b4]
mov word [esi], 0x46ec
mov dword [esi + 2], 0
mov dword [esi + 0x20], 0
mov eax, dword [esi + 0x20]
cmp eax, 5
ja 0x40fdca
nop
nop
nop
nop
nop
nop
mov eax, dword [esi + 0x20]
mov ecx, dword [esi + 0x20]
movzx ecx, byte [esi + ecx]
add eax, 0x11891423
xor eax, ecx
mov dword [esi + 0x1c], eax
mov eax, dword [esi + 0x1c]
add al, 0x9e
mov ecx, dword [esi + 0x20]
mov byte [esi + ecx], al
inc dword [esi + 0x20]
mov eax, dword [esi + 0x20]
cmp eax, 6
jb 0x40fda0
push 5
mov eax, esi
push eax
push dword [esi + 8]
call fcn.00403900
add esp, 0xc
jmp case.0x40fd72.2
push 5
mov eax, esi
push eax
push dword [esi + 8]
call fcn.00403900
add esp, 0xc
jmp dword [0x4462bc]
mov word [esi], 0x46ec
mov dword [esi + 2], 0
mov dword [esi + 0x20], 0
mov eax, dword [esi + 0x20]
cmp eax, 5
ja 0x40fde0
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esi + 0x20]
mov ecx, dword [esi + 0x20]
movzx ecx, byte [esi + ecx]
add eax, 0x11891423
xor eax, ecx
mov dword [esi + 0x1c], eax
mov eax, dword [esi + 0x1c]
add al, 0x9e
mov ecx, dword [esi + 0x20]
mov byte [esi + ecx], al
inc dword [esi + 0x20]
mov eax, dword [esi + 0x20]
cmp eax, 6
jb 0x40fe20
jmp 0x40fde0
test ebx, ebx
sete dl
test eax, eax
sete cl
or cl, dl
movzx ecx, cl
jmp dword [ecx*4 + 0x446454]
mov ecx, ebx
mov dword [esi + 0x2c], eax
mov dword [esi + 0x28], ebx
nop
nop
nop
nop
nop
nop
mov edx, ecx
inc ecx
cmp byte [edx], 0
jne 0x40fe70
mov dword [esi + 0x18], eax
mov ecx, edx
not ecx
and ecx, ebx
mov eax, ebx
not eax
and eax, edx
sub eax, ecx
add ebx, eax
mov dword [esi + 8], ebx
xor ebx, ebx
mov dword [esi + 0x34], eax
test eax, eax
jle 0x40fed8
mov eax, dword [esi + 0x28]
cmp byte [eax], 0
je 0x40fed8
xor ebx, ebx
mov edi, dword [esi + 0x28]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov dword [esi + 0xc], 0
lea eax, [esi + 0xc]
push eax
push dword [esi + 8]
push edi
call fcn.0040d6a0
add esp, 0xc
inc ebx
lea ecx, [edi + eax]
cmp ecx, dword [esi + 8]
jae 0x40fed8
cmp byte [edi + eax], 0
mov edi, ecx
jne 0x40feb0
mov eax, ebx
inc eax
lea eax, [ebx + ebx + 2]
jns 0x40fee6
mov eax, 0xffffffff
push eax
call fcn.00409cc0
add esp, 4
mov dword [esi + 0xc], 0
lea ecx, [eax + ebx*2]
mov dword [esi + 0x14], eax
mov dword [esi + 0x30], eax
mov dword [esi + 0x24], ecx
cmp eax, ecx
mov edx, dword [esi + 0x18]
mov ecx, dword [esi + 0x2c]
mov ebx, dword [esi + 0x28]
jae 0x40ff9a
mov eax, dword [esi + 0x30]
mov dword [esi + 0x14], eax
cmp dword [esi + 0x34], 0
jle 0x40ff9a
mov eax, dword [esi + 0x30]
mov dword [esi + 0x14], eax
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp byte [ebx], 0
je 0x40ff9a
lea eax, [esi + 0xc]
push eax
mov edi, dword [esi + 8]
push edi
push ebx
call fcn.0040d6a0
add esp, 0xc
movzx ecx, word [esi + 0xc]
mov edx, dword [esi + 0x14]
mov word [edx], cx
add edx, 2
mov dword [esi + 0x14], edx
cmp edx, dword [esi + 0x24]
jae 0x40ff94
add ebx, eax
cmp ebx, edi
mov edx, dword [esi + 0x18]
mov ecx, dword [esi + 0x2c]
jb 0x40ff30
jmp 0x40ff9a
jmp dword [0x44654c]
push dword [esi + 0x30]
call fcn.00409cd0
add esp, 4
jmp dword [0x446554]
xor ecx, ecx
test eax, eax
setne cl
jmp dword [ecx*4 + 0x4462c4]
jmp dword [0x4462d0]
mov edx, dword [esi + 0x18]
mov ecx, dword [esi + 0x2c]
mov eax, dword [esi + 0x14]
mov word [eax], 0
xor eax, eax
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp byte [ecx + eax], 0
lea eax, [eax + 1]
jne 0x40ffb0
lea ecx, [edx + eax]
dec ecx
add eax, edx
neg eax
and eax, edx
mov edi, edx
not edi
and edi, ecx
sub edi, eax
add edx, edi
mov dword [esi + 0x14], 0
mov dword [esi + 0x34], edi
test edi, edi
mov dword [esi + 0x18], edx
jle 0x41001a
mov eax, dword [esi + 0x2c]
cmp byte [eax], 0
je 0x41001a
mov dword [esi + 0x14], 0
mov edi, dword [esi + 0x2c]
mov dword [esi + 0xc], 0
lea eax, [esi + 0xc]
push eax
push edx
push edi
call fcn.0040d6a0
mov edx, dword [esi + 0x18]
add esp, 0xc
inc dword [esi + 0x14]
lea ecx, [edi + eax]
cmp ecx, edx
jae 0x41001a
cmp byte [edi + eax], 0
mov edi, ecx
jne 0x40fff0
jmp dword [0x446460]
mov edx, dword [esi + 0xa4]
mov word [edx], 0xee1a
mov byte [edx + 2], 0x7e
mov eax, dword [esi + 0xe4]
mov byte [eax + 4], 0
mov dword [eax], 0
mov dword [esi], 0
mov eax, dword [esi]
cmp eax, 7
ja 0x410075
nop
nop
nop
nop
mov eax, dword [esi]
mov ecx, dword [esi]
movzx ecx, byte [edx + ecx]
add eax, 0xc02c6ce4
xor eax, ecx
mov dword [esi + 0xc], eax
mov eax, dword [esi + 0xc]
add al, 0x68
mov ecx, dword [esi]
mov byte [edx + ecx], al
inc dword [esi]
mov eax, dword [esi]
cmp eax, 8
jb 0x410050
push 3
push edx
push dword [esi + 8]
call fcn.00403900
add esp, 0xc
xor ecx, ecx
test eax, eax
sete cl
jmp dword [ecx*4 + 0x44637c]
mov edx, dword [esi + 0x10c]
mov word [edx], 0x67d1
mov dword [edx + 2], 0
mov dword [esi], 0
mov eax, dword [esi]
cmp eax, 5
ja 0x4100d5
mov eax, dword [esi]
mov ecx, dword [esi]
movzx ecx, byte [edx + ecx]
add eax, 0xbdbc9d8f
xor eax, ecx
mov dword [esi + 0xc], eax
mov eax, dword [esi + 0xc]
add al, 9
mov ecx, dword [esi]
mov byte [edx + ecx], al
inc dword [esi]
mov eax, dword [esi]
cmp eax, 6
jb 0x4100b0
push edx
push dword [esi + 8]
call fcn.00403270
add esp, 8
mov ebx, eax
mov edx, dword [esi + 0xa0]
mov word [edx], 0x9304
mov eax, dword [esi + 0xe0]
mov dword [eax], 0
mov byte [eax + 4], 0
mov dword [esi], 0
mov eax, dword [esi]
cmp eax, 6
ja 0x410135
nop
nop
nop
nop
nop
mov eax, dword [esi]
mov ecx, dword [esi]
movzx ecx, byte [edx + ecx]
add eax, 0xf8cf1ceb
xor eax, ecx
mov dword [esi + 0xc], eax
mov eax, dword [esi + 0xc]
add al, 0x81
mov ecx, dword [esi]
mov byte [edx + ecx], al
inc dword [esi]
mov eax, dword [esi]
cmp eax, 7
jb 0x410110
push edx
push dword [esi + 8]
call fcn.00403270
add esp, 8
mov dword [esi + 0x2c], eax
mov edx, dword [esi + 0x108]
mov word [edx], 0xe97d
mov dword [edx + 2], 0
mov dword [esi], 0
mov eax, dword [esi]
cmp eax, 5
ja 0x410195
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esi]
mov ecx, dword [esi]
movzx ecx, byte [edx + ecx]
add eax, 0xa4a8477c
xor eax, ecx
mov dword [esi + 0xc], eax
mov eax, dword [esi + 0xc]
add al, 0x6c
mov ecx, dword [esi]
mov byte [edx + ecx], al
inc dword [esi]
mov eax, dword [esi]
cmp eax, 6
jb 0x410170
push edx
push dword [esi + 8]
call fcn.004034d0
add esp, 8
mov dword [esi + 0x3c], eax
mov edx, dword [esi + 0x104]
mov dword [edx], 0x871c
mov dword [esi], 0
mov eax, dword [esi]
cmp eax, 3
ja 0x4101e5
nop
nop
nop
mov eax, dword [esi]
mov ecx, dword [esi]
movzx ecx, byte [edx + ecx]
add eax, 0xa3146fd2
xor eax, ecx
mov dword [esi + 0xc], eax
mov eax, dword [esi + 0xc]
add al, 0xac
mov ecx, dword [esi]
mov byte [edx + ecx], al
inc dword [esi]
mov eax, dword [esi]
cmp eax, 4
jb 0x4101c0
push edx
push dword [esi + 8]
call fcn.00403270
add esp, 8
mov dword [esi + 0x24], eax
mov edx, dword [esi + 0x100]
mov dword [edx], 0x4ceb
mov dword [esi], 0
mov eax, dword [esi]
cmp eax, 3
ja 0x410235
nop
nop
nop
mov eax, dword [esi]
mov ecx, dword [esi]
movzx ecx, byte [edx + ecx]
add eax, 0x535f2fe5
xor eax, ecx
mov dword [esi + 0xc], eax
mov eax, dword [esi + 0xc]
add al, 0x56
mov ecx, dword [esi]
mov byte [edx + ecx], al
inc dword [esi]
mov eax, dword [esi]
cmp eax, 4
jb 0x410210
push edx
push dword [esi + 8]
call fcn.004033a0
add esp, 8
mov edx, dword [esi + 0xfc]
mov word [edx], 0x55a7
mov byte [edx + 2], 0xc3
mov word [edx + 3], 0
fnstcw word [esi + 0x5e]
movzx eax, word [esi + 0x5e]
or eax, 0xc00
mov word [esi + 0x8e], ax
fldcw word [esi + 0x8e]
fistp dword [esi + 0x150]
fldcw word [esi + 0x5e]
mov eax, dword [esi + 0x150]
mov dword [esi + 0x28], eax
mov dword [esi], 0
mov eax, dword [esi]
cmp eax, 4
ja 0x4102b5
nop
nop
mov eax, dword [esi]
mov ecx, dword [esi]
movzx ecx, byte [edx + ecx]
add eax, 0xcbe0ccd8
xor eax, ecx
mov dword [esi + 0xc], eax
mov eax, dword [esi + 0xc]
add al, 0xe7
mov ecx, dword [esi]
mov byte [edx + ecx], al
inc dword [esi]
mov eax, dword [esi]
cmp eax, 5
jb 0x410290
push edx
push dword [esi + 8]
call fcn.004033a0
add esp, 8
xor eax, eax
mov edx, ebx
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp byte [edx + eax], 0
lea eax, [eax + 1]
jne 0x4102d0
fnstcw word [esi + 0x5c]
movzx ecx, word [esi + 0x5c]
or ecx, 0xc00
mov word [esi + 0x8c], cx
fldcw word [esi + 0x8c]
fistp dword [esi + 0x14c]
fldcw word [esi + 0x5c]
lea ecx, [edx + eax]
dec ecx
mov edi, edx
not edi
and edi, ecx
mov ecx, dword [esi + 0x14c]
mov dword [esi + 0x34], ecx
add eax, edx
neg eax
and eax, edx
sub edi, eax
mov eax, edi
inc eax
lea eax, [edi + edi + 2]
jns 0x410325
mov eax, 0xffffffff
push eax
call fcn.00409cc0
add esp, 4
mov dword [esi + 0x14], eax
lea edx, [eax + edi*2]
add edx, 2
mov ecx, ebx
test ebx, ebx
jne 0x41034d
mov eax, 0xffffffff
lea edi, [eax + 1]
cmp byte [eax + 1], 0
mov eax, edi
jne 0x410342
mov dword [esi + 0xc], 0
add edx, 0xfffffffe
mov eax, dword [esi + 0x14]
mov ebx, eax
mov dword [esi + 0x18], edx
cmp eax, edx
mov edx, eax
jae 0x4103a5
mov edx, dword [esi + 0x14]
test edi, edi
jle 0x4103a5
mov ebx, ecx
add ebx, edi
mov edx, dword [esi + 0x14]
cmp byte [ecx], 0
je 0x4103a5
lea eax, [esi + 0xc]
push eax
push ebx
push ecx
mov edi, ecx
mov dword [esi + 8], edx
call fcn.0040d6a0
mov edx, dword [esi + 8]
add esp, 0xc
movzx ecx, word [esi + 0xc]
mov word [edx], cx
add edx, 2
cmp edx, dword [esi + 0x18]
jae 0x4103a5
add edi, eax
cmp edi, ebx
mov ecx, edi
jb 0x410373
mov word [edx], 0
mov ecx, dword [esi + 0x4c]
mov dword [ecx], 0
mov dword [ecx + 4], 0
mov dword [ecx + 8], 0
mov edi, dword [esi + 0x14]
push edi
call fcn.0043c0e0
jmp dword [0x446384]
push edi
call fcn.00409cd0
add esp, 4
mov ecx, dword [esi + 0x4c]
push 0x400
call fcn.0043c320
not eax
shr eax, 0x1f
mov edi, dword [esi + 0x38]
jmp dword [eax*4 + 0x44638c]
jmp dword [0x44639c]
mov eax, dword [esi + 0x70]
mov dword [eax], 0
mov eax, dword [esi + 0x4c]
mov ecx, dword [eax]
mov dword [esi + 0xc], 0xd3d0d1d6
mov dword [esi + 0x10], 0
mov dword [esi + 0x1c], 0
mov eax, dword [esi + 0x1c]
cmp eax, 7
ja 0x41045b
mov eax, dword [esi + 0x1c]
mov edx, dword [esi + 0x1c]
movzx edx, byte [esi + edx + 0xc]
add eax, 0xb3ba1ca3
xor eax, edx
mov dword [esi], eax
mov eax, dword [esi]
add al, 0x8a
mov edx, dword [esi + 0x1c]
mov byte [esi + edx + 0xc], al
inc dword [esi + 0x1c]
mov eax, dword [esi + 0x1c]
cmp eax, 8
jb 0x410431
mov eax, dword [esi + 0xc]
mov edx, dword [0x44ba98]
test edx, edx
je case.default.0x4104b3
xor edi, edi
mov ebx, dword [0x44ba9c]
cmp dword [ebx + edi*8], 0x1b788dcf
je 0x410483
inc edi
cmp edx, edi
jne 0x410470
mov edi, dword [esi + 0x38]
jmp case.default.0x4104b3
mov edx, dword [ebx + edi*8 + 4]
cmp edx, eax
mov edi, dword [esi + 0x38]
je case.default.0x4104b3
push dword [esi + 0x70]
push 0
push 0
push 0x2b
push ecx
push 5
push dword [0x44baa0]
push edx
call fcn.0043dc50
add esp, 0x20
xor ecx, ecx
cmp eax, 0xc0000004
sete cl
jmp dword [ecx*4 + 0x4463a4]
jmp 0x410cbc
mov edi, dword [esi + 0x70]
mov eax, dword [edi]
mov ecx, eax
and ecx, 2
xor eax, 2
lea eax, [eax + ecx*2]
push eax
call fcn.0043bfa0
add esp, 4
mov dword [esi + 0x44], eax
mov edx, dword [edi]
mov eax, dword [esi + 0x4c]
mov eax, dword [eax]
mov dword [esi + 8], eax
mov dword [esi + 0xc], 0xd3d0d1d6
mov dword [esi + 0x10], 0
add edx, 2
mov dword [esi + 0x1c], 0
mov eax, dword [esi + 0x1c]
cmp eax, 7
ja 0x41052f
mov eax, dword [esi + 0x1c]
mov ecx, dword [esi + 0x1c]
movzx ecx, byte [esi + ecx + 0xc]
add eax, 0xb3ba1ca3
xor eax, ecx
mov dword [esi], eax
mov eax, dword [esi]
add al, 0x8a
mov ecx, dword [esi + 0x1c]
mov byte [esi + ecx + 0xc], al
inc dword [esi + 0x1c]
mov eax, dword [esi + 0x1c]
cmp eax, 8
jb 0x410505
mov eax, dword [esi + 0xc]
mov edi, dword [0x44ba98]
test edi, edi
je case.default.0x410580
xor ebx, ebx
mov ecx, dword [0x44ba9c]
cmp dword [ecx + ebx*8], 0x1b788dcf
je 0x410554
inc ebx
cmp edi, ebx
jne 0x410544
jmp case.default.0x410580
mov ecx, dword [ecx + ebx*8 + 4]
cmp ecx, eax
je case.default.0x410580
push 0
push edx
push dword [esi + 0x44]
push 0x2b
push dword [esi + 8]
push 5
push dword [0x44baa0]
push ecx
call fcn.0043dc50
add esp, 0x20
not eax
shr eax, 0x1f
mov edi, dword [esi + 0x38]
jmp dword [eax*4 + 0x4463ac]
mov edx, dword [esi + 0x2c]
mov ecx, edx
mov eax, ecx
inc ecx
cmp byte [eax], 0
jne 0x41058c
mov ecx, eax
not ecx
and ecx, edx
mov ebx, edx
not ebx
and ebx, eax
sub ebx, ecx
mov eax, ebx
and eax, 1
mov ecx, ebx
xor ecx, 1
lea edi, [ecx + eax*2]
lea eax, [edi + edi]
test edi, edi
jns 0x4105bb
mov eax, 0xffffffff
push eax
call fcn.00409cc0
add esp, 4
mov dword [esi + 0x14], eax
lea edi, [eax + edi*2]
mov dword [esi + 0x30], ebx
mov eax, ebx
mov edx, dword [esi + 0x2c]
test edx, edx
jne 0x4105e6
mov ecx, 0xffffffff
lea eax, [ecx + 1]
cmp byte [ecx + 1], 0
mov ecx, eax
jne 0x4105db
mov dword [esi + 0xc], 0
add edi, 0xfffffffe
mov ecx, dword [esi + 0x14]
mov ebx, ecx
mov dword [esi + 0x18], edi
cmp ecx, edi
jae 0x41063f
mov ecx, dword [esi + 0x14]
test eax, eax
jle 0x41063f
mov ebx, edx
add ebx, eax
mov ecx, dword [esi + 0x14]
cmp byte [edx], 0
je 0x41063f
lea eax, [esi + 0xc]
push eax
push ebx
push edx
mov edi, edx
mov dword [esi + 8], ecx
call fcn.0040d6a0
add esp, 0xc
movzx ecx, word [esi + 0xc]
mov edx, dword [esi + 8]
mov word [edx], cx
mov ecx, dword [esi + 8]
add ecx, 2
cmp ecx, dword [esi + 0x18]
jae 0x41063f
add edi, eax
cmp edi, ebx
mov edx, edi
jb 0x41060a
mov word [ecx], 0
mov eax, dword [esi + 0x44]
mov ecx, dword [eax + 4]
movzx eax, word [eax]
and eax, 0xfffffffe
add eax, ecx
add eax, 0xfffffffe
xor edx, edx
mov dword [esi + 8], ecx
cmp eax, ecx
setae dl
mov ecx, eax
mov edi, eax
jmp dword [edx*4 + 0x4463c4]
movzx edx, word [ecx]
xor ebx, ebx
test dx, dx
setne bl
mov edi, eax
jmp dword [ebx*4 + 0x4463cc]
xor ebx, ebx
cmp dx, 0x5c
sete bl
mov edi, ecx
jmp dword [ebx*4 + 0x4463d4]
add ecx, 0xfffffffe
xor edx, edx
cmp ecx, dword [esi + 8]
setae dl
mov edi, eax
jmp dword [edx*4 + 0x4463c4]
mov edx, edi
sub edx, dword [esi + 8]
sar edx, 1
mov eax, dword [esi + 0x30]
lea ecx, [eax + edx]
inc ecx
mov dword [esi + 0x2c], edx
add eax, edx
lea eax, [eax*2 + 2]
test ecx, ecx
jns 0x4106c7
mov eax, 0xffffffff
push eax
call fcn.00409cc0
add esp, 4
mov ebx, eax
mov dword [esi + 0x18], eax
cmp edi, dword [esi + 8]
mov edx, dword [esi + 0x14]
mov edi, dword [esi + 0x2c]
je 0x410785
mov eax, dword [esi + 0x44]
mov eax, dword [eax + 4]
lea ecx, [edi - 1]
mov ebx, edi
and ebx, 3
je 0x410728
mov dword [esi + 0x30], ecx
xor edi, edi
mov dword [esi + 8], ebx
mov ebx, dword [esi + 0x18]
movzx ecx, word [eax]
xor edx, edx
test cx, cx
setne dl
lea eax, [eax + edx*2]
mov word [ebx], cx
add ebx, 2
inc edi
cmp dword [esi + 8], edi
jne 0x4106ff
mov ecx, dword [esi + 0x2c]
sub ecx, edi
mov edi, ecx
mov edx, dword [esi + 0x14]
mov ecx, dword [esi + 0x30]
jmp 0x41072b
mov ebx, dword [esi + 0x18]
cmp ecx, 3
jb 0x410785
movzx ecx, word [eax]
xor edx, edx
test cx, cx
setne dl
mov word [ebx], cx
lea ecx, [eax + edx*2]
movzx eax, word [eax + edx*2]
xor edx, edx
test ax, ax
setne dl
mov word [ebx + 2], ax
lea eax, [ecx + edx*2]
movzx ecx, word [ecx + edx*2]
xor edx, edx
test cx, cx
setne dl
mov word [ebx + 4], cx
lea ecx, [eax + edx*2]
movzx edx, word [eax + edx*2]
xor eax, eax
test dx, dx
setne al
lea eax, [ecx + eax*2]
mov word [ebx + 6], dx
add ebx, 8
add edi, 0xfffffffc
jne 0x410730
mov edx, dword [esi + 0x14]
movzx eax, word [edx]
test ax, ax
je 0x4107a3
mov ecx, edx
add ecx, 2
mov word [ebx], ax
add ebx, 2
movzx eax, word [ecx]
add ecx, 2
test ax, ax
jne 0x410792
mov word [ebx], 0
jmp dword [0x4463dc]
push edx
call fcn.00409cd0
add esp, 4
mov ecx, ebx
not ecx
mov eax, dword [esi + 0x18]
and ecx, eax
not eax
and eax, ebx
sub eax, ecx
mov ecx, 0xffffffff
cmp eax, 0xfffffffe
jl 0x4107d5
add eax, 2
mov ecx, eax
push ecx
call fcn.00409cc0
add esp, 4
mov edi, eax
push eax
mov ebx, dword [esi + 0x18]
push ebx
call fcn.00439490
add esp, 8
jmp dword [0x4463e4]
push ebx
call fcn.00409cd0
add esp, 4
mov edx, dword [esi + 0x24]
mov ecx, edx
jmp 0x411b8a
mov edx, dword [esi + 0x24]
mov eax, edx
jmp 0x411b82
mov edx, dword [esi + 0x3c]
mov eax, edx
lea ecx, [eax + 1]
cmp byte [eax], 0
je 0x410821
mov eax, ecx
jmp 0x410815
mov ecx, edx
not ecx
and ecx, eax
not eax
and eax, edx
sub ecx, eax
mov eax, edx
add eax, ecx
mov dword [esi + 0x18], eax
xor ebx, ebx
mov dword [esi + 0x24], ecx
test ecx, ecx
jle 0x410878
cmp byte [edx], 0
mov edx, dword [esi + 0x18]
je 0x410878
xor ebx, ebx
mov edi, dword [esi + 0x3c]
nop
nop
nop
nop
nop
nop
mov dword [esi + 0xc], 0
lea eax, [esi + 0xc]
push eax
push edx
push edi
call fcn.0040d6a0
mov edx, dword [esi + 0x18]
add esp, 0xc
inc ebx
lea ecx, [edi + eax]
cmp ecx, edx
jae 0x410878
cmp byte [edi + eax], 0
mov edi, ecx
jne 0x410850
mov eax, ebx
and eax, 1
xor ebx, 1
lea ebx, [ebx + eax*2]
mov eax, dword [case.0x40e579.59]
nop
nop
nop
nop
nop
nop
nop
nop
jmp eax
lea eax, [ebx + ebx]
test ebx, ebx
mov edi, dword [esi + 0x3c]
jns 0x4108a1
mov eax, 0xffffffff
push eax
call fcn.00409cc0
add esp, 4
mov dword [esi + 0xc], 0
lea ecx, [eax + ebx*2]
add ecx, 0xfffffffe
mov dword [esi + 8], eax
mov dword [esi + 0x28], eax
mov dword [esi + 0x14], ecx
cmp eax, ecx
mov ecx, dword [esi + 0x18]
jae 0x410912
mov eax, dword [esi + 0x28]
mov dword [esi + 8], eax
cmp dword [esi + 0x24], 0
jle 0x410912
mov ebx, edi
mov eax, dword [esi + 0x28]
mov dword [esi + 8], eax
nop
nop
nop
nop
nop
cmp byte [ebx], 0
je 0x410912
lea eax, [esi + 0xc]
push eax
push ecx
push ebx
mov edi, ecx
call fcn.0040d6a0
add esp, 0xc
movzx ecx, word [esi + 0xc]
mov edx, dword [esi + 8]
mov word [edx], cx
add edx, 2
mov dword [esi + 8], edx
cmp edx, dword [esi + 0x14]
jae 0x410912
add ebx, eax
cmp ebx, edi
mov ecx, edi
jb 0x4108e0
mov eax, dword [esi + 8]
mov word [eax], 0
mov ecx, dword [esi + 0x74]
push 1
call fcn.0040a430
xor edi, edi
jmp 0x410933
push dword [esi + 0x2c]
call fcn.00403a20
add esp, 4
xor ecx, ecx
cmp edi, eax
setb cl
jmp dword [ecx*4 + 0x44631c]
mov edx, edi
mov edi, dword [esi + 0x2c]
mov dword [esi + 8], edx
jmp dword [0x446330]
jmp dword [0x446324]
push edx
push edi
call fcn.00403600
add esp, 8
xor edx, edx
test eax, eax
setg dl
lea eax, [ebx + ebx*2]
mov edi, dword [esi + 0x24]
lea ecx, [edi + eax*4]
push edx
push dword [esi + 8]
push dword [esi + 0x18]
call fcn.00413ae0
inc ebx
xor eax, eax
cmp ebx, dword [esi + 0x14]
setb al
jmp dword [eax*4 + 0x4464a4]
push ebx
push dword [esi + 0x2c]
call fcn.00403a30
add esp, 8
mov edi, eax
mov edx, dword [esi + 0x144]
mov dword [edx], 0x789993
mov dword [esi], 0
mov eax, dword [esi]
cmp eax, 3
ja 0x410b85
nop
nop
nop
mov eax, dword [esi]
mov ecx, dword [esi]
movzx ecx, byte [edx + ecx]
add eax, 0x78307b6
xor eax, ecx
mov dword [esi + 0xc], eax
mov eax, dword [esi + 0xc]
add al, 0x40
mov ecx, dword [esi]
mov byte [edx + ecx], al
inc dword [esi]
mov eax, dword [esi]
cmp eax, 4
jb 0x410b60
push edx
push edi
call fcn.00403270
add esp, 8
mov dword [esi + 8], eax
mov edx, dword [esi + 0xc4]
mov word [edx], 0xeee6
mov byte [edx + 2], 0x55
mov eax, dword [esi + 0x140]
mov word [eax], 0
mov byte [eax + 2], 0
mov dword [esi], 0
mov eax, dword [esi]
cmp eax, 5
ja 0x410be5
nop
nop
nop
mov eax, dword [esi]
mov ecx, dword [esi]
movzx ecx, byte [edx + ecx]
add eax, 0x2302e3af
xor eax, ecx
mov dword [esi + 0xc], eax
mov eax, dword [esi + 0xc]
add al, 0x1c
mov ecx, dword [esi]
mov byte [edx + ecx], al
inc dword [esi]
mov eax, dword [esi]
cmp eax, 6
jb 0x410bc0
push edx
push edi
call fcn.00403270
add esp, 8
mov dword [esi + 0x18], eax
mov edx, dword [esi + 0xd0]
mov dword [edx], 0x9671746d
mov byte [edx + 4], 0
mov dword [esi], 0
mov eax, dword [esi]
cmp eax, 4
ja 0x410b00
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esi]
mov ecx, dword [esi]
movzx ecx, byte [edx + ecx]
lea edx, [eax + 0xda]
and edx, ecx
add eax, ecx
add edx, edx
sub eax, edx
mov edx, dword [esi + 0xd0]
add eax, 0x5d6d45da
mov dword [esi + 0xc], eax
mov eax, dword [esi + 0xc]
add al, 0xb5
mov ecx, dword [esi]
mov byte [edx + ecx], al
inc dword [esi]
mov eax, dword [esi]
cmp eax, 5
jb 0x410c20
jmp 0x410b00
jmp dword [0x4463f4]
push dword [esi + 0x30]
call fcn.00409cd0
add esp, 4
mov edi, dword [esi + 0x48]
jmp dword [0x44642c]
mov edi, dword [esi + 0x48]
jmp dword [0x44642c]
jmp dword [0x446438]
push edi
call fcn.00409cd0
add esp, 4
push edi
call fcn.00409cd0
add esp, 4
jmp dword [0x44643c]
mov edi, dword [esi + 0x60]
mov ecx, edi
call fcn.0040acc0
mov ecx, edi
call fcn.0040a470
mov edi, dword [esi + 0x38]
push dword [esi + 0x44]
call fcn.0043c040
add esp, 4
mov ecx, dword [esi + 0x4c]
call fcn.0043c4a0
jmp case.0x40f493.1
mov edi, dword [esi + 0x11c]
jmp dword [0x4462f0]
mov dword [edi], 0x3a4a46
mov dword [esi + 0x20], 0
mov eax, dword [esi + 0x20]
cmp eax, 3
mov edx, edi
ja 0x410d1a
nop
nop
nop
nop
mov eax, dword [esi + 0x20]
mov ecx, dword [esi + 0x20]
movzx ecx, byte [edx + ecx]
add eax, 0x60adacb4
xor eax, ecx
mov dword [esi + 0x1c], eax
mov eax, dword [esi + 0x1c]
add al, 0x74
mov ecx, dword [esi + 0x20]
mov byte [edx + ecx], al
inc dword [esi + 0x20]
mov eax, dword [esi + 0x20]
cmp eax, 4
jb 0x410cf0
push 3
push edx
push dword [esi + 8]
mov edi, edx
call fcn.00403900
add esp, 0xc
jmp dword [0x4462f4]
xor ecx, ecx
test eax, eax
sete cl
mov edi, dword [esi + 0x38]
jmp dword [ecx*4 + 0x4462fc]
mov edx, dword [esi + 0x9c]
mov word [edx], 0x6b1
mov eax, dword [esi + 0xac]
mov byte [eax + 4], 0
mov dword [eax], 0
mov dword [esi], 0
mov eax, dword [esi]
cmp eax, 6
ja 0x410da4
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esi]
mov ecx, dword [esi]
movzx ecx, byte [edx + ecx]
lea edx, [eax + 0x6b]
add eax, ecx
and edx, ecx
add edx, edx
sub eax, edx
mov edx, dword [esi + 0x9c]
add eax, 0x56fd716b
mov dword [esi + 0xc], eax
mov eax, dword [esi + 0xc]
add al, 0x96
mov ecx, dword [esi]
mov byte [edx + ecx], al
inc dword [esi]
mov eax, dword [esi]
cmp eax, 7
jb 0x410d70
push edx
push dword [esi + 8]
call fcn.00403270
add esp, 8
mov dword [esi + 0x34], eax
mov edx, dword [esi + 0x98]
mov dword [edx], 0xbf23
mov dword [esi], 0
mov eax, dword [esi]
cmp eax, 3
ja 0x410e08
nop
nop
nop
nop
mov eax, dword [esi]
mov ecx, dword [esi]
movzx ecx, byte [edx + ecx]
lea edx, [eax + ecx]
add edx, 0xc5296a66
add eax, 0xc5296a66
and eax, ecx
add eax, eax
sub edx, eax
mov dword [esi + 0xc], edx
mov edx, dword [esi + 0x98]
mov eax, dword [esi + 0xc]
add al, 0x28
mov ecx, dword [esi]
mov byte [edx + ecx], al
inc dword [esi]
mov eax, dword [esi]
cmp eax, 4
jb 0x410dd0
push edx
push dword [esi + 8]
call fcn.004034d0
add esp, 8
mov edi, eax
mov edx, dword [esi + 0x114]
mov word [edx], 0xc358
mov dword [edx + 2], 0
mov dword [esi], 0
mov eax, dword [esi]
cmp eax, 5
ja 0x410e65
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esi]
mov ecx, dword [esi]
movzx ecx, byte [edx + ecx]
add eax, 0xa4afdf16
xor eax, ecx
mov dword [esi + 0xc], eax
mov eax, dword [esi + 0xc]
add al, 0x2c
mov ecx, dword [esi]
mov byte [edx + ecx], al
inc dword [esi]
mov eax, dword [esi]
cmp eax, 6
jb 0x410e40
push edx
push dword [esi + 8]
call fcn.00403270
add esp, 8
mov dword [esi + 0x3c], eax
mov edx, dword [esi + 0x110]
mov word [edx], 0x7e2
mov dword [edx + 2], 0
mov dword [esi], 0
mov eax, dword [esi]
cmp eax, 5
ja 0x410ec5
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esi]
mov ecx, dword [esi]
movzx ecx, byte [edx + ecx]
add eax, 0x1d92dc6
xor eax, ecx
mov dword [esi + 0xc], eax
mov eax, dword [esi + 0xc]
add al, 0x40
mov ecx, dword [esi]
mov byte [edx + ecx], al
inc dword [esi]
mov eax, dword [esi]
cmp eax, 6
jb 0x410ea0
push edx
push dword [esi + 8]
call fcn.004033a0
add esp, 8
mov edx, dword [esi + 0x78]
mov word [edx], 0xfbf1
mov byte [edx + 2], 0x69
mov word [edx + 3], 0
fnstcw word [esi + 0x58]
movzx eax, word [esi + 0x58]
or eax, 0xc00
mov word [esi + 0x88], ax
fldcw word [esi + 0x88]
fistp dword [esi + 0x158]
fldcw word [esi + 0x58]
mov eax, dword [esi + 0x158]
mov dword [esi + 0x30], eax
mov dword [esi], 0
mov eax, dword [esi]
cmp eax, 4
ja 0x410f62
nop
nop
nop
nop
nop
mov eax, dword [esi]
mov ecx, dword [esi]
mov edx, dword [esi + 0x78]
movzx edx, byte [edx + ecx]
lea ecx, [eax + edx]
add eax, 0x13
and eax, edx
mov edx, dword [esi + 0x78]
add eax, eax
sub ecx, eax
add ecx, 0xe4d3a713
mov dword [esi + 0xc], ecx
mov eax, dword [esi + 0xc]
mov ecx, eax
not ecx
and ecx, 0x7c
and eax, 0x83
sub eax, ecx
mov ecx, dword [esi]
mov byte [edx + ecx], al
inc dword [esi]
mov eax, dword [esi]
cmp eax, 5
jb 0x410f20
push edx
push dword [esi + 8]
call fcn.004033a0
add esp, 8
mov edx, dword [esi + 0x94]
mov word [edx], 0x4a53
mov byte [edx + 2], 0xf7
mov eax, dword [esi + 0xa8]
mov dword [eax], 0
mov byte [eax + 4], 0
fnstcw word [esi + 0x56]
movzx eax, word [esi + 0x56]
or eax, 0xc00
mov word [esi + 0x86], ax
fldcw word [esi + 0x86]
fistp dword [esi + 0x154]
fldcw word [esi + 0x56]
mov eax, dword [esi + 0x154]
mov dword [esi + 0x48], eax
mov dword [esi], 0
mov eax, dword [esi]
cmp eax, 7
ja 0x41100b
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esi]
mov ecx, dword [esi]
movzx ecx, byte [edx + ecx]
lea edx, [eax + ecx]
add edx, 0x4390945d
add eax, 0x4390945d
not ecx
or eax, ecx
sub ecx, eax
lea eax, [edx + ecx*2]
mov edx, dword [esi + 0x94]
mov dword [esi + 0xc], eax
mov eax, dword [esi + 0xc]
add al, 0x58
mov ecx, dword [esi]
mov byte [edx + ecx], al
inc dword [esi]
mov eax, dword [esi]
cmp eax, 8
jb 0x410fd0
mov dword [esi + 0x2c], edi
push edx
push dword [esi + 8]
call fcn.00403600
add esp, 8
mov dword [esi + 0x6c], eax
xor eax, eax
mov edx, dword [esi + 0x34]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp byte [edx + eax], 0
lea eax, [eax + 1]
jne 0x411030
lea ecx, [edx + eax]
dec ecx
add eax, edx
neg eax
and eax, edx
mov ebx, edx
not ebx
and ebx, ecx
sub ebx, eax
mov eax, edx
add eax, ebx
mov dword [esi + 0x18], eax
xor edi, edi
mov dword [esi + 0x44], ebx
test ebx, ebx
jle 0x411098
cmp byte [edx], 0
mov edx, dword [esi + 0x18]
je 0x411098
xor edi, edi
mov ebx, dword [esi + 0x34]
nop
nop
nop
nop
nop
nop
nop
nop
mov dword [esi + 0xc], 0
lea eax, [esi + 0xc]
push eax
push edx
push ebx
call fcn.0040d6a0
mov edx, dword [esi + 0x18]
add esp, 0xc
inc edi
lea ecx, [ebx + eax]
cmp ecx, edx
jae 0x411098
cmp byte [ebx + eax], 0
mov ebx, ecx
jne 0x411070
mov eax, edi
and eax, 1
mov ecx, edi
xor ecx, 1
lea ebx, [ecx + eax*2]
lea eax, [ebx + ebx]
test ebx, ebx
jns 0x4110b1
mov eax, 0xffffffff
push eax
call fcn.00409cc0
add esp, 4
mov dword [esi + 0xc], 0
lea ecx, [eax + ebx*2]
add ecx, 0xfffffffe
mov dword [esi + 8], eax
mov dword [esi + 0x28], eax
mov dword [esi + 0x14], ecx
cmp eax, ecx
mov ecx, dword [esi + 0x34]
mov ebx, dword [esi + 0x18]
jae 0x4111a2
mov eax, dword [esi + 0x28]
mov dword [esi + 8], eax
cmp dword [esi + 0x44], 0
jle 0x4111a2
mov eax, dword [esi + 0x28]
mov dword [esi + 8], eax
mov dword [esi + 0x24], edi
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp byte [ecx], 0
je 0x4111a2
lea eax, [esi + 0xc]
push eax
push ebx
push ecx
mov edi, ecx
call fcn.0040d6a0
add esp, 0xc
movzx ecx, word [esi + 0xc]
mov edx, dword [esi + 8]
mov word [edx], cx
add edx, 2
mov dword [esi + 8], edx
cmp edx, dword [esi + 0x14]
jae 0x41119f
add edi, eax
cmp edi, ebx
mov ecx, edi
mov edi, dword [esi + 0x24]
jb 0x411100
jmp 0x4111a2
mov dword [edi], 0x3a4a46
mov dword [esi + 0x20], 0
mov eax, dword [esi + 0x20]
cmp eax, 3
mov edx, edi
ja 0x41118a
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esi + 0x20]
mov ecx, dword [esi + 0x20]
movzx ecx, byte [edx + ecx]
add eax, 0x60adacb4
xor eax, ecx
mov dword [esi + 0x1c], eax
mov eax, dword [esi + 0x1c]
add al, 0x74
mov ecx, dword [esi + 0x20]
mov byte [edx + ecx], al
inc dword [esi + 0x20]
mov eax, dword [esi + 0x20]
cmp eax, 4
jb 0x411160
push 3
push edx
push dword [esi + 8]
mov edi, edx
call fcn.00403900
add esp, 0xc
jmp case.0x4115af.3
mov edi, dword [esi + 0x24]
mov eax, dword [esi + 8]
mov word [eax], 0
mov ebx, dword [esi + 0x90]
push ebx
push 0
push 0
push edi
push dword [esi + 0x28]
push 0
call dword [0x44ba94]
mov ebx, dword [ebx]
lea eax, [ebx + ebx]
test ebx, ebx
jns 0x4111cf
mov eax, 0xffffffff
push eax
call fcn.00409cc0
add esp, 4
push dword [esi + 0x90]
push ebx
mov dword [esi + 0x34], eax
push eax
push edi
mov edi, dword [esi + 0x28]
push edi
push 0
call dword [0x44ba94]
jmp dword [0x446304]
push edi
call fcn.00409cd0
add esp, 4
mov edx, dword [esi + 0x3c]
mov ecx, edx
jmp 0x41081d
mov ebx, dword [esi + 0x6c]
inc ebx
push edi
call fcn.00403a20
add esp, 4
xor ecx, ecx
cmp ebx, eax
setb cl
jmp dword [ecx*4 + 0x4463ec]
mov dword [esi + 0x6c], ebx
push ebx
push edi
call fcn.00403a00
add esp, 8
mov ebx, eax
jmp dword [0x446400]
mov ebx, eax
not eax
mov dword [esi + 0x2c], eax
mov eax, ebx
jmp dword [0x446418]
mov ecx, ebx
jmp 0x41132c
mov ecx, eax
inc eax
cmp byte [ecx], 0
jne case.0x410663.20
mov eax, ecx
not eax
and eax, ebx
and ecx, dword [esi + 0x2c]
sub ecx, eax
mov eax, ecx
inc eax
mov edi, ecx
lea eax, [ecx + ecx + 2]
jns 0x411273
mov eax, 0xffffffff
push eax
call fcn.00409cc0
add esp, 4
mov ecx, edi
mov dword [esi + 0x14], eax
lea edx, [eax + edi*2]
add edx, 2
test ebx, ebx
jne 0x41129b
mov eax, 0xffffffff
lea ecx, [eax + 1]
cmp byte [eax + 1], 0
mov eax, ecx
jne 0x411290
mov dword [esi + 0xc], 0
add edx, 0xfffffffe
mov eax, dword [esi + 0x14]
mov edi, eax
mov dword [esi + 0x18], edx
cmp eax, edx
mov edx, eax
jae 0x411302
mov edx, dword [esi + 0x14]
test ecx, ecx
jle 0x411302
mov edi, dword [esi + 0x24]
add ecx, edi
mov edx, dword [esi + 0x14]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp byte [edi], 0
je 0x411302
lea eax, [esi + 0xc]
push eax
push ecx
push edi
mov ebx, ecx
mov dword [esi + 8], edx
call fcn.0040d6a0
mov edx, dword [esi + 8]
add esp, 0xc
movzx ecx, word [esi + 0xc]
mov word [edx], cx
add edx, 2
cmp edx, dword [esi + 0x18]
jae 0x411302
add edi, eax
cmp edi, ebx
mov ecx, ebx
jb 0x4112d0
mov word [edx], 0
push 0
push 0
push dword [esi + 0x28]
push dword [esi + 0x34]
push dword [esi + 0x14]
push dword [esi + 0x48]
push dword [esi + 0x30]
push dword [esi + 0x60]
call fcn.0041a400
add esp, 0x20
mov ebx, dword [esi + 0x24]
mov eax, ebx
mov ecx, eax
lea eax, [ecx + 1]
cmp byte [ecx], 0
jne 0x41132a
mov eax, ecx
not eax
and eax, ebx
and ecx, dword [esi + 0x2c]
sub ecx, eax
mov eax, ecx
inc eax
mov edi, ecx
lea eax, [ecx + ecx + 2]
jns 0x41134f
mov eax, 0xffffffff
push eax
call fcn.00409cc0
add esp, 4
mov ecx, edi
mov dword [esi + 0x14], eax
lea edx, [eax + edi*2]
add edx, 2
test ebx, ebx
jne 0x41137b
mov eax, 0xffffffff
nop
nop
nop
nop
lea ecx, [eax + 1]
cmp byte [eax + 1], 0
mov eax, ecx
jne 0x411370
mov dword [esi + 0xc], 0
add edx, 0xfffffffe
mov eax, dword [esi + 0x14]
mov edi, eax
mov dword [esi + 0x18], edx
cmp eax, edx
mov edx, eax
jae 0x4113e2
mov edx, dword [esi + 0x14]
test ecx, ecx
jle 0x4113e2
mov edi, dword [esi + 0x24]
add ecx, edi
mov edx, dword [esi + 0x14]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp byte [edi], 0
je 0x4113e2
lea eax, [esi + 0xc]
push eax
push ecx
push edi
mov ebx, ecx
mov dword [esi + 8], edx
call fcn.0040d6a0
mov edx, dword [esi + 8]
add esp, 0xc
movzx ecx, word [esi + 0xc]
mov word [edx], cx
add edx, 2
cmp edx, dword [esi + 0x18]
jae 0x4113e2
add edi, eax
cmp edi, ebx
mov ecx, ebx
jb 0x4113b0
mov word [edx], 0
push 0
push 0
push dword [esi + 0x28]
push dword [esi + 0x34]
push dword [esi + 0x14]
push dword [esi + 0x48]
push dword [esi + 0x30]
push dword [esi + 0x60]
call fcn.0041a400
add esp, 0x20
mov ebx, dword [esi + 0x24]
mov eax, ebx
mov edi, dword [esi + 0x3c]
jmp dword [0x446420]
jmp dword [0x446424]
push dword [esi + 0x14]
call fcn.00409cd0
add esp, 4
jmp case.0x410663.19
xor ecx, ecx
test eax, eax
sete cl
mov dword [esi + 0x24], eax
jmp dword [ecx*4 + 0x44640c]
push ebx
call fcn.00403380
add esp, 4
push ebx
call fcn.00403380
add esp, 4
jmp dword [0x446408]
push dword [esi + 8]
call fcn.00409cd0
add esp, 4
mov edi, dword [esi + 0x38]
jmp dword [0x4464cc]
jmp dword [0x4464d4]
push dword [esi + 0x30]
call fcn.00409cd0
add esp, 4
mov ebx, dword [esi + 0x7c]
jmp dword [0x4464e0]
mov dword [esi + 0x40], 0xab2c
mov dword [esi + 0x20], 0
mov eax, dword [esi + 0x20]
cmp eax, 3
ja 0x4114cc
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esi + 0x20]
mov ecx, dword [esi + 0x20]
movzx ecx, byte [esi + ecx + 0x40]
add eax, 0x71d31324
xor eax, ecx
mov dword [esi + 0x1c], eax
mov eax, dword [esi + 0x1c]
add al, 0x72
mov ecx, dword [esi + 0x20]
mov byte [esi + ecx + 0x40], al
inc dword [esi + 0x20]
mov eax, dword [esi + 0x20]
cmp eax, 4
jb 0x4114a0
push 2
lea eax, [esi + 0x40]
push eax
push dword [esi + 8]
call fcn.00403900
add esp, 0xc
mov dword [esi + 0x40], 0xab2c
mov dword [esi + 0x20], 0
mov eax, dword [esi + 0x20]
cmp eax, 3
ja 0x41152c
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esi + 0x20]
mov ecx, dword [esi + 0x20]
movzx ecx, byte [esi + ecx + 0x40]
add eax, 0x71d31324
xor eax, ecx
mov dword [esi + 0x1c], eax
mov eax, dword [esi + 0x1c]
add al, 0x72
mov ecx, dword [esi + 0x20]
mov byte [esi + ecx + 0x40], al
inc dword [esi + 0x20]
mov eax, dword [esi + 0x20]
cmp eax, 4
jb 0x411500
push 2
lea eax, [esi + 0x40]
push eax
push dword [esi + 8]
call fcn.00403900
add esp, 0xc
jmp dword [0x4462d4]
xor ecx, ecx
test eax, eax
setne cl
jmp dword [ecx*4 + 0x4462dc]
mov edx, dword [esi + 0x120]
mov dword [edx], 0x64c7
mov dword [esi + 0x20], 0
mov eax, dword [esi + 0x20]
cmp eax, 3
ja 0x41159a
nop
nop
nop
nop
mov eax, dword [esi + 0x20]
mov ecx, dword [esi + 0x20]
movzx ecx, byte [edx + ecx]
add eax, 0x81985313
xor eax, ecx
mov dword [esi + 0x1c], eax
mov eax, dword [esi + 0x1c]
add al, 0x90
mov ecx, dword [esi + 0x20]
mov byte [edx + ecx], al
inc dword [esi + 0x20]
mov eax, dword [esi + 0x20]
cmp eax, 4
jb 0x411570
push 3
push edx
push dword [esi + 8]
call fcn.00403900
add esp, 0xc
xor ecx, ecx
test eax, eax
setne cl
jmp dword [ecx*4 + 0x4462e4]
jmp case.0x40f493.1
xor eax, eax
test ebx, ebx
sete al
mov edi, ebx
jmp dword [eax*4 + 0x4464b4]
mov edx, edi
lea eax, [edi - 4]
mov dword [esi + 8], eax
mov eax, dword [edi - 4]
xor ecx, ecx
test eax, eax
lea eax, [eax + eax*2]
lea ebx, [edi + eax*4]
sete cl
jmp dword [ecx*4 + 0x4464bc]
add ebx, 0xfffffff4
xor eax, eax
cmp ebx, edi
sete al
jmp dword [eax*4 + 0x4464c4]
mov eax, dword [ebx - 0xc]
test eax, eax
je 0x411611
push eax
call fcn.00409cd0
add esp, 4
mov eax, dword [ebx - 8]
test eax, eax
je 0x4115f0
push eax
call fcn.00409cd0
add esp, 4
jmp 0x4115f0
mov ecx, ebx
call fcn.0040a470
mov ecx, ebx
call fcn.0040a470
jmp dword [0x4464e8]
nop
nop
nop
nop
nop
nop
nop
nop
nop
jmp dword [0x446568]
push dword [esi + 0x2c]
call fcn.00403a20
add esp, 4
mov ecx, eax
mov dword [esi + 0x14], eax
mov ecx, 0xc
mul ecx
seto dl
mov ecx, 0xffffffff
mov edi, 0xffffffff
add eax, 4
jb 0x411671
mov edi, eax
test dl, dl
jne 0x411677
mov ecx, edi
push ecx
call fcn.00409cc0
add esp, 4
mov edi, eax
mov ecx, dword [esi + 0x14]
mov dword [eax], ecx
add edi, 4
xor eax, eax
test ecx, ecx
sete al
jmp dword [eax*4 + 0x446484]
mov eax, dword [esi + 0x14]
lea eax, [eax + eax*2]
lea eax, [edi + eax*4]
mov dword [edi], 0
mov dword [edi + 4], 0
mov byte [edi + 8], 0
lea ecx, [edi + 0xc]
xor edx, edx
cmp ecx, eax
sete dl
jmp dword [edx*4 + 0x44648c]
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 + 0x44648c]
jmp dword [0x44649c]
xor ebx, ebx
xor eax, eax
cmp ebx, dword [esi + 0x14]
setb al
mov dword [esi + 0x24], edi
jmp dword [eax*4 + 0x4464a4]
mov dword [esi + 0x24], ebx
mov eax, dword [edi + 4]
mov ecx, dword [esi + 0x12c]
mov byte [ecx + 0xa], 0
cmp eax, 0x3ff
mov edx, dword [esi + 0x50]
mov ebx, dword [esi + 0x64]
ja 0x411743
lea edi, [ecx + 9]
mov byte [ecx + 9], 0x30
jmp 0x4117ea
lea edi, [ecx + 0xa]
mov ecx, eax
shr ecx, 0xa
cmp eax, 0x19000
jb 0x4117b8
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, ecx
mov edx, 0x51eb851f
mul edx
shr edx, 5
mov eax, ecx
mov dword [esi + 8], ecx
imul ecx, edx, 0x64
sub eax, ecx
mov ebx, eax
and ebx, 2
mov ecx, eax
or eax, 2
imul eax, ebx
xor ebx, 2
and ecx, 0x7d
imul ecx, ebx
movzx eax, word [ecx + eax + 0x443318]
mov word [edi - 2], ax
add edi, 0xfffffffe
cmp dword [esi + 8], 0x270f
mov ecx, edx
ja 0x411760
cmp edx, 9
ja 0x4117bf
movzx eax, byte [edx + str.0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ]
mov byte [edi - 1], al
dec edi
jmp 0x4117e4
mov edx, ecx
cmp edx, 9
jbe 0x4117ab
mov eax, edx
and eax, 0x7d
mov ecx, edx
and ecx, 2
or edx, 2
imul edx, ecx
xor ecx, 2
imul ecx, eax
movzx eax, word [ecx + edx + 0x443318]
mov word [edi - 2], ax
add edi, 0xfffffffe
mov edx, dword [esi + 0x50]
mov ebx, dword [esi + 0x64]
mov dword [edx], 0xbcb1f8f2
mov eax, dword [esi + 0xf4]
mov byte [eax + 2], 0
mov word [eax], 0
mov dword [esi], 0
mov eax, dword [esi]
cmp eax, 6
ja 0x411835
nop
nop
nop
nop
mov eax, dword [esi]
mov ecx, dword [esi]
movzx ecx, byte [edx + ecx]
add eax, 0x868a4389
xor eax, ecx
mov dword [esi + 0xc], eax
mov eax, dword [esi + 0xc]
add al, 0xd0
mov ecx, dword [esi]
mov byte [edx + ecx], al
inc dword [esi]
mov eax, dword [esi]
cmp eax, 7
jb 0x411810
mov dword [ebx], 0x8b8c80b9
mov dword [ebx + 4], 0x75bd8989
mov dword [ebx + 8], 0x858db48a
mov dword [ebx + 0xc], 0x81728f8f
mov dword [ebx + 0x10], 0x96836f9d
mov dword [ebx + 0x14], 0x986a979e
mov dword [ebx + 0x18], 0x9697959c
mov dword [ebx + 0x1c], 0x1d958c9b
mov dword [ebx + 0x20], 0xece3dcec
mov dword [ebx + 0x24], 0xf91af7e7
mov dword [ebx + 0x28], 0xe9fa17e5
mov dword [ebx + 0x2c], 0xf2ff13ef
mov dword [ebx + 0x30], 0xfbf1e1fe
mov dword [ebx + 0x34], 0xf4e60b3c
mov dword [ebx + 0x38], 0x1f2c4e8
mov dword [ebx + 0x3c], 0xc8ffc0f0
mov dword [ebx + 0x40], 0xd43ed3c3
mov dword [ebx + 0x44], 0x1fc5d1c3
mov word [ebx + 0x48], 0x5734
mov eax, dword [esi + 0xf8]
mov byte [eax + 2], 0
mov word [eax], 0
mov dword [esi], 0
mov eax, dword [esi]
cmp eax, 0x4c
ja 0x411905
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esi]
mov ecx, dword [esi]
movzx ecx, byte [ebx + ecx]
add eax, 0xedd16a21
xor eax, ecx
mov dword [esi + 0xc], eax
mov eax, dword [esi + 0xc]
add al, 0xc3
mov ecx, dword [esi]
mov byte [ebx + ecx], al
inc dword [esi]
mov eax, dword [esi]
cmp eax, 0x4d
jb 0x4118e0
lea eax, [0x44aa8b]
nop
nop
nop
nop
nop
cmp byte [eax + 1], 0
lea eax, [eax + 1]
jne 0x411910
movzx ecx, byte [ebx]
test cl, cl
je 0x411942
xor edx, edx
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov byte [eax + edx], cl
movzx ecx, byte [ebx + edx + 1]
inc edx
test cl, cl
jne 0x411930
add eax, edx
mov edx, dword [esi + 0x50]
mov byte [eax], 0
movzx ecx, byte [edi]
test cl, cl
je 0x41195b
inc edi
nop
nop
nop
mov byte [eax], cl
inc eax
movzx ecx, byte [edi]
inc edi
test cl, cl
jne 0x411950
mov byte [eax], 0
movzx ecx, byte [edx]
test cl, cl
je 0x41197d
mov edx, dword [esi + 0xf0]
mov edi, dword [esi + 0x24]
nop
nop
mov byte [eax], cl
inc eax
movzx ecx, byte [edx]
inc edx
test cl, cl
jne 0x411970
jmp 0x411980
mov edi, dword [esi + 0x24]
mov byte [eax], 0
xor eax, eax
test edi, edi
sete al
jmp dword [eax*4 + 0x4464b4]
mov edi, dword [esi + 0x38]
jmp dword [0x4464cc]
push dword [esi + 0x28]
call fcn.00409cd0
add esp, 4
jmp dword [0x4464d4]
mov ebx, dword [esi + 0x7c]
jmp dword [0x4464e0]
mov edi, dword [esi + 0x14]
mov eax, edi
inc eax
lea eax, [edi + edi + 2]
jns 0x4119c5
mov eax, 0xffffffff
push eax
call fcn.00409cc0
mov ebx, dword [esi + 0x18]
add esp, 4
mov dword [esi + 0xc], 0
lea edi, [eax + edi*2]
mov edx, eax
mov dword [esi + 0x28], eax
mov dword [esi + 0x24], edi
cmp eax, edi
jae 0x411a2e
mov edx, dword [esi + 0x28]
cmp dword [esi + 0x34], 0
jle 0x411a2e
mov edx, dword [esi + 0x28]
mov edi, dword [esi + 0x2c]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp byte [edi], 0
je 0x411a2e
lea eax, [esi + 0xc]
push eax
push ebx
push edi
mov dword [esi + 8], edx
call fcn.0040d6a0
mov edx, dword [esi + 8]
add esp, 0xc
movzx ecx, word [esi + 0xc]
mov word [edx], cx
add edx, 2
cmp edx, dword [esi + 0x24]
jae 0x411a2e
add edi, eax
cmp edi, ebx
jb 0x411a00
mov word [edx], 0
jmp dword [0x446468]
mov edi, dword [esi + 0x14]
mov eax, edi
inc eax
lea eax, [edi + edi + 2]
jns 0x411a4a
mov eax, 0xffffffff
push eax
call fcn.00409cc0
add esp, 4
mov edx, eax
mov dword [esi + 0xc], 0
lea eax, [eax + edi*2]
mov dword [esi + 0x24], eax
cmp edx, eax
jae 0x411aae
cmp dword [esi + 0x34], 0
mov ebx, dword [esi + 0x18]
jle 0x411aae
mov edi, dword [esi + 0x2c]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp byte [edi], 0
je 0x411aae
lea eax, [esi + 0xc]
push eax
push ebx
push edi
mov dword [esi + 8], edx
call fcn.0040d6a0
mov edx, dword [esi + 8]
add esp, 0xc
movzx ecx, word [esi + 0xc]
mov word [edx], cx
add edx, 2
cmp edx, dword [esi + 0x24]
jae 0x411aae
add edi, eax
cmp edi, ebx
jb 0x411a80
mov word [edx], 0
jmp case.0x410663.39
mov edi, dword [esi + 0xbc]
mov word [edi], 0x8b97
mov byte [edi + 2], 0x32
mov eax, dword [esi + 0x124]
mov byte [eax + 4], 0
mov dword [eax], 0
mov dword [esi], 0
mov eax, dword [esi]
cmp eax, 7
ja 0x411b2a
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esi]
mov ecx, dword [esi]
movzx edx, byte [edi + ecx]
lea ecx, [eax + edx]
add eax, 0x11
and eax, edx
add eax, eax
sub ecx, eax
add ecx, 0x9d57011
mov dword [esi + 0xc], ecx
mov eax, dword [esi + 0xc]
mov ecx, eax
xor ecx, 0x21
and eax, 0x5e
add eax, eax
sub eax, ecx
mov ecx, dword [esi]
mov byte [edi + ecx], al
inc dword [esi]
mov eax, dword [esi]
cmp eax, 8
jb 0x411af0
push edi
push dword [ebp + 8]
call fcn.004034d0
add esp, 8
xor ecx, ecx
mov dword [esi + 0x2c], eax
test eax, eax
setne cl
mov dword [esi + 0x14], 0
xor edi, edi
jmp dword [ecx*4 + 0x44647c]
mov ebx, edi
mov edi, dword [esi + 0x7c]
mov ecx, edi
push 2
call fcn.0040a430
push dword [esi + 0x14]
push ebx
push dword [esi + 0x28]
push dword [esi + 0x30]
push edi
call fcn.00413fd0
add esp, 0x14
mov ecx, edi
call fcn.0040acc0
movzx eax, al
jmp dword [eax*4 + 0x4464ac]
lea ecx, [eax + 1]
cmp byte [eax], 0
je 0x411b8e
mov eax, ecx
jmp 0x411b82
mov dword [esi + 0x48], edi
mov ecx, eax
not ecx
and ecx, edx
mov edi, edx
not edi
and edi, eax
sub edi, ecx
add edi, edx
mov ebx, edi
push edi
push edx
call fcn.00413a90
add esp, 8
mov edi, eax
inc eax
lea eax, [edi + edi + 2]
jns 0x411bbb
mov eax, 0xffffffff
push eax
call fcn.00409cc0
add esp, 4
mov dword [esi + 0x30], eax
lea edi, [eax + edi*2]
add edi, 2
mov ecx, dword [esi + 0x24]
test ecx, ecx
mov edx, ebx
jne 0x411be6
mov eax, 0xffffffff
lea edx, [eax + 1]
cmp byte [eax + 1], 0
mov eax, edx
jne 0x411bdb
mov dword [esi + 0xc], 0
add edi, 0xfffffffe
mov eax, dword [esi + 0x30]
mov dword [esi + 8], eax
mov dword [esi + 0x18], edi
cmp eax, edi
jae 0x411c43
mov eax, dword [esi + 0x30]
mov dword [esi + 8], eax
cmp ecx, edx
jae 0x411c43
mov eax, dword [esi + 0x30]
mov dword [esi + 8], eax
cmp byte [ecx], 0
je 0x411c43
lea eax, [esi + 0xc]
push eax
push edx
push ecx
mov ebx, ecx
mov edi, edx
call fcn.0040d6a0
add esp, 0xc
movzx ecx, word [esi + 0xc]
mov edx, dword [esi + 8]
mov word [edx], cx
add edx, 2
mov dword [esi + 8], edx
cmp edx, dword [esi + 0x18]
jae 0x411c43
add ebx, eax
cmp ebx, edi
mov ecx, ebx
mov edx, edi
jb 0x411c0d
mov eax, dword [esi + 8]
mov word [eax], 0
mov ecx, dword [esi + 0x60]
push 1
call fcn.0040a430
xor ebx, ebx
mov edi, dword [esi + 0x3c]
jmp 0x41120d
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
int3
mov dword [esp + 0x24], esi
jmp 0x411cb1
inc edi
push esi
call fcn.00403a20
add esp, 4
xor ecx, ecx
cmp edi, eax
setb cl
mov al, 1
jmp dword [ecx*4 + 0x446574]
jmp dword [0x44657c]
push edi
push esi
call fcn.00403a30
add esp, 8
mov word [esp + 0x10c], 0xba10
mov dword [esp + 0x10e], 0
mov dword [esp + 0xb0], 0
mov ecx, dword [esp + 0xb0]
cmp ecx, 5
ja 0x411d5a
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov ecx, dword [esp + 0xb0]
mov edx, dword [esp + 0xb0]
movzx edx, byte [esp + edx + 0x10c]
add ecx, 0x55fe1a4f
xor ecx, edx
mov dword [esp + 0x3c], ecx
mov ecx, dword [esp + 0x3c]
add cl, 0x16
mov edx, dword [esp + 0xb0]
mov byte [esp + edx + 0x10c], cl
inc dword [esp + 0xb0]
mov ecx, dword [esp + 0xb0]
cmp ecx, 6
jb 0x411d10
push 2
lea ecx, [esp + 0x110]
push ecx
push eax
call fcn.00403900
add esp, 0xc
jmp case.0x410663.110
push 2
lea eax, [esp + 0x110]
push eax
push ebx
call fcn.00403900
add esp, 0xc
jmp dword [0x446584]
push edi
push esi
call fcn.00403a30
add esp, 8
mov ebx, eax
mov word [esp + 0x10c], 0xba10
mov dword [esp + 0x10e], 0
mov dword [esp], 0
mov eax, dword [esp]
cmp eax, 5
ja 0x411d70
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp]
mov ecx, dword [esp]
movzx ecx, byte [esp + ecx + 0x10c]
add eax, 0x55fe1a4f
xor eax, ecx
mov dword [esp + 8], eax
mov eax, dword [esp + 8]
add al, 0x16
mov ecx, dword [esp]
mov byte [esp + ecx + 0x10c], al
inc dword [esp]
mov eax, dword [esp]
cmp eax, 6
jb 0x411dc0
jmp 0x411d70
xor ecx, ecx
test eax, eax
setne cl
jmp dword [ecx*4 + 0x44658c]
mov word [esp + 0x3c], 0xffce
mov byte [esp + 0x3e], 0x6a
lea eax, [esp + 0x3e]
mov byte [eax + 3], 0
mov word [eax + 1], 0
mov dword [esp], 0
mov eax, dword [esp]
cmp eax, 5
ja 0x411e6e
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp]
mov ecx, dword [esp]
movzx ecx, byte [esp + ecx + 0x3c]
add eax, 0x9deb2197
xor eax, ecx
mov dword [esp + 8], eax
mov eax, dword [esp + 8]
add al, 0xd
mov ecx, dword [esp]
mov byte [esp + ecx + 0x3c], al
inc dword [esp]
mov eax, dword [esp]
cmp eax, 6
jb 0x411e40
push 3
lea eax, [esp + 0x40]
push eax
push ebx
call fcn.00403900
add esp, 0xc
xor ecx, ecx
test eax, eax
setne cl
jmp dword [ecx*4 + 0x446594]
mov word [esp + 0xb0], 0x8367
lea eax, [esp + 0xb2]
mov word [eax + 4], 0
mov dword [eax], 0
mov dword [esp], 0
mov eax, dword [esp]
cmp eax, 7
ja 0x411f00
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp]
mov ecx, dword [esp]
movzx ecx, byte [esp + ecx + 0xb0]
add eax, 0x2faadc2
xor eax, ecx
mov dword [esp + 8], eax
mov eax, dword [esp + 8]
mov ecx, eax
not ecx
and ecx, 0x40
and eax, 0xbf
sub eax, ecx
mov ecx, dword [esp]
mov byte [esp + ecx + 0xb0], al
inc dword [esp]
mov eax, dword [esp]
cmp eax, 8
jb 0x411ec0
push 3
lea eax, [esp + 0xb4]
push eax
push ebx
call fcn.00403900
add esp, 0xc
xor ecx, ecx
test eax, eax
sete cl
jmp dword [ecx*4 + 0x44659c]
mov dword [esp + 0x2c], edi
mov word [esp + 0x10c], 0x7ec8
mov dword [esp + 0x10e], 0
mov dword [esp + 0xb0], 0
mov eax, dword [esp + 0xb0]
cmp eax, 5
ja 0x411fb5
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp + 0xb0]
mov ecx, dword [esp + 0xb0]
movzx ecx, byte [esp + ecx + 0x10c]
lea edx, [eax + ecx]
add eax, 0xdd
and eax, ecx
add eax, eax
sub edx, eax
add edx, 0x352c7dd
mov dword [esp + 0x3c], edx
mov eax, dword [esp + 0x3c]
add al, 0x60
mov ecx, dword [esp + 0xb0]
mov byte [esp + ecx + 0x10c], al
inc dword [esp + 0xb0]
mov eax, dword [esp + 0xb0]
cmp eax, 6
jb 0x411f60
lea eax, [esp + 0x10c]
push eax
push ebx
call fcn.00403270
add esp, 8
mov word [esp + 0x10c], 0x8d98
mov byte [esp + 0x10e], 0
mov dword [esp + 0x10f], 0
mov edi, eax
mov dword [esp + 0xb0], 0
mov eax, dword [esp + 0xb0]
cmp eax, 6
ja 0x412048
nop
nop
nop
nop
mov eax, dword [esp + 0xb0]
mov ecx, dword [esp + 0xb0]
movzx ecx, byte [esp + ecx + 0x10c]
add eax, 0xf84c6cbd
xor eax, ecx
mov dword [esp + 0x3c], eax
mov eax, dword [esp + 0x3c]
add al, 0x41
mov ecx, dword [esp + 0xb0]
mov byte [esp + ecx + 0x10c], al
inc dword [esp + 0xb0]
mov eax, dword [esp + 0xb0]
cmp eax, 7
jb 0x412000
lea eax, [esp + 0x10c]
push eax
push ebx
call fcn.004033a0
add esp, 8
mov word [esp + 0x10c], 0xc3bf
mov dword [esp + 0x10e], 0
fnstcw word [esp + 0xa2]
movzx eax, word [esp + 0xa2]
or eax, 0xc00
mov word [esp + 0xae], ax
fldcw word [esp + 0xae]
fistp dword [esp + 0x108]
fldcw word [esp + 0xa2]
mov eax, dword [esp + 0x108]
mov dword [esp + 0x28], eax
mov dword [esp + 0xb0], 0
mov eax, dword [esp + 0xb0]
cmp eax, 5
ja 0x412128
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp + 0xb0]
mov ecx, dword [esp + 0xb0]
movzx ecx, byte [esp + ecx + 0x10c]
lea edx, [eax + ecx]
add edx, 0x77224c4c
add eax, 0x77224c4c
not ecx
or eax, ecx
sub ecx, eax
lea eax, [edx + ecx*2]
mov dword [esp + 0x3c], eax
mov eax, dword [esp + 0x3c]
add al, 0x72
mov ecx, dword [esp + 0xb0]
mov byte [esp + ecx + 0x10c], al
inc dword [esp + 0xb0]
mov eax, dword [esp + 0xb0]
cmp eax, 6
jb 0x4120d0
lea eax, [esp + 0x10c]
push eax
push ebx
call fcn.004033a0
add esp, 8
xor eax, eax
nop
nop
nop
nop
nop
cmp byte [edi + eax], 0
lea eax, [eax + 1]
jne 0x412140
fnstcw word [esp + 0xa0]
movzx ecx, word [esp + 0xa0]
or ecx, 0xc00
mov word [esp + 0xac], cx
fldcw word [esp + 0xac]
fistp dword [esp + 0x104]
fldcw word [esp + 0xa0]
lea edx, [edi + eax]
dec edx
mov ecx, edi
not ecx
and ecx, edx
mov edx, dword [esp + 0x104]
mov dword [esp + 0x18], edx
add eax, edi
neg eax
and eax, edi
sub ecx, eax
mov dword [esp + 0x3c], 0
lea eax, [esp + 0x10c]
test ecx, ecx
jle 0x412216
mov edx, edi
add edx, ecx
xor esi, esi
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp byte [edi], 0
je 0x41220e
lea eax, [esp + 0x3c]
push eax
push edx
push edi
mov dword [esp + 0x28], edi
mov edi, ebx
mov ebx, edx
call fcn.0040d6a0
add esp, 0xc
movzx edx, word [esp + 0x3c]
lea ecx, [esi + 2]
mov word [esp + esi + 0x10c], dx
mov edx, ebx
mov ebx, edi
mov edi, dword [esp + 0x1c]
cmp esi, 0x7fb
ja 0x412204
add edi, eax
mov esi, ecx
cmp edi, edx
jb 0x4121c0
lea eax, [esp + ecx]
add eax, 0x10c
jmp 0x412216
lea eax, [esp + esi]
add eax, 0x10c
mov word [eax], 0
lea eax, [esp + 0xa8]
push eax
lea eax, [esp + 0x24]
push eax
lea eax, [esp + 0x114]
push eax
call fcn.0040bff0
add esp, 0xc
movzx eax, al
mov esi, dword [esp + 0x24]
mov edi, dword [esp + 0x2c]
jmp dword [eax*4 + 0x4465a4]
xor eax, eax
mov ecx, dword [esp + 0x18]
test ecx, ecx
sete al
mov dword [esp + 0x100], eax
jmp dword [eax*4 + 0x4465ac]
xor ecx, 1
mov edx, ecx
mov ecx, dword [esp + 0x28]
xor ecx, 2
xor eax, eax
or ecx, edx
sete al
mov dword [esp + 0x1c], 0
xor ebx, ebx
jmp dword [eax*4 + 0x446644]
mov ebx, dword [esp + 0x20]
movzx ecx, byte [ebx]
xor edi, edi
test cl, cl
je 0x412597
lea eax, [ebx + 1]
xor edi, edi
jmp 0x4122af
add edi, 2
movzx ecx, byte [eax]
inc eax
test cl, cl
je 0x412597
test cl, cl
js 0x4122a0
mov ecx, edi
and ecx, 1
xor edi, 1
lea edi, [edi + ecx*2]
jmp 0x4122a3
mov word [esp + 0x3c], 0x1eef
mov dword [esp + 0x3e], 0
mov dword [esp + 8], 0
mov eax, dword [esp + 8]
cmp eax, 5
ja 0x412319
mov eax, dword [esp + 8]
mov ecx, dword [esp + 8]
movzx ecx, byte [esp + ecx + 0x3c]
add eax, 0x4ced58d6
xor eax, ecx
mov dword [esp + 0xb0], eax
mov eax, dword [esp + 0xb0]
add al, 0x37
mov ecx, dword [esp + 8]
mov byte [esp + ecx + 0x3c], al
inc dword [esp + 8]
mov eax, dword [esp + 8]
cmp eax, 6
jb case.default.0x412330
lea eax, [esp + 0x3c]
push eax
push ebx
call fcn.00403270
add esp, 8
mov edx, eax
xor eax, eax
test edx, edx
setne al
jmp dword [eax*4 + 0x4465b4]
mov dword [esp + 0x3c], 0xcb4d4241
mov dword [esp + 0x40], 0
mov dword [esp + 8], 0
mov eax, dword [esp + 8]
cmp eax, 7
ja 0x4123a4
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp + 8]
mov ecx, dword [esp + 8]
movzx ecx, byte [esp + ecx + 0x3c]
lea edx, [eax + ecx]
add eax, 0x69
and eax, ecx
add eax, eax
sub edx, eax
add edx, 0x449d6a69
mov dword [esp + 0xb0], edx
mov eax, dword [esp + 0xb0]
add al, 0xd8
mov ecx, dword [esp + 8]
mov byte [esp + ecx + 0x3c], al
inc dword [esp + 8]
mov eax, dword [esp + 8]
cmp eax, 8
jb 0x412360
mov eax, dword [esp + 0x3c]
push dword [eax + 0x14]
call fcn.0040a350
add esp, 4
call fcn.0040a360
and eax, 0xf
or eax, 0x10
xor edi, edi
xor ecx, ecx
mov dword [esp + 0x1c], eax
cmp edi, eax
setb cl
lea esi, [esp + 0xb0]
jmp dword [ecx*4 + 0x4465c4]
call fcn.0040a360
mov ecx, eax
mov edx, 0x38e38e39
imul edx
mov eax, edx
shr eax, 0x1f
sar edx, 3
add edx, eax
shl edx, 2
lea eax, [edx + edx*8]
neg eax
movsx eax, byte [ecx + eax + str.0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ]
mov word [esi], ax
add esi, 2
mov eax, edi
and eax, 1
xor edi, 1
lea edi, [edi + eax*2]
xor eax, eax
cmp edi, dword [esp + 0x1c]
setb al
jmp dword [eax*4 + 0x4465c4]
mov word [esi], 0
mov dword [esp + 8], 0xfa55f822
mov dword [esp + 0xc], 0xf640f446
mov dword [esp + 0x10], 0xf22cf047
mov dword [esp + 0x14], 0xeeedec57
mov dword [esp], 0
mov eax, dword [esp]
cmp eax, 0xf
ja 0x41249b
nop
nop
nop
mov eax, dword [esp]
mov ecx, dword [esp]
movzx ecx, byte [esp + ecx + 8]
lea edx, [eax + ecx]
add eax, 0x83
and eax, ecx
add eax, eax
sub edx, eax
add edx, 0xe7d6bb83
mov dword [esp + 0x3c], edx
mov eax, dword [esp + 0x3c]
add al, 0x84
mov ecx, dword [esp]
mov byte [esp + ecx + 8], al
inc dword [esp]
mov eax, dword [esp]
cmp eax, 0x10
jb 0x412460
movzx eax, word [esp + 8]
lea edi, [esp + 0x3c]
test ax, ax
je 0x4124d1
lea ecx, [esp + 0xa]
lea edi, [esp + 0x3c]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov word [edi], ax
add edi, 2
movzx eax, word [ecx]
add ecx, 2
test ax, ax
jne 0x4124c0
mov word [edi], 0
movzx eax, word [esp + 0xb0]
test ax, ax
je 0x412501
lea ecx, [esp + 0xb2]
nop
nop
nop
nop
nop
nop
mov word [edi], ax
add edi, 2
movzx eax, word [ecx]
add ecx, 2
test ax, ax
jne 0x4124f0
mov word [edi], 0
lea eax, [esp + 0x3c]
sub edi, eax
sar edi, 1
lea ecx, [esp + 0xf4]
push ecx
push 0
push 0
push edi
push eax
push 0
call dword [0x44ba94]
mov esi, dword [esp + 0xf4]
mov eax, esi
add eax, 4
lea eax, [esi + esi + 8]
jns 0x41253b
mov eax, 0xffffffff
push eax
call fcn.00409cc0
add esp, 4
mov ecx, eax
lea eax, [esp + 0xf4]
push eax
push esi
mov dword [esp + 0x20], ecx
push ecx
push edi
lea eax, [esp + 0x4c]
push eax
push 0
call dword [0x44ba94]
xor eax, eax
mov ecx, dword [esp + 0x28]
test ecx, ecx
sete al
jmp dword [eax*4 + 0x4465cc]
xor eax, eax
cmp ecx, 1
sete al
jmp dword [eax*4 + 0x4465d4]
xor eax, eax
cmp ecx, 2
sete al
jmp dword [eax*4 + 0x4465dc]
jmp case.0x412330.3
inc edi
lea eax, [edi + edi]
test edi, edi
jns 0x4125a4
mov eax, 0xffffffff
push eax
call fcn.00409cc0
add esp, 4
mov ecx, dword [esp + 0xa8]
mov dword [esp + 0x3c], 0
lea edx, [eax + edi*2]
add edx, 0xfffffffe
mov esi, eax
mov dword [esp + 0x18], eax
mov dword [esp + 0x1c], edx
cmp eax, edx
jae 0x41260f
mov esi, dword [esp + 0x18]
test ecx, ecx
jle 0x41260f
add ecx, ebx
mov esi, dword [esp + 0x18]
nop
nop
cmp byte [ebx], 0
je 0x41260f
lea eax, [esp + 0x3c]
push eax
push ecx
push ebx
mov edi, ecx
call fcn.0040d6a0
add esp, 0xc
movzx ecx, word [esp + 0x3c]
mov word [esi], cx
add esi, 2
cmp esi, dword [esp + 0x1c]
jae 0x41260f
add ebx, eax
cmp ebx, edi
mov ecx, edi
jb 0x4125e0
mov word [esi], 0
mov ecx, dword [esp + 0xa8]
lea eax, [ecx*2 + 0x32]
add ecx, 0x19
jns 0x41262c
mov eax, 0xffffffff
push eax
call fcn.00409cc0
add esp, 4
mov ebx, eax
mov dword [esp + 0x3c], 0xe577e776
mov dword [esp + 0x40], 0xe17de369
mov dword [esp + 0x44], 0x1d931f90
mov dword [esp + 0x48], 0x19851b82
mov dword [esp + 0x4c], 0x15801782
mov dword [esp + 0x50], 0x11451332
mov dword [esp + 0x54], 0xd840f93
mov dword [esp + 0x58], 0x9970b97
mov dword [esp + 0x5c], 0x59a0726
mov dword [esp + 0x60], 0x190038b
mov dword [esp + 0x64], 0x3db33f5f
mov dword [esp + 0x68], 0x39183bb5
mov word [esp + 0x6c], 0x3736
lea eax, [esp + 0x3e]
mov word [eax + 0x34], 0
mov dword [eax + 0x30], 0
mov dword [esp + 8], 0
mov eax, dword [esp + 8]
cmp eax, 0x37
mov esi, dword [esp + 0x24]
mov edi, dword [esp + 0x2c]
ja 0x412716
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp + 8]
mov ecx, dword [esp + 8]
movzx ecx, byte [esp + ecx + 0x3c]
lea edx, [eax + ecx]
add eax, 0xf8
and eax, ecx
add eax, eax
sub edx, eax
add edx, 0xf187f3f8
mov dword [esp + 0xb0], edx
mov eax, dword [esp + 0xb0]
add al, 0xe2
mov ecx, dword [esp + 8]
mov byte [esp + ecx + 0x3c], al
inc dword [esp + 8]
mov eax, dword [esp + 8]
cmp eax, 0x38
jb 0x4126d0
movzx ecx, word [esp + 0x3c]
mov eax, ebx
test cx, cx
je 0x412741
lea edx, [esp + 0x3e]
mov eax, ebx
nop
nop
nop
nop
nop
nop
nop
nop
mov word [eax], cx
add eax, 2
movzx ecx, word [edx]
add edx, 2
test cx, cx
jne 0x412730
mov word [eax], 0
mov edx, dword [esp + 0x18]
movzx ecx, word [edx]
test cx, cx
mov dword [esp + 0x1c], ebx
je 0x412771
add edx, 2
nop
nop
nop
nop
nop
nop
nop
mov word [eax], cx
add eax, 2
movzx ecx, word [edx]
add edx, 2
test cx, cx
jne 0x412760
mov word [eax], 0
xor ebx, ebx
jmp dword [0x44664c]
push dword [esp + 0x18]
call fcn.00409cd0
add esp, 4
xor ebx, ebx
xor eax, eax
mov ecx, dword [esp + 0x28]
test ecx, ecx
setle al
jmp dword [eax*4 + 0x446654]
xor eax, eax
test ecx, ecx
sete al
jmp dword [eax*4 + 0x44666c]
mov eax, dword [esp + 0x100]
jmp dword [eax*4 + 0x446674]
lea esi, [esp + 0x3c]
lea edi, [esp + 0xb0]
mov dword [esp + 0x7c], 0
mov dword [esp + 0x78], 0
mov dword [esp + 0x74], 0
mov dword [esp + 0x70], 0
mov dword [esp + 0x6c], 0
mov dword [esp + 0x68], 0
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 + 0x50], 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], 0x44
push 0xc9be8534
push dword [0x44ba8c]
call fcn.0043f320
add esp, 8
push edi
push esi
push 0
push 0
push 0
push 0
push 0
push 0
push dword [esp + 0x3c]
push ebx
call eax
xor ecx, ecx
test eax, eax
setne cl
jmp dword [ecx*4 + 0x44667c]
mov eax, dword [esp + 0xb0]
mov dword [esp + 8], 0xd3d0d1d6
mov dword [esp + 0xc], 0
mov dword [esp + 4], 0
mov ecx, dword [esp + 4]
cmp ecx, 7
ja 0x4128e3
nop
nop
nop
nop
nop
mov ecx, dword [esp + 4]
mov edx, dword [esp + 4]
movzx edx, byte [esp + edx + 8]
add ecx, 0xb3ba1ca3
xor ecx, edx
mov dword [esp], ecx
mov ecx, dword [esp]
add cl, 0x8a
mov edx, dword [esp + 4]
mov byte [esp + edx + 8], cl
inc dword [esp + 4]
mov ecx, dword [esp + 4]
cmp ecx, 8
jb 0x4128b0
mov ecx, dword [0x44ba98]
test ecx, ecx
je case.0x412de0.36
mov edx, dword [esp + 8]
xor esi, esi
mov edi, dword [0x44ba9c]
nop
nop
nop
cmp dword [edi + esi*8], 0x625b6034
je 0x41399b
inc esi
cmp ecx, esi
jne 0x412900
jmp case.0x412de0.36
mov ecx, edx
mov dword [esp + 0x9c], edx
mov eax, ecx
inc ecx
cmp byte [eax], 0
jne 0x412920
mov ecx, eax
not ecx
and ecx, edx
mov esi, edx
not esi
and esi, eax
sub esi, ecx
add edx, esi
xor edi, edi
mov dword [esp + 0xa4], esi
test esi, esi
mov dword [esp + 0x18], edx
jle 0x41298b
mov eax, dword [esp + 0x9c]
cmp byte [eax], 0
je 0x41298b
xor edi, edi
mov esi, dword [esp + 0x9c]
nop
nop
mov dword [esp + 0x3c], 0
lea eax, [esp + 0x3c]
push eax
push edx
push esi
call fcn.0040d6a0
mov edx, dword [esp + 0x24]
add esp, 0xc
inc edi
lea ecx, [esi + eax]
cmp ecx, edx
jae 0x41298b
cmp byte [esi + eax], 0
mov esi, ecx
jne 0x412960
mov eax, edi
inc eax
lea eax, [edi + edi + 2]
jns 0x412999
mov eax, 0xffffffff
push eax
call fcn.00409cc0
add esp, 4
mov dword [esp + 0x3c], 0
lea ecx, [eax + edi*2]
mov dword [esp + 0x1c], eax
mov dword [esp + 0x34], eax
mov dword [esp + 0x38], ecx
cmp eax, ecx
mov ecx, dword [esp + 0x18]
mov esi, dword [esp + 0x9c]
jae 0x412c4e
mov eax, dword [esp + 0x34]
mov dword [esp + 0x1c], eax
cmp dword [esp + 0xa4], 0
jle 0x412c4e
mov eax, dword [esp + 0x34]
mov dword [esp + 0x1c], eax
mov dword [esp + 0x30], edi
nop
nop
cmp byte [esi], 0
je 0x412c4e
lea eax, [esp + 0x3c]
push eax
push ecx
push esi
mov edi, ecx
call fcn.0040d6a0
add esp, 0xc
movzx ecx, word [esp + 0x3c]
mov edx, dword [esp + 0x1c]
mov word [edx], cx
add edx, 2
mov dword [esp + 0x1c], edx
cmp edx, dword [esp + 0x38]
jae 0x412c4a
add esi, eax
cmp esi, edi
mov ecx, edi
mov edi, dword [esp + 0x30]
jb 0x4129f0
jmp 0x412c4e
mov dword [esp + 8], 0xb416b2df
mov dword [esp + 0xc], 0xb812b60d
mov word [esp + 0x10], 0xbab9
lea eax, [esp + 0xa]
mov byte [eax + 0xc], 0
mov dword [eax + 8], 0
mov dword [esp + 4], 0
mov eax, dword [esp + 4]
cmp eax, 0xe
ja 0x412aa1
nop
mov eax, dword [esp + 4]
mov ecx, dword [esp + 4]
movzx ecx, byte [esp + ecx + 8]
add eax, 0x6c66791
xor eax, ecx
mov dword [esp], eax
mov eax, dword [esp]
add al, 0xe0
mov ecx, dword [esp + 4]
mov byte [esp + ecx + 8], al
inc dword [esp + 4]
mov eax, dword [esp + 4]
cmp eax, 0xf
jb 0x412a70
mov eax, dword [esp + 0x18]
add eax, 0xfffffffe
nop
nop
nop
nop
nop
nop
nop
nop
cmp word [eax + 2], 0
lea eax, [eax + 2]
jne 0x412ab0
movzx ecx, word [esp + 8]
test cx, cx
je 0x412c43
xor edx, edx
nop
nop
nop
nop
nop
nop
mov word [eax + edx], cx
movzx ecx, word [esp + edx + 0xa]
add edx, 2
test cx, cx
jne 0x412ad0
jmp 0x412c41
mov dword [esp + 8], 0x33ae35e6
mov dword [esp + 0xc], 0x2fba31a4
mov word [esp + 0x10], 0x2d2c
lea eax, [esp + 0xa]
mov word [eax + 0xc], 0
mov dword [eax + 8], 0
mov dword [esp + 4], 0
mov eax, dword [esp + 4]
cmp eax, 0xf
ja 0x412b51
nop
mov eax, dword [esp + 4]
mov ecx, dword [esp + 4]
movzx ecx, byte [esp + ecx + 8]
add eax, 0xf17f8d6a
xor eax, ecx
mov dword [esp], eax
mov eax, dword [esp]
add al, 0xa2
mov ecx, dword [esp + 4]
mov byte [esp + ecx + 8], al
inc dword [esp + 4]
mov eax, dword [esp + 4]
cmp eax, 0x10
jb 0x412b20
mov eax, dword [esp + 0x18]
add eax, 0xfffffffe
nop
nop
nop
nop
nop
nop
nop
nop
cmp word [eax + 2], 0
lea eax, [eax + 2]
jne 0x412b60
movzx ecx, word [esp + 8]
test cx, cx
je 0x412c43
xor edx, edx
nop
nop
nop
nop
nop
nop
mov word [eax + edx], cx
movzx ecx, word [esp + edx + 0xa]
add edx, 2
test cx, cx
jne 0x412b80
jmp 0x412c41
mov dword [esp + 8], 0x1a8b1847
mov dword [esp + 0xc], 0x1e4c1c88
mov word [esp + 0x10], 0x1011
lea eax, [esp + 0xa]
mov byte [eax + 0xa], 0
mov word [eax + 8], 0
mov dword [esp + 4], 0
mov eax, dword [esp + 4]
cmp eax, 0xc
ja 0x412c09
nop
nop
nop
nop
mov eax, dword [esp + 4]
mov ecx, dword [esp + 4]
movzx ecx, byte [esp + ecx + 8]
lea edx, [eax + ecx]
and eax, ecx
add eax, eax
sub edx, eax
add edx, 0xcd9ed700
mov dword [esp], edx
mov eax, dword [esp]
add al, 0xe7
mov ecx, dword [esp + 4]
mov byte [esp + ecx + 8], al
inc dword [esp + 4]
mov eax, dword [esp + 4]
cmp eax, 0xd
jb 0x412bd0
mov eax, dword [esp + 0x18]
add eax, 0xfffffffe
cmp word [eax + 2], 0
lea eax, [eax + 2]
jne 0x412c10
movzx ecx, word [esp + 8]
test cx, cx
je 0x412c43
xor edx, edx
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov word [eax + edx], cx
movzx ecx, word [esp + edx + 0xa]
add edx, 2
test cx, cx
jne 0x412c30
add eax, edx
mov word [eax], 0
jmp case.0x412330.3
mov edi, dword [esp + 0x30]
mov eax, dword [esp + 0x1c]
mov word [eax], 0
lea eax, [esp + 0x3c]
push eax
push 0
push 0
push edi
push dword [esp + 0x44]
push 0
call dword [0x44ba94]
mov esi, dword [esp + 0x3c]
lea eax, [esi + esi]
test esi, esi
jns 0x412c7d
mov eax, 0xffffffff
push eax
call fcn.00409cc0
add esp, 4
mov ecx, eax
lea eax, [esp + 0x3c]
push eax
push esi
mov dword [esp + 0x20], ecx
push ecx
push edi
mov esi, dword [esp + 0x44]
push esi
push 0
call dword [0x44ba94]
jmp dword [0x4465bc]
push esi
call fcn.00409cd0
add esp, 4
push 0x80
push 0x60
push 5
push 0
push 0x100002
lea eax, [esp + 0x18]
push eax
push dword [esp + 0x30]
call fcn.0043fb50
add esp, 0x1c
mov edi, eax
not eax
shr eax, 0x1f
jmp dword [eax*4 + 0x4465e4]
jmp case.default.0x412de0
push 0
push dword [esp + 0xac]
push dword [esp + 0x28]
push dword [esp + 0x10]
call fcn.00440300
add esp, 0x10
mov edi, eax
mov edx, dword [esp + 4]
mov dword [esp + 0x3c], 0xd3d0d1d6
mov dword [esp + 0x40], 0
mov dword [esp + 8], 0
mov eax, dword [esp + 8]
cmp eax, 7
ja 0x412d69
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp + 8]
mov ecx, dword [esp + 8]
movzx ecx, byte [esp + ecx + 0x3c]
add eax, 0xb3ba1ca3
xor eax, ecx
mov dword [esp + 0xb0], eax
mov eax, dword [esp + 0xb0]
add al, 0x8a
mov ecx, dword [esp + 8]
mov byte [esp + ecx + 0x3c], al
inc dword [esp + 8]
mov eax, dword [esp + 8]
cmp eax, 8
jb 0x412d30
mov ecx, dword [0x44ba98]
test ecx, ecx
je case.default.0x412de0
mov dword [esp + 0x1c], edx
mov edx, dword [esp + 0x3c]
xor esi, esi
mov eax, dword [0x44ba9c]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp dword [eax + esi*8], 0x625b6034
je 0x412da0
inc esi
cmp ecx, esi
jne 0x412d90
jmp case.default.0x412de0
mov eax, dword [eax + esi*8 + 4]
cmp eax, edx
je case.default.0x412de0
push dword [esp + 0x1c]
push 1
push dword [0x44baa0]
push eax
call fcn.0043dc50
add esp, 0x10
push dword [esp + 0x20]
call fcn.0043c040
add esp, 4
mov dword [esp + 0x20], 0
not edi
shr edi, 0x1f
mov dword [esp + 0x1c], 0
xor eax, eax
jmp dword [edi*4 + 0x4465ec]
mov esi, dword [esp + 0x24]
mov edi, dword [esp + 0x2c]
mov ebx, dword [esp + 0x18]
jmp dword [eax*4 + 0x44663c]
xor eax, eax
mov ecx, dword [esp + 0x28]
test ecx, ecx
setle al
jmp dword [eax*4 + 0x446654]
xor eax, eax
cmp ecx, 2
setl al
jmp dword [eax*4 + 0x44665c]
sete al
movzx eax, al
jmp dword [eax*4 + 0x446664]
mov dword [esp + 0x18], ebx
lea esi, [esp + 0x3c]
lea edi, [esp + 0xb0]
mov ebx, dword [esp + 0x1c]
jmp dword [0x44668c]
mov dword [esp + 0x7c], 0
mov dword [esp + 0x78], 0
mov dword [esp + 0x74], 0
mov dword [esp + 0x70], 0
mov dword [esp + 0x6c], 0
mov dword [esp + 0x68], 0
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 + 0x50], 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], 0x44
push 0xc9be8534
push dword [0x44ba8c]
call fcn.0043f320
add esp, 8
push edi
push esi
push 0
push 0
push 0x8000000
push 0
push 0
push 0
push ebx
push 0
call eax
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov dword [esp + 0x7c], 0
mov dword [esp + 0x78], 0
mov dword [esp + 0x74], 0
mov dword [esp + 0x70], 0
mov dword [esp + 0x6c], 0
mov dword [esp + 0x68], 0
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 + 0x50], 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], 0x44
push 0xc9be8534
push dword [0x44ba8c]
call fcn.0043f320
add esp, 8
push edi
push esi
push 0
push 0
push 0x8000000
push 0
push 0
push 0
push ebx
push 0
call eax
jmp dword [0x446694]
mov dword [esp + 0x1c], ebx
xor ecx, ecx
test eax, eax
setne cl
mov ebx, dword [esp + 0x18]
jmp dword [ecx*4 + 0x44669c]
mov eax, dword [esp + 0xb0]
mov dword [esp + 8], 0xd3d0d1d6
mov dword [esp + 0xc], 0
mov dword [esp + 4], 0
mov ecx, dword [esp + 4]
cmp ecx, 7
ja 0x413033
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov ecx, dword [esp + 4]
mov edx, dword [esp + 4]
movzx edx, byte [esp + edx + 8]
add ecx, 0xb3ba1ca3
xor ecx, edx
mov dword [esp], ecx
mov ecx, dword [esp]
add cl, 0x8a
mov edx, dword [esp + 4]
mov byte [esp + edx + 8], cl
inc dword [esp + 4]
mov ecx, dword [esp + 4]
cmp ecx, 8
jb 0x413000
mov ecx, dword [0x44ba98]
test ecx, ecx
je case.0x412de0.44
mov edx, dword [esp + 8]
xor esi, esi
mov edi, dword [0x44ba9c]
nop
nop
nop
cmp dword [edi + esi*8], 0x625b6034
je 0x4139bd
inc esi
cmp ecx, esi
jne 0x413050
jmp case.0x412de0.44
push 0x46483752
push dword [0x44ba8c]
call fcn.0043f320
add esp, 8
push 0
push 0
push dword [esp + 0x28]
push 0x41c630
push 0
push 0
call eax
xor ecx, ecx
test eax, eax
setne cl
jmp dword [ecx*4 + 0x446684]
mov eax, dword [esp + 0x20]
xor ecx, ecx
test eax, eax
setne cl
jmp dword [ecx*4 + 0x4466a4]
xor eax, eax
test ebx, ebx
sete al
jmp dword [eax*4 + 0x4466ac]
xor eax, eax
mov ecx, dword [esp + 0x28]
cmp ecx, 1
sete al
jmp dword [eax*4 + 0x4465f4]
mov eax, ecx
xor ecx, ecx
cmp eax, 2
sete cl
mov eax, 1
mov dword [esp + 0x1c], 0
jmp dword [ecx*4 + 0x446634]
mov ebx, dword [esp + 0x18]
mov ecx, ebx
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, ecx
add ecx, 2
cmp word [eax], 0
jne 0x413100
sub eax, ebx
lea ecx, [eax + 0x3c]
cmp eax, 0xffffffc3
jge 0x41311a
mov ecx, 0xffffffff
push ecx
call fcn.00409cc0
add esp, 4
mov dword [esp + 0x1c], eax
mov dword [esp + 0xb0], 0x848582a1
lea eax, [esp + 0xb2]
mov byte [eax + 4], 0
mov word [eax + 2], 0
mov dword [esp + 8], 0
mov eax, dword [esp + 8]
cmp eax, 6
ja 0x413199
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp + 8]
mov ecx, dword [esp + 8]
movzx ecx, byte [esp + ecx + 0xb0]
add eax, 0x8e163ad2
xor eax, ecx
mov dword [esp + 0x3c], eax
mov eax, dword [esp + 0x3c]
add al, 0xaf
mov ecx, dword [esp + 8]
mov byte [esp + ecx + 0xb0], al
inc dword [esp + 8]
mov eax, dword [esp + 8]
cmp eax, 7
jb 0x413160
mov dword [esp + 0x3c], 0x38883a95
mov dword [esp + 0x40], 0x3c9a3eb2
mov dword [esp + 0x44], 0x3084328b
mov dword [esp + 0x48], 0x34923689
mov dword [esp + 0x4c], 0x8b70a89
mov dword [esp + 0x50], 0xcf20ee9
mov dword [esp + 0x54], 0x8b02a8
mov dword [esp + 0x58], 0x4a006a4
mov dword [esp + 0x5c], 0x18bd1ae5
mov dword [esp + 0x60], 0x1caf1e90
mov dword [esp + 0x64], 0x10a412bc
mov dword [esp + 0x68], 0x14f716a6
mov dword [esp + 0x6c], 0xe851eae8
mov dword [esp + 0x70], 0xec09ee09
mov word [esp + 0x74], 0xe2ed
lea eax, [esp + 0x3e]
mov byte [eax + 0x3a], 0
mov word [eax + 0x38], 0
mov dword [esp], 0
mov eax, dword [esp]
cmp eax, 0x3c
mov esi, dword [esp + 0x24]
mov edi, dword [esp + 0x2c]
ja 0x41326e
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp]
mov ecx, dword [esp]
movzx ecx, byte [esp + ecx + 0x3c]
add eax, 0x556d1dcf
xor eax, ecx
mov dword [esp + 8], eax
mov eax, dword [esp + 8]
add al, 0x16
mov ecx, dword [esp]
mov byte [esp + ecx + 0x3c], al
inc dword [esp]
mov eax, dword [esp]
cmp eax, 0x3d
jb 0x413240
movzx ecx, word [esp + 0x3c]
mov eax, dword [esp + 0x1c]
test cx, cx
je 0x4132a1
lea edx, [esp + 0x3e]
mov eax, dword [esp + 0x1c]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov word [eax], cx
add eax, 2
movzx ecx, word [edx]
add edx, 2
test cx, cx
jne 0x413290
mov word [eax], 0
movzx ecx, word [ebx]
test cx, cx
je 0x4132d1
lea edx, [ebx + 2]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov word [eax], cx
add eax, 2
movzx ecx, word [edx]
add edx, 2
test cx, cx
jne 0x4132c0
mov word [eax], 0
movzx ecx, word [esp + 0xb0]
test cx, cx
je 0x413301
lea edx, [esp + 0xb2]
nop
nop
nop
nop
nop
nop
mov word [eax], cx
add eax, 2
movzx ecx, word [edx]
add edx, 2
test cx, cx
jne 0x4132f0
mov word [eax], 0
mov eax, 1
jmp dword [eax*4 + 0x44663c]
mov dword [esp + 0xb4], 0xffffffff
mov dword [esp + 0xb0], 0xb8797400
mov dword [esp + 0x3c], 0xd3d0d1d6
mov dword [esp + 0x40], 0
mov dword [esp], 0
mov ecx, dword [esp]
cmp ecx, 7
ja 0x413380
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov ecx, dword [esp]
mov edx, dword [esp]
movzx edx, byte [esp + edx + 0x3c]
add ecx, 0xb3ba1ca3
xor ecx, edx
mov dword [esp + 8], ecx
mov ecx, dword [esp + 8]
add cl, 0x8a
mov edx, dword [esp]
mov byte [esp + edx + 0x3c], cl
inc dword [esp]
mov ecx, dword [esp]
cmp ecx, 8
jb 0x413350
mov ecx, dword [0x44ba98]
test ecx, ecx
je 0x4138a6
mov edx, dword [esp + 0x3c]
xor esi, esi
mov edi, dword [0x44ba9c]
nop
nop
nop
nop
nop
nop
cmp dword [edi + esi*8], 0x7e28bda7
je 0x41387e
inc esi
cmp ecx, esi
jne 0x4133a0
jmp 0x4138a6
mov word [esp + 0x3c], 0xc15
mov byte [esp + 0x3e], 0x7d
lea eax, [esp + 0x3e]
mov byte [eax + 5], 0
mov dword [eax + 1], 0
mov dword [esp + 8], 0
mov eax, dword [esp + 8]
cmp eax, 7
ja 0x413429
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp + 8]
mov ecx, dword [esp + 8]
movzx ecx, byte [esp + ecx + 0x3c]
add eax, 0x3b3ed878
xor eax, ecx
mov dword [esp + 0xb0], eax
mov eax, dword [esp + 0xb0]
add al, 0xf9
mov ecx, dword [esp + 8]
mov byte [esp + ecx + 0x3c], al
inc dword [esp + 8]
mov eax, dword [esp + 8]
cmp eax, 8
jb 0x4133f0
lea esi, [esp + 0x3c]
push esi
push ebx
call fcn.00403270
add esp, 8
mov dword [esp + 0x28], eax
mov word [esp + 0x3c], 0x35db
mov byte [esp + 0x3e], 0xb8
lea eax, [esp + 0x3e]
mov byte [eax + 5], 0
mov dword [eax + 1], 0
mov dword [esp + 8], 0
mov eax, dword [esp + 8]
cmp eax, 7
ja 0x4134b4
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp + 8]
mov ecx, dword [esp + 8]
movzx ecx, byte [esp + ecx + 0x3c]
lea edx, [eax + ecx]
add eax, 0x34
and eax, ecx
add eax, eax
sub edx, eax
add edx, 0x717b3c34
mov dword [esp + 0xb0], edx
mov eax, dword [esp + 0xb0]
add al, 0x72
mov ecx, dword [esp + 8]
mov byte [esp + ecx + 0x3c], al
inc dword [esp + 8]
mov eax, dword [esp + 8]
cmp eax, 8
jb 0x413470
push esi
push ebx
call fcn.00403270
add esp, 8
mov ecx, eax
mov eax, 0xfffffffe
mov esi, dword [esp + 0x18]
nop
nop
nop
nop
nop
nop
nop
cmp word [esi + eax + 2], 0
lea eax, [eax + 2]
jne case.default.0x4134fb
mov dword [esp + 0x38], ecx
sar eax, 1
xor ecx, ecx
mov edx, dword [esp + 0x28]
test edx, edx
setne cl
mov edi, edx
not edi
mov dword [esp + 0x30], ecx
mov dword [esp + 0xf8], edi
jmp dword [ecx*4 + 0x4465fc]
xor ebx, ebx
jmp 0x413523
mov ecx, edx
nop
nop
nop
nop
nop
nop
nop
nop
mov ebx, ecx
inc ecx
cmp byte [ebx], 0
jne 0x413510
mov ecx, ebx
not ecx
and ecx, edx
and ebx, edi
sub ebx, ecx
inc ebx
mov ecx, dword [case.0x412de0.9]
nop
nop
nop
nop
nop
nop
nop
jmp ecx
xor ecx, ecx
mov edx, dword [esp + 0x38]
test edx, edx
setne cl
mov edi, edx
not edi
mov dword [esp + 0x34], ecx
jmp dword [ecx*4 + 0x446614]
xor edx, edx
jmp 0x413565
mov ecx, edx
inc edx
cmp byte [ecx], 0
jne case.0x412de0.11
mov edx, ecx
and edx, edi
not ecx
and ecx, dword [esp + 0x38]
sub edx, ecx
inc edx
mov ecx, ebx
mov dword [esp + 0x9c], ebx
add eax, ebx
lea ecx, [edx + eax]
add ecx, 0xa
mov dword [esp + 0xa4], edx
add eax, edx
lea eax, [eax*2 + 0x14]
test ecx, ecx
jns 0x41358f
mov eax, 0xffffffff
mov dword [esp + 0xfc], edi
push eax
call fcn.00409cc0
add esp, 4
mov ebx, eax
mov dword [esp + 0x3c], 0xce58cc59
mov dword [esp + 0x40], 0xb215b061
mov dword [esp + 0x44], 0xb619b41f
mov dword [esp + 0x48], 0xba6bb864
mov word [esp + 0x4c], 0xbcbb
lea eax, [esp + 0x3e]
mov word [eax + 0x14], 0
mov dword [eax + 0x10], 0
mov dword [esp + 8], 0
mov eax, dword [esp + 8]
cmp eax, 0x17
ja 0x413635
nop
nop
nop
nop
nop
nop
mov eax, dword [esp + 8]
mov ecx, dword [esp + 8]
movzx ecx, byte [esp + ecx + 0x3c]
lea edx, [eax + 0xbb]
and edx, ecx
add eax, ecx
add edx, edx
sub eax, edx
add eax, 0x82e635bb
mov dword [esp + 0xb0], eax
mov eax, dword [esp + 0xb0]
add al, 0x90
mov ecx, dword [esp + 8]
mov byte [esp + ecx + 0x3c], al
inc dword [esp + 8]
mov eax, dword [esp + 8]
cmp eax, 0x18
jb 0x4135f0
movzx eax, word [esp + 0x3c]
mov edi, ebx
test ax, ax
je 0x413661
lea ecx, [esp + 0x3e]
mov edi, ebx
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov word [edi], ax
add edi, 2
movzx eax, word [ecx]
add ecx, 2
test ax, ax
jne 0x413650
mov dword [edi], 0x220020
add edi, 4
movzx eax, word [esi]
test ax, ax
mov dword [esp + 0x1c], ebx
je 0x413691
lea ecx, [esi + 2]
nop
nop
nop
nop
nop
nop
nop
mov word [edi], ax
add edi, 2
movzx eax, word [ecx]
add ecx, 2
test ax, ax
jne 0x413680
lea ebx, [edi + 2]
mov word [edi], 0x22
jmp dword [0x44661c]
push esi
call fcn.00409cd0
add esp, 4
mov ecx, dword [esp + 0x38]
mov eax, dword [esp + 0x30]
jmp dword [eax*4 + 0x446624]
lea eax, [edi + 4]
mov dword [esp + 0x30], eax
mov edx, dword [esp + 0x28]
mov word [ebx], 0x2c
xor eax, eax
nop
nop
nop
nop
nop
nop
nop
cmp byte [edx + eax], 0
lea eax, [eax + 1]
jne 0x4136d0
mov dword [esp + 0x3c], 0
mov ebx, dword [esp + 0x30]
cmp dword [esp + 0x9c], 2
jl 0x41375f
lea ecx, [edx + eax]
dec ecx
add eax, edx
neg eax
and eax, edx
and ecx, dword [esp + 0xf8]
sub ecx, eax
mov ebx, dword [esp + 0x30]
test ecx, ecx
jle 0x41375f
mov esi, edx
add esi, ecx
mov eax, dword [esp + 0x9c]
lea eax, [edi + eax*2]
add eax, 2
mov dword [esp + 0x18], eax
mov ebx, dword [esp + 0x30]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp byte [edx], 0
je 0x41375f
lea eax, [esp + 0x3c]
push eax
push esi
push edx
mov edi, edx
call fcn.0040d6a0
add esp, 0xc
movzx ecx, word [esp + 0x3c]
mov word [ebx], cx
add ebx, 2
cmp ebx, dword [esp + 0x18]
jae 0x41375f
add edi, eax
cmp edi, esi
mov edx, edi
jb 0x413730
mov word [ebx], 0
mov eax, dword [esp + 0x30]
mov esi, eax
not esi
and esi, ebx
not ebx
and ebx, eax
sub esi, ebx
add esi, eax
mov eax, 1
mov dword [esp + 0x18], 0
mov dword [esp + 0x28], 0
mov ecx, dword [esp + 0x38]
mov edx, dword [esp + 0x34]
jmp dword [edx*4 + 0x44662c]
mov ecx, dword [esp + 0x38]
mov eax, dword [esp + 0x30]
jmp dword [eax*4 + 0x446624]
mov eax, 1
mov dword [esp + 0x18], 0
mov dword [esp + 0x28], 0
mov edx, dword [esp + 0x34]
mov esi, ebx
jmp dword [edx*4 + 0x44662c]
mov word [esi], 0x2c
xor eax, eax
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp byte [ecx + eax], 0
lea eax, [eax + 1]
jne 0x4137e0
lea edi, [esi + 2]
mov dword [esp + 0x3c], 0
mov ebx, dword [esp + 0xa4]
cmp ebx, 2
jl 0x41385b
mov edx, ecx
add ecx, eax
dec ecx
add eax, edx
neg eax
and eax, edx
and ecx, dword [esp + 0xfc]
sub ecx, eax
test ecx, ecx
jle 0x41385b
mov eax, esi
mov esi, edx
add esi, ecx
lea eax, [eax + ebx*2]
mov dword [esp + 0x18], eax
mov ebx, edx
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp byte [ebx], 0
je 0x41385b
lea eax, [esp + 0x3c]
push eax
push esi
push ebx
call fcn.0040d6a0
add esp, 0xc
movzx ecx, word [esp + 0x3c]
mov word [edi], cx
add edi, 2
cmp edi, dword [esp + 0x18]
jae 0x41385b
add ebx, eax
cmp ebx, esi
jb 0x413830
mov word [edi], 0
xor ebx, ebx
mov dword [esp + 0x28], 0
mov esi, dword [esp + 0x24]
mov edi, dword [esp + 0x2c]
mov eax, 1
jmp dword [eax*4 + 0x44663c]
mov ecx, dword [edi + esi*8 + 4]
cmp ecx, edx
je 0x4138a6
lea edx, [esp + 0xb0]
push edx
push 0
push eax
push 3
push dword [0x44baa0]
push ecx
mov esi, eax
call fcn.0043dc50
mov eax, esi
add esp, 0x18
mov dword [esp + 0x3c], 0xd3d0d1d6
mov dword [esp + 0x40], 0
mov dword [esp], 0
mov ecx, dword [esp]
cmp ecx, 7
ja 0x413900
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov ecx, dword [esp]
mov edx, dword [esp]
movzx edx, byte [esp + edx + 0x3c]
add ecx, 0xb3ba1ca3
xor ecx, edx
mov dword [esp + 8], ecx
mov ecx, dword [esp + 8]
add cl, 0x8a
mov edx, dword [esp]
mov byte [esp + edx + 0x3c], cl
inc dword [esp]
mov ecx, dword [esp]
cmp ecx, 8
jb 0x4138d0
mov ecx, dword [0x44ba98]
test ecx, ecx
je case.default.0x413994
mov edx, dword [esp + 0x3c]
xor esi, esi
mov edi, dword [0x44ba9c]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp dword [edi + esi*8], 0x625b6034
je 0x413930
inc esi
cmp ecx, esi
jne 0x413920
jmp case.default.0x413994
mov ecx, dword [edi + esi*8 + 4]
cmp ecx, edx
jne 0x41396f
mov eax, dword [esp + 0x20]
xor ecx, ecx
test eax, eax
setne cl
mov esi, dword [esp + 0x24]
mov edi, dword [esp + 0x2c]
jmp dword [ecx*4 + 0x4466a4]
push eax
call fcn.0043c040
add esp, 4
xor eax, eax
test ebx, ebx
sete al
jmp dword [eax*4 + 0x4466ac]
jmp dword [0x4466b8]
push eax
push 1
push dword [0x44baa0]
push ecx
call fcn.0043dc50
add esp, 0x10
mov eax, dword [esp + 0x20]
xor ecx, ecx
test eax, eax
setne cl
mov esi, dword [esp + 0x24]
mov edi, dword [esp + 0x2c]
jmp dword [ecx*4 + 0x4466a4]
mov ecx, dword [edi + esi*8 + 4]
cmp ecx, edx
jne 0x4139df
mov eax, dword [esp + 0x20]
xor ecx, ecx
test eax, eax
setne cl
mov esi, dword [esp + 0x24]
mov edi, dword [esp + 0x2c]
jmp dword [ecx*4 + 0x4466a4]
mov ecx, dword [edi + esi*8 + 4]
cmp ecx, edx
jne 0x413a0b
mov eax, dword [esp + 0x20]
xor ecx, ecx
test eax, eax
setne cl
mov esi, dword [esp + 0x24]
mov edi, dword [esp + 0x2c]
jmp dword [ecx*4 + 0x4466a4]
push eax
push 1
push dword [0x44baa0]
push ecx
call fcn.0043dc50
add esp, 0x10
mov eax, dword [esp + 0x20]
xor ecx, ecx
test eax, eax
setne cl
mov esi, dword [esp + 0x24]
mov edi, dword [esp + 0x2c]
jmp dword [ecx*4 + 0x4466a4]
push eax
push 1
push dword [0x44baa0]
push ecx
call fcn.0043dc50
add esp, 0x10
mov eax, dword [esp + 0x20]
xor ecx, ecx
test eax, eax
setne cl
mov esi, dword [esp + 0x24]
mov edi, dword [esp + 0x2c]
jmp dword [ecx*4 + 0x4466a4]
jmp dword [0x4466d0]
xor eax, eax
cmp dword [esp + 0x1c], 0
sete al
jmp dword [eax*4 + 0x4466d4]
push dword [esp + 0x1c]
call fcn.00409cd0
add esp, 4
inc edi
jmp 0x411cb1
inc edi
jmp 0x411cb1
push ebx
call fcn.00409cd0
add esp, 4
push ebx
call fcn.00409cd0
add esp, 4
jmp dword [0x4466bc]
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
add al, 0x41
add byte [edi - 0x4effbefc], bh
or al, 0x41
add byte [edi + 0x1004105], al
add byte [eax], al
add byte [ecx], al
add byte [eax], al
add byte [edi + 0x1c], ah
inc ecx
add byte [ecx], al
add byte [eax], al
add byte [esi + eax + 0x66a0041], ah
push es
inc ecx
add byte [edx + 6], ch
push es
inc ecx
add byte [edx + 6], ch
inc ecx
add byte [esi + eax + 0x67e0041], ah
inc ecx
add byte [eax - 0x5bffbefa], dl
push es
inc ecx
add byte [esi - 0x48ffbef9], ch
pop es
inc ecx
add bl, dh
pop es
inc ecx
add byte [esi], al
or byte [ecx], al
pop esp
or al, 65
add byte [edx + edx], ah
inc ecx
add byte [edx + 0xc], ah
inc ecx
add byte [esi + 0xc], dh
inc ecx
add byte [edx], bh
adc al, 0x41
add byte [ebx + 0x14], al
inc ecx
add byte [edx], bh
adc al, 0x41
add byte [ecx], ch
adc al, 0x41
add byte [ecx], bh
adc al, byte [ecx]
or dword [edx], edx
inc ecx
add byte [eax + 0x12], dl
inc ecx
add byte [eax + 0x12], cl
inc ecx
add byte [eax + 0x12], dl
inc ecx
add byte [ebx], dl
adc al, 0x41
add byte [ecx], bl
adc al, 0x41
add byte [ecx], cl
adc al, byte [ecx]
jg 0x44643a
inc ecx
add byte [ebp - 0x7affbef4], bl
or al, 0x41
add byte [esi - 0x62ffbef4], cl
or al, 0x41
add byte [esi + 0x1200410c], cl
inc ecx
add byte [ebp - 0x71ffbef4], bl
or al, 0x41
add byte [edx], dl
inc eax
add byte [edx + esi*8 + 0x40], al
add byte [edx], dl
inc eax
add byte [esi + edi*8 + 0x40], cl
add byte [edx - 2], ah
inc eax
add byte [eax + 0x16], al
inc ecx
add byte [ecx], bh
sbb al, byte [ecx]
mov ah, 0x19
inc ecx
add byte [ecx], bh
sbb al, byte [ecx]
mov eax, 0x100411a
add byte [eax], al
add byte [ecx], al
add byte [eax], al
add byte [edi + 0x1c], ah
inc ecx
add byte [ecx], al
add byte [eax], al
add byte [eax + 0x1b], dl
inc ecx
add byte [esi + 0x16], al
inc ecx
add byte [eax + 0x4116], bl
pop ss
inc ecx
add al, dl
push ss
inc ecx
add byte [eax], al
pop ss
inc ecx
add byte [eax], al
pop ss
inc ecx
add byte [eax], al
pop ss
inc ecx
add byte [esi], al
pop ss
inc ecx
add byte [eax], al
pop ss
inc ecx
add byte [eax + 0x1b], dl
inc ecx
add byte [esi], dh
or eax, dword [ecx]
sbb dl, byte [edi]
inc ecx
add byte [ebx - 0x34ffbeeb], bh
adc eax, 0x19910041
inc ecx
add byte [ecx], al
push ss
inc ecx
add byte [edx + 0x14], dl
inc ecx
add byte [ecx], al
push ss
inc ecx
add byte [edx + 0x14], dl
inc ecx
add byte [edx + 0x66004119], bl
adc al, 0x41
add byte [esp + edx + 0x41], ch
add byte [ebx + 0x23004119], ch
push ss
inc ecx
add byte [edx], ch
push ss
inc ecx
add byte [ebx], ah
push ss
inc ecx
add byte [edi], dh
push ss
inc ecx
add byte [edx + 0x400040f4], bl
push ss
inc ecx
add dh, al
test dword [eax], case.0x40f6e7.1
inc ecx
test dword [eax], case.0x40f6e7.3
xor bh, 0x40
add byte [ebp - 1073725193], ah
test dword [eax], case.0x40f6e7.7
sal bh, 0x40
add al, al
test dword [eax], case.0x40f6e7.0
sal bh, 0x40
add byte [esi + 1845510394], bl
clc
inc eax
add byte [eax - 8], dl
inc eax
add byte [esi + 0x20040fa], bl
clc
inc eax
add byte [ecx - 1], ch
inc eax
add cl, ah
cld
inc eax
add byte [eax + edi*8], bl
inc eax
add cl, ah
cld
inc eax
add byte [eax + edi*8], bl
inc eax
add byte [edi - 1], ch
inc eax
add byte [esi], ch
clc
inc eax
add byte [eax + edi*8], dh
inc eax
add byte [edi], bh
clc
inc eax
add byte [eax + 0x16], al
inc ecx
add byte [eax + 0x16], al
inc ecx
add byte [eax + 0x16], al
inc ecx
add byte [eax - 0x61ffbf12], al
sbb al, 0x41
add byte [edi - 0x78ffbec6], al
cmp al, byte [ecx]
retf 0x411c