Function at 0x412010
Capabilities:
Encrypt data using rc4 prga

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff8
sub esp, 0xcf8
mov ecx, dword [0x441af4]
mov dword [esp + 0xd8], 0xb3ffcb96
mov dword [esp + 0xdc], 0
mov dword [esp + 0xe0], 0
mov byte [esp + 0xe4], 0
mov dword [esp + 0x30], 0
mov eax, dword [esp + 0x30]
cmp eax, 0xc
ja 0x40fd54
nop
mov eax, dword [esp + 0x30]
mov edx, dword [esp + 0x30]
movzx edx, byte [esp + edx + 0xd8]
lea esi, [eax + 0x27e77a38]
lea edi, [eax + 0x38]
or edi, esi
and edi, edx
not edx
or edx, esi
add edi, edx
neg edi
add eax, edi
add eax, 0x27e77a37
mov dword [esp + 0x2e8], eax
mov eax, dword [esp + 0x2e8]
add al, 0x78
mov edx, dword [esp + 0x30]
mov byte [esp + edx + 0xd8], al
inc dword [esp + 0x30]
mov eax, dword [esp + 0x30]
cmp eax, 0xd
jb 0x40fd00
mov edx, dword [str.xMnLq7__ult]
mov dword [esp + 0x2e8], 0x7ea65251
mov dword [esp + 0x2ec], 0xae5550a6
mov dword [esp + 0x2f0], 0xb6454cbe
mov dword [esp + 0x2f4], 0x4ebdbe49
mov dword [esp + 0x2f8], 0xb5044447
mov dword [esp + 0x2fc], 0x736bb741
mov dword [esp + 0x300], 0xc77c0906
mov dword [esp + 0x304], 0x5f1339c5
mov dword [esp + 0x308], 0
mov dword [esp + 0x268], 0
mov eax, dword [esp + 0x268]
cmp eax, 0x23
ja 0x40fe38
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp + 0x268]
mov esi, dword [esp + 0x268]
movzx esi, byte [esp + esi + 0x2e8]
lea edi, [eax + 0xa8]
and edi, esi
mov ebx, 0x431e157
sub ebx, eax
or ebx, esi
not ebx
add ebx, esi
sub ebx, edi
mov dword [esp + 0x30], ebx
mov eax, dword [esp + 0x30]
add al, 0x68
mov esi, dword [esp + 0x268]
mov byte [esp + esi + 0x2e8], al
inc dword [esp + 0x268]
mov eax, dword [esp + 0x268]
cmp eax, 0x24
jb 0x40fde0
movzx ebx, byte [esp + 0x2e8]
lea eax, [esp + 0x268]
test bl, bl
je 0x40fe6b
lea esi, [esp + 0x2e9]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov byte [eax], bl
inc eax
movzx ebx, byte [esi]
inc esi
test bl, bl
jne 0x40fe60
mov byte [eax], 0
movzx ebx, byte [edx]
test bl, bl
je 0x40fe8b
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 0x40fe80
mov byte [eax], 0
movzx edx, byte [esp + 0xd8]
test dl, dl
je 0x40febb
lea esi, [esp + 0xd9]
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 0x40feb0
mov byte [eax], 0
movzx edx, byte [ecx]
test dl, dl
je 0x40fedb
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 0x40fed0
mov byte [eax], 0
lea ecx, [esp + 0x268]
mov dword [esp + 0x2e8], 0xc375c58b
mov dword [esp + 0x2ec], 0xcf7cc170
mov dword [esp + 0x2f0], 0xcb7ecd65
mov dword [esp + 0x2f4], 0xd7bbc976
mov dword [esp + 0x2f8], 0xd353d58a
mov dword [esp + 0x2fc], 0xdf7bd162
mov dword [esp + 0x300], 0xdbbcdd98
mov dword [esp + 0x304], 0x2768d975
mov dword [esp + 0x308], 0x23902596
mov dword [esp + 0x30c], 0x2f8d2195
mov dword [esp + 0x310], 0x2b902d81
mov dword [esp + 0x314], 0x3799299d
mov dword [esp + 0x318], 0x33453584
mov dword [esp + 0x31c], 0x3f43318a
mov dword [esp + 0x320], 0x3b853d87
mov dword [esp + 0x324], 0x74b3983
mov dword [esp + 0x328], 0x3b505ac
mov dword [esp + 0x32c], 0xfb301bc
mov dword [esp + 0x330], 0xbb70d7d
mov dword [esp + 0x334], 0x17bc09b4
mov dword [esp + 0x338], 0x13a615bd
mov dword [esp + 0x33c], 0x1fa111bf
mov dword [esp + 0x340], 0x1bb71db2
mov dword [esp + 0x344], 0x670b19b6
mov dword [esp + 0x348], 0x63646570
mov byte [esp + 0x350], 0
mov dword [esp + 0x34c], 0
mov dword [esp + 0x30], 0
mov edx, dword [esp + 0x30]
cmp edx, 0x68
ja 0x41007e
nop
nop
nop
nop
mov edx, dword [esp + 0x30]
mov esi, dword [esp + 0x30]
movzx edi, byte [esp + esi + 0x2e8]
lea esi, [edx - 0x8656a1f]
mov ebx, esi
and ebx, edi
xor esi, edi
lea esi, [esi + ebx*2]
add edx, 0xe1
and edx, edi
add edx, ebx
mov edi, esi
not edi
and edi, edx
not edx
and edx, esi
sub edx, edi
mov dword [esp + 0xd8], edx
mov edx, dword [esp + 0xd8]
add dl, 0xd9
mov esi, dword [esp + 0x30]
mov byte [esp + esi + 0x2e8], dl
inc dword [esp + 0x30]
mov edx, dword [esp + 0x30]
cmp edx, 0x69
jb 0x410020
sub eax, ecx
mov dword [esp + 0xd8], 0x73d36d1f
mov dword [esp + 0xdc], 0x77df71c0
mov word [esp + 0xe0], 0x7574
mov dword [esp + 0xe2], 0
mov word [esp + 0xe6], 0
mov dword [esp + 0x200], 0
mov edx, dword [esp + 0x200]
cmp edx, 0xf
ja 0x410126
nop
nop
nop
nop
mov edx, dword [esp + 0x200]
mov esi, dword [esp + 0x200]
movzx esi, byte [esp + esi + 0xd8]
lea edi, [edx + 0x713c27ce]
and edi, esi
add edx, esi
add edx, 0x713c27ce
add edi, edi
sub edx, edi
mov dword [esp + 0x30], edx
mov edx, dword [esp + 0x30]
add dl, 0x5e
mov esi, dword [esp + 0x200]
mov byte [esp + esi + 0xd8], dl
inc dword [esp + 0x200]
mov edx, dword [esp + 0x200]
cmp edx, 0x10
jb 0x4100d0
lea edx, [esp + 0xd4]
lea esi, [esp + 0xc8]
lea ebx, [esp + 0x2e8]
lea edi, [esp + 0xd8]
push edx
push esi
push eax
push ecx
push ebx
push edi
push 0x4477c0
call fcn.0040c960
add esp, 0x1c
movzx eax, al
jmp dword [eax*4 + 0x4426ec]
xor esi, esi
xor ebx, ebx
test esi, esi
sete bl
jmp dword [ebx*4 + 0x4426f4]
push 0x104
push ebx
call dword [sym.imp.KERNEL32.dll_GetSystemDirectoryW]
mov ecx, dword [esp + 0xd4]
mov ebx, dword [esp + 0xc8]
lea eax, [ecx + ecx*2]
shr eax, 2
movzx edx, byte [ecx + ebx - 1]
cmp edx, 0x3d
je 0x41019e
cmp edx, 0x2e
jne 0x4101a5
mov edx, eax
not edx
lea eax, [edx + eax*2]
movzx ecx, byte [ecx + ebx - 2]
cmp ecx, 0x3d
je 0x4101b4
cmp ecx, 0x2e
jne 0x4101b5
dec eax
push eax
call fcn.004093a0
add esp, 4
mov esi, eax
push eax
push ebx
call fcn.004342d0
add esp, 8
push dword [esp + 0xc8]
call fcn.00437f10
add esp, 4
xor ebx, ebx
test esi, esi
sete bl
jmp dword [ebx*4 + 0x4426f4]
jmp dword [0x442700]
jmp dword [ebx*4 + 0x44270c]
push esi
mov esi, eax
call fcn.004093b0
mov eax, esi
add esp, 4
mov dword [esp + 0xc0], eax
push eax
call fcn.00402960
add esp, 4
mov dword [esp + 0x28], eax
mov word [esp + 0x2e8], 0x1620
mov byte [esp + 0x2ea], 0xb8
mov dword [esp + 0x2eb], 0
mov dword [esp + 0x2ef], 0
mov word [esp + 0x2f3], 0
mov dword [esp + 0x30], 0
mov eax, dword [esp + 0x30]
cmp eax, 0xc
ja 0x4102b0
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp + 0x30]
mov ecx, dword [esp + 0x30]
movzx ecx, byte [esp + ecx + 0x2e8]
add eax, 0x14312147
mov edx, eax
and edx, ecx
mov esi, eax
xor esi, ecx
or eax, ecx
xor eax, esi
lea ecx, [esi + edx*2]
add eax, edx
sub ecx, eax
mov dword [esp + 0xd8], ecx
mov eax, dword [esp + 0xd8]
add al, 0xf
mov ecx, dword [esp + 0x30]
mov byte [esp + ecx + 0x2e8], al
inc dword [esp + 0x30]
mov eax, dword [esp + 0x30]
cmp eax, 0xd
jb 0x410260
lea ebx, [esp + 0x2e8]
push ebx
push dword [esp + 0x2c]
call fcn.00402ac0
add esp, 8
xor ecx, ecx
test eax, eax
setg cl
jmp dword [ecx*4 + 0x442714]
xor eax, eax
movzx eax, al
jmp dword [eax*4 + 0x44271c]
push dword [esp + 0xc0]
call fcn.00402f30
add esp, 4
xor eax, eax
jmp 0x411126
mov dword [esp + 0x2e8], 0x63a2adac
mov dword [esp + 0x2ec], 0
mov dword [esp + 0x2f0], 0
mov byte [esp + 0x2f4], 0
mov dword [esp + 0x30], 0
mov eax, dword [esp + 0x30]
cmp eax, 0xc
ja 0x41037a
nop
nop
mov eax, dword [esp + 0x30]
mov ecx, dword [esp + 0x30]
movzx ecx, byte [esp + ecx + 0x2e8]
lea edx, [eax + ecx]
add eax, 0x66
and eax, ecx
add eax, eax
sub edx, eax
add edx, 0xaa947d66
mov dword [esp + 0xd8], edx
mov eax, dword [esp + 0xd8]
add al, 0x36
mov ecx, dword [esp + 0x30]
mov byte [esp + ecx + 0x2e8], al
inc dword [esp + 0x30]
mov eax, dword [esp + 0x30]
cmp eax, 0xd
jb 0x410330
push dword [esp + 0x2e8]
call fcn.004338e0
add esp, 4
movzx eax, al
jmp dword [eax*4 + 0x44271c]
mov word [esp + 0x2e8], 0xf1cd
mov byte [esp + 0x2ea], 0x6a
mov dword [esp + 0x2eb], 0
mov dword [esp + 0x2ef], 0
mov dword [esp + 0x2f3], 0
mov dword [esp + 0x30], 0
mov eax, dword [esp + 0x30]
cmp eax, 0xe
ja 0x41042c
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp + 0x30]
mov ecx, dword [esp + 0x30]
movzx ecx, byte [esp + ecx + 0x2e8]
lea edx, [eax + ecx]
add edx, 0x2f56d0d2
add eax, 0x2f56d0d2
and eax, ecx
add eax, eax
sub edx, eax
mov dword [esp + 0xd8], edx
mov eax, dword [esp + 0xd8]
add al, 0x42
mov ecx, dword [esp + 0x30]
mov byte [esp + ecx + 0x2e8], al
inc dword [esp + 0x30]
mov eax, dword [esp + 0x30]
cmp eax, 0xf
jb 0x4103e0
push ebx
push dword [esp + 0x2c]
call fcn.00402ac0
add esp, 8
mov dword [esp + 0xbc], eax
mov word [esp + 0x2e8], 0x81b
mov byte [esp + 0x2ea], 0x72
mov dword [esp + 0x2ef], 0
mov dword [esp + 0x2eb], 0
mov dword [esp + 0x30], 0
mov eax, dword [esp + 0x30]
cmp eax, 0xa
ja 0x4104dc
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp + 0x30]
mov ecx, dword [esp + 0x30]
movzx ecx, byte [esp + ecx + 0x2e8]
lea edx, [eax + 0x4983226e]
and edx, ecx
lea esi, [eax + ecx]
add esi, 0x4983226e
add eax, 0x6e
and eax, ecx
add eax, edx
mov ecx, eax
xor ecx, esi
not eax
and eax, esi
add eax, eax
sub eax, ecx
mov dword [esp + 0xd8], eax
mov eax, dword [esp + 0xd8]
add al, 0xfe
mov ecx, dword [esp + 0x30]
mov byte [esp + ecx + 0x2e8], al
inc dword [esp + 0x30]
mov eax, dword [esp + 0x30]
cmp eax, 0xb
jb 0x410480
push ebx
mov esi, dword [esp + 0x2c]
push esi
call fcn.00402ac0
add esp, 8
xor ecx, ecx
test eax, eax
setg cl
mov dword [esp + 0xcc], ecx
push esi
call fcn.00411340
add esp, 4
push dword [esp + 0xc0]
call fcn.00402f30
add esp, 4
lea ebx, [esp + 0x200]
mov ecx, ebx
push 1
call fcn.00409aa0
push ebx
call fcn.0041ec40
add esp, 4
mov ecx, ebx
call fcn.0040a4f0
lea ebx, [esp + 0xc88]
mov ecx, ebx
push 3
call fcn.00409aa0
push ebx
call fcn.0041f4a0
add esp, 4
mov ecx, ebx
call fcn.0040a4f0
lea ebx, [esp + 0xc20]
mov ecx, ebx
push 1
call fcn.00409aa0
push ebx
call fcn.0041f6f0
add esp, 4
mov ecx, ebx
call fcn.0040a4f0
lea ebx, [esp + 0xbb8]
mov ecx, ebx
push 1
call fcn.00409aa0
push ebx
call fcn.00421900
add esp, 4
push ebx
call fcn.00422290
add esp, 4
push ebx
call fcn.00422740
add esp, 4
mov ecx, ebx
call fcn.0040a4f0
lea ebx, [esp + 0xb50]
mov ecx, ebx
push 1
call fcn.00409aa0
push ebx
call fcn.00424720
add esp, 4
mov ecx, ebx
call fcn.0040a4f0
lea ebx, [esp + 0xae8]
mov ecx, ebx
push 1
call fcn.00409aa0
push ebx
call fcn.00426f80
add esp, 4
push ebx
call fcn.0042ed00
add esp, 4
mov eax, dword [esp + 0xcc]
jmp dword [eax*4 + 0x442724]
push ebx
call fcn.0042eef0
add esp, 4
lea ecx, [esp + 0xae8]
call fcn.0040a4f0
lea eax, [esp + 0x1df]
push eax
call fcn.00433cd0
add esp, 4
mov dword [esp + 0x30], 0xdac9c506
mov word [esp + 0x34], 0xcd4
mov byte [esp + 0x36], 0x76
mov dword [esp + 0x3b], 0
mov dword [esp + 0x37], 0
mov dword [esp + 0xd8], 0
mov eax, dword [esp + 0xd8]
cmp eax, 0xe
ja 0x4106bb
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp + 0xd8]
mov ecx, dword [esp + 0xd8]
movzx ecx, byte [esp + ecx + 0x30]
mov edx, eax
and edx, 0x39c9ad4e
xor eax, 0x39c9ad4e
lea eax, [eax + edx*2]
mov edx, eax
and edx, ecx
add eax, ecx
add edx, edx
sub eax, edx
mov dword [esp + 0x2e8], eax
mov eax, dword [esp + 0x2e8]
add al, 0xde
mov ecx, dword [esp + 0xd8]
mov byte [esp + ecx + 0x30], al
inc dword [esp + 0xd8]
mov eax, dword [esp + 0xd8]
cmp eax, 0xf
jb 0x410660
mov eax, dword [0x441af4]
mov dword [esp + 8], 0xebd7abec
mov dword [esp + 0xc], 0
mov dword [esp + 0x10], 0
mov dword [esp + 0x13], 0
mov dword [esp + 0xd8], 0
mov ecx, dword [esp + 0xd8]
cmp ecx, 0xe
ja 0x410756
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov ecx, dword [esp + 0xd8]
mov edx, dword [esp + 0xd8]
movzx edx, byte [esp + edx + 8]
lea ebx, [ecx + 0xfd]
and ebx, edx
add ecx, edx
add ebx, ebx
sub ecx, ebx
add ecx, 0xe8001cfd
mov dword [esp + 0x2e8], ecx
mov ecx, dword [esp + 0x2e8]
add cl, 0x15
mov edx, dword [esp + 0xd8]
mov byte [esp + edx + 8], cl
inc dword [esp + 0xd8]
mov ecx, dword [esp + 0xd8]
cmp ecx, 0xf
jb 0x410700
mov ecx, dword [str.xMnLq7__ult]
mov dword [esp + 0x2e8], 0xeeb6828d
mov dword [esp + 0x2ec], 0xb48a8483
mov dword [esp + 0x2f0], 0x8c8db881
mov dword [esp + 0x2f4], 0xf5b3bab1
mov dword [esp + 0x2f8], 0xde84b086
mov dword [esp + 0x2fc], 0xedd6cbc4
mov dword [esp + 0x300], 0xc6aeac90
mov byte [esp + 0x304], 0
mov dword [esp + 0x309], 0
mov dword [esp + 0x305], 0
mov dword [esp + 0x18], 0
mov edx, dword [esp + 0x18]
cmp edx, 0x24
ja 0x410828
nop
nop
nop
nop
nop
nop
nop
nop
mov edx, dword [esp + 0x18]
mov ebx, dword [esp + 0x18]
movzx ebx, byte [esp + ebx + 0x2e8]
lea esi, [edx + 0x42da555a]
add edx, 0x5a
and edx, ebx
or esi, ebx
sub esi, edx
mov dword [esp + 0xd8], esi
mov edx, dword [esp + 0xd8]
add dl, 0x8a
mov esi, dword [esp + 0x18]
mov byte [esp + esi + 0x2e8], dl
inc dword [esp + 0x18]
mov edx, dword [esp + 0x18]
cmp edx, 0x25
jb 0x4107e0
movzx edx, byte [esp + 0x2e8]
test dl, dl
je 0x41085b
lea edi, [esp + 0xd8]
lea ebx, [esp + 0x2e9]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov byte [edi], dl
inc edi
movzx edx, byte [ebx]
inc ebx
test dl, dl
jne 0x410850
mov byte [edi], 0
movzx edx, byte [ecx]
test dl, dl
je 0x41087b
inc ecx
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov byte [edi], dl
inc edi
movzx edx, byte [ecx]
inc ecx
test dl, dl
jne 0x410870
mov byte [edi], 0
movzx ecx, byte [esp + 8]
test cl, cl
je 0x41089b
lea edx, [esp + 9]
nop
nop
nop
nop
nop
mov byte [edi], cl
inc edi
movzx ecx, byte [edx]
inc edx
test cl, cl
jne 0x410890
mov byte [edi], 0
movzx ecx, byte [eax]
test cl, cl
je 0x4108bb
inc eax
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov byte [edi], cl
inc edi
movzx ecx, byte [eax]
inc eax
test cl, cl
jne 0x4108b0
mov byte [edi], 0
movzx eax, byte [esp + 0x30]
test al, al
je 0x4108db
lea ecx, [esp + 0x31]
nop
nop
nop
nop
nop
mov byte [edi], al
inc edi
movzx eax, byte [ecx]
inc ecx
test al, al
jne 0x4108d0
mov byte [edi], 0
movzx eax, byte [esp + 0x1df]
test al, al
je 0x41090b
lea ecx, [esp + 0x1e0]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov byte [edi], al
inc edi
movzx eax, byte [ecx]
inc ecx
test al, al
jne 0x410900
mov byte [edi], 0
lea eax, [esp + 0xd8]
mov edx, edi
xor edx, eax
mov ecx, eax
not ecx
and ecx, edi
add ecx, ecx
mov dword [esp + 0x2e8], 0x33cd31f3
mov dword [esp + 0x2ec], 0x37c235ca
mov dword [esp + 0x2f0], 0xcb34c92d
mov dword [esp + 0x2f4], 0xcff3cd38
mov dword [esp + 0x2f8], 0xc34bc114
mov dword [esp + 0x2fc], 0xc723c534
mov dword [esp + 0x300], 0xdbfad912
mov dword [esp + 0x304], 0xdf2edd3d
mov dword [esp + 0x308], 0xd32ed120
mov dword [esp + 0x30c], 0xd735d52d
mov dword [esp + 0x310], 0xeb1ee909
mov dword [esp + 0x314], 0xef11ed15
mov dword [esp + 0x318], 0xe3dde11e
mov dword [esp + 0x31c], 0xe7dbe56c
mov dword [esp + 0x320], 0xfb0df90f
mov dword [esp + 0x324], 0xffc3fd0b
mov dword [esp + 0x328], 0xf30df116
mov dword [esp + 0x32c], 0xf70bf506
mov dword [esp + 0x330], 0x8b7f89b5
mov dword [esp + 0x334], 0x8f728d7e
mov dword [esp + 0x338], 0x837c8165
mov dword [esp + 0x33c], 0x87798567
mov dword [esp + 0x340], 0x9b7f997c
mov dword [esp + 0x344], 0x9f839d78
mov dword [esp + 0x348], 0x9392918a
mov dword [esp + 0x354], 0
mov dword [esp + 0x350], 0
mov dword [esp + 0x34c], 0
mov dword [esp + 8], 0
mov esi, dword [esp + 8]
cmp esi, 0x6f
ja 0x410ac7
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov esi, dword [esp + 8]
mov edi, dword [esp + 8]
movzx edi, byte [esp + edi + 0x2e8]
lea ebx, [esi + edi]
add ebx, 0x8aae8bf8
add esi, 0x8aae8bf8
and esi, edi
add esi, esi
sub ebx, esi
mov dword [esp + 0x30], ebx
mov ebx, dword [esp + 0x30]
add bl, 0x38
mov esi, dword [esp + 8]
mov byte [esp + esi + 0x2e8], bl
mov esi, dword [esp + 8]
mov edi, esi
xor edi, 1
and esi, 1
lea esi, [edi + esi*2]
mov dword [esp + 8], esi
mov esi, dword [esp + 8]
cmp esi, 0x70
jb 0x410a70
sub ecx, edx
mov dword [esp + 0x30], 0xf313cd1f
mov dword [esp + 0x34], 0xf71ff160
mov word [esp + 0x38], 0xf5f4
mov dword [esp + 0x3a], 0
mov dword [esp + 0x3e], 0
mov byte [esp + 0x42], 0
mov dword [esp + 0x18], 0
mov edx, dword [esp + 0x18]
cmp edx, 0x12
ja 0x410b5a
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov esi, dword [esp + 0x18]
mov edx, dword [esp + 0x18]
movzx edi, byte [esp + edx + 0x30]
add esi, 0x6f94039e
mov edx, esi
and edx, edi
xor esi, edi
lea esi, [esi + edx*2]
add edx, edx
mov edi, esi
xor edi, edx
not edx
and edx, esi
add edx, edx
sub edx, edi
mov dword [esp + 8], edx
mov edx, dword [esp + 8]
add dl, 0xae
mov esi, dword [esp + 0x18]
mov byte [esp + esi + 0x30], dl
inc dword [esp + 0x18]
mov edx, dword [esp + 0x18]
cmp edx, 0x13
jb 0x410b10
lea edx, [esp + 0xd0]
lea esi, [esp + 0xc4]
lea edi, [esp + 0x30]
push edx
push esi
push ecx
push eax
lea eax, [esp + 0x2f8]
push eax
push edi
push 0x4477c0
call fcn.0040c960
add esp, 0x1c
movzx eax, al
jmp dword [eax*4 + 0x44272c]
xor ebx, ebx
xor eax, eax
test ebx, ebx
setne al
jmp dword [eax*4 + 0x442734]
mov ecx, dword [esp + 0xd0]
mov edi, dword [esp + 0xc4]
lea eax, [ecx + ecx*2]
shr eax, 2
movzx edx, byte [ecx + edi - 1]
cmp edx, 0x3d
je 0x410bc3
cmp edx, 0x2e
jne 0x410bca
mov edx, eax
not edx
lea eax, [edx + eax*2]
movzx ecx, byte [ecx + edi - 2]
cmp ecx, 0x3d
je 0x410bd9
cmp ecx, 0x2e
jne 0x410bda
dec eax
push eax
call fcn.004093a0
add esp, 4
mov ebx, eax
push eax
push edi
call fcn.004342d0
add esp, 8
push dword [esp + 0xc4]
call fcn.00437f10
add esp, 4
xor eax, eax
test ebx, ebx
setne al
jmp dword [eax*4 + 0x442734]
push ebx
call fcn.00401ee0
add esp, 4
mov edi, eax
xor eax, eax
test ebx, ebx
sete al
jmp dword [eax*4 + 0x44273c]
push ebx
call fcn.004093b0
add esp, 4
push edi
call fcn.00414650
add esp, 4
push edi
call fcn.00402f30
add esp, 4
mov dword [esp + 0x2e8], 0xb32d2b2a
mov dword [esp + 0x2ec], 0
mov byte [esp + 0x2f0], 0
mov dword [esp + 8], 0
mov eax, dword [esp + 8]
cmp eax, 8
ja 0x410cb6
nop
mov eax, dword [esp + 8]
mov ecx, dword [esp + 8]
movzx ecx, byte [esp + ecx + 0x2e8]
lea edx, [eax + ecx]
add edx, 0x2f3544e9
add eax, 0x2f3544e9
and eax, ecx
add eax, eax
sub edx, eax
mov dword [esp + 0x30], edx
mov eax, dword [esp + 0x30]
add al, 0xa1
mov ecx, dword [esp + 8]
mov byte [esp + ecx + 0x2e8], al
inc dword [esp + 8]
mov eax, dword [esp + 8]
cmp eax, 9
jb 0x410c70
lea edi, [esp + 0x2e8]
push edi
push dword [esp + 0x2c]
call fcn.00402ac0
add esp, 8
xor ecx, ecx
test eax, eax
setg cl
jmp dword [ecx*4 + 0x442744]
xor eax, eax
cmp dword [esp + 0xbc], 0
setg al
jmp dword [eax*4 + 0x44274c]
lea ecx, [esp + 0x2e8]
push 1
call fcn.00409aa0
mov eax, 0xffffffff
nop
cmp byte [eax + 0x447ac9], 0
lea eax, [eax + 1]
jne 0x410d00
mov dword [esp + 0x30], 0xacc2beda
mov dword [esp + 0x34], 0x57500bbb
mov word [esp + 0x38], 0xd952
mov dword [esp + 0x3a], 0
mov dword [esp + 0x3e], 0
mov byte [esp + 0x42], 0
mov dword [esp + 0x18], 0
mov ecx, dword [esp + 0x18]
cmp ecx, 0x12
ja 0x410dab
nop
nop
nop
nop
nop
nop
nop
mov esi, dword [esp + 0x18]
mov ecx, dword [esp + 0x18]
movzx edi, byte [esp + ecx + 0x30]
lea ecx, [esi - 0x2724bd05]
mov edx, ecx
and edx, edi
xor ecx, edi
mov ebx, 0x2724bd04
sub ebx, esi
or ebx, edi
add ebx, esi
add ebx, edx
sub ecx, ebx
lea ecx, [ecx + edx*2]
add ecx, 0x2724bd04
mov dword [esp + 8], ecx
mov ecx, dword [esp + 8]
mov edx, ecx
xor edx, 0x22
and ecx, 0x22
lea ecx, [edx + ecx*2]
inc cl
mov edx, dword [esp + 0x18]
mov byte [esp + edx + 0x30], cl
inc dword [esp + 0x18]
mov ecx, dword [esp + 0x18]
cmp ecx, 0x13
jb 0x410d50
lea esi, [esp + 0x2e8]
mov ecx, esi
push eax
push 0x447ac8
lea eax, [esp + 0x38]
push eax
call fcn.00409cb0
mov ecx, esi
call fcn.0040a4f0
mov ecx, esi
call fcn.00409ae0
xor eax, eax
cmp dword [esp + 0xbc], 0
setg al
lea edi, [esp + 0x2e8]
jmp dword [eax*4 + 0x44274c]
push 0
call fcn.0043b700
add esp, 4
xor ecx, ecx
test eax, eax
setne cl
jmp dword [ecx*4 + 0x442754]
mov dword [esp + 0x30], 0xeb279533
mov dword [esp + 0x34], 0xef9ae94e
mov dword [esp + 0x38], 0xe364ed55
mov dword [esp + 0x3c], 0xe780e159
mov dword [esp + 0x40], 0xfb51e580
mov dword [esp + 0x44], 0xff5ff94e
mov dword [esp + 0x48], 0xf348fd48
mov dword [esp + 0x4c], 0xf781f192
mov dword [esp + 0x50], 0xcb4bf545
mov dword [esp + 0x54], 0xcfa8c978
mov dword [esp + 0x58], 0xc37fcd6b
mov dword [esp + 0x5c], 0xc7b2c166
mov dword [esp + 0x60], 0xdb4cc57d
mov dword [esp + 0x64], 0xdfb8d961
mov dword [esp + 0x68], 0xd3adddb8
mov dword [esp + 0x6c], 0xd7b0d177
mov dword [esp + 0x70], 0x2b6bd562
mov dword [esp + 0x74], 0x2f932999
mov dword [esp + 0x78], 0x23a72d9f
mov dword [esp + 0x7c], 0x27402196
mov dword [esp + 0x80], 0x3b902557
mov dword [esp + 0x84], 0x3f4d395a
mov dword [esp + 0x88], 0x334d3d5e
mov dword [esp + 0x8c], 0x37813180
mov dword [esp + 0x90], 0xb823590
mov dword [esp + 0x94], 0xfaf09b1
mov dword [esp + 0x98], 0x36c0db3
mov dword [esp + 0x9c], 0x7600178
mov dword [esp + 0xa0], 0x1bbf05a2
mov dword [esp + 0xa4], 0x1f7819a6
mov dword [esp + 0xa8], 0x131c1d78
mov dword [esp + 0xb0], 0
mov dword [esp + 0xac], 0
mov dword [esp + 8], 0
mov ecx, dword [esp + 8]
cmp ecx, 0x83
ja 0x410fab
nop
nop
nop
nop
nop
nop
nop
nop
mov ecx, dword [esp + 8]
mov edx, dword [esp + 8]
movzx esi, byte [esp + edx + 0x30]
lea edx, [ecx + esi]
add edx, 0x1c2e543d
add ecx, 0x3d
and ecx, esi
add ecx, ecx
mov esi, edx
not esi
and esi, ecx
not ecx
and ecx, edx
sub ecx, esi
mov dword [esp + 0x2e8], ecx
mov ecx, dword [esp + 0x2e8]
mov edx, ecx
or edx, 0x54
and ecx, 0x54
add ecx, edx
inc cl
mov edx, dword [esp + 8]
mov byte [esp + edx + 0x30], cl
inc dword [esp + 8]
mov ecx, dword [esp + 8]
cmp ecx, 0x84
jb 0x410f50
movzx ecx, word [esp + 0x30]
test cx, cx
je 0x410fd1
lea edi, [esp + 0x2e8]
lea edx, [esp + 0x32]
mov word [edi], cx
add edi, 2
movzx ecx, word [edx]
add edx, 2
test cx, cx
jne 0x410fc0
mov word [edi], 0
movzx ecx, word [eax]
test cx, cx
je 0x411001
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 0x410ff0
mov dword [edi], 0x220022
mov dword [edi + 4], 0x22
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 + 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], 0
mov dword [esp + 0x38], 0
mov dword [esp + 0x34], 0
mov dword [esp + 0x30], 0x44
mov dword [esp + 0x5c], 1
push 0xd3a7a30
push dword [0x448ac8]
call fcn.0043b840
add esp, 8
lea ecx, [esp + 0x18]
lea edx, [esp + 0x2e8]
push ecx
lea ecx, [esp + 0x34]
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 + 0x44275c]
lea ecx, [esp + 0xae8]
call fcn.00409ae0
lea ecx, [esp + 0xb50]
call fcn.00409ae0
lea ecx, [esp + 0xbb8]
call fcn.00409ae0
lea ecx, [esp + 0xc20]
call fcn.00409ae0
lea ecx, [esp + 0xc88]
call fcn.00409ae0
lea ecx, [esp + 0x200]
call fcn.00409ae0
mov al, 1
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
jmp dword [0x442764]
mov eax, dword [esp + 0x18]
mov dword [esp + 8], 0xea151417
mov dword [esp + 0xc], 0
mov dword [esp + 0xf], 0
mov dword [esp + 4], 0
mov ecx, dword [esp + 4]
cmp ecx, 0xa
ja 0x4111d0
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov esi, dword [esp + 4]
mov ecx, dword [esp + 4]
movzx edi, byte [esp + ecx + 8]
lea ecx, [esi - 0x2ad7c683]
lea edx, [esi + edi]
add edx, 0xd528397d
add esi, 0x7d
and esi, edi
and ecx, edi
add ecx, esi
mov esi, edx
not esi
and esi, ecx
not ecx
and ecx, edx
sub ecx, esi
mov dword [esp + 0x2c], ecx
mov ecx, dword [esp + 0x2c]
add cl, 0x95
mov edx, dword [esp + 4]
mov byte [esp + edx + 8], cl
mov ecx, dword [esp + 4]
mov edx, ecx
and edx, 1
xor ecx, 1
lea ecx, [ecx + edx*2]
mov dword [esp + 4], ecx
mov ecx, dword [esp + 4]
cmp ecx, 0xb
jb 0x411170
mov ecx, dword [0x448ad4]
test ecx, ecx
je case.0x410de6.6
mov edx, dword [esp + 8]
xor esi, esi
mov edi, dword [0x448ad8]
cmp dword [edi + esi*8], 0x11081610
je 0x4111f6
inc esi
cmp ecx, esi
jne 0x4111e6
jmp case.0x410de6.6
mov ecx, dword [edi + esi*8 + 4]
cmp ecx, edx
je case.0x410de6.6
push eax
push 1
push dword [0x448adc]
push ecx
call fcn.00439d10
add esp, 0x10
jmp case.0x410de6.6
jmp dword [0x442770]
mov eax, dword [esp + 0x18]
mov dword [esp + 8], 0xea151417
mov dword [esp + 0xc], 0
mov dword [esp + 0xf], 0
mov dword [esp + 4], 0
mov ecx, dword [esp + 4]
cmp ecx, 0xa
ja 0x4112c0
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov esi, dword [esp + 4]
mov ecx, dword [esp + 4]
movzx edi, byte [esp + ecx + 8]
lea ecx, [esi - 0x2ad7c683]
lea edx, [esi + edi]
add edx, 0xd528397d
add esi, 0x7d
and esi, edi
and ecx, edi
add ecx, esi
mov esi, edx
not esi
and esi, ecx
not ecx
and ecx, edx
sub ecx, esi
mov dword [esp + 0x2c], ecx
mov ecx, dword [esp + 0x2c]
add cl, 0x95
mov edx, dword [esp + 4]
mov byte [esp + edx + 8], cl
mov ecx, dword [esp + 4]
mov edx, ecx
and edx, 1
xor ecx, 1
lea ecx, [ecx + edx*2]
mov dword [esp + 4], ecx
mov ecx, dword [esp + 4]
cmp ecx, 0xb
jb 0x411260
mov ecx, dword [0x448ad4]
test ecx, ecx
je 0x411220
mov edx, dword [esp + 8]
xor esi, esi
mov edi, dword [0x448ad8]
nop
nop
nop
nop
nop
nop
cmp dword [edi + esi*8], 0x11081610
je 0x411300
inc esi
cmp ecx, esi
jne 0x4112e0
jmp 0x411220
mov ecx, dword [edi + esi*8 + 4]
cmp ecx, edx
je 0x411220
push eax
push 1
push dword [0x448adc]
push ecx
call fcn.00439d10
add esp, 0x10
jmp 0x411220
push esi
call fcn.00401ee0
add esp, 4
push esi
call fcn.00401ee0
add esp, 4
jmp dword [0x442708]
mov eax, dword [esi + 0xec]
inc eax
mov dword [esi + 0x168], eax
mov eax, dword [esi + 0x108]
jmp 0x411554
push eax
call fcn.00402ef0
add esp, 4
xor ecx, ecx
cmp ebx, eax
setb cl
mov al, 1
jmp dword [ecx*4 + 0x44277c]
mov edi, dword [esi + 0x108]
jmp dword [0x442784]
push ebx
push edi
call fcn.00402f00
add esp, 8
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
push ebx
push edi
call fcn.00402f00
add esp, 8
jmp dword [0x44278c]
mov dword [esi], eax
mov dword [esi + 0x178], ebx
mov word [esi + 0x78], 0xad30
mov dword [esi + 0x7a], 0
mov dword [esi + 0x7e], 0
mov word [esi + 0x82], 0
mov dword [esi + 0x10], 0
mov eax, dword [esi + 0x10]
cmp eax, 0xb
ja 0x411623
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esi + 0x10]
mov ecx, dword [esi + 0x10]
movzx edx, byte [esi + ecx + 0x78]
lea ecx, [eax + edx]
add ecx, 0x46463b9a
add eax, 0x46463b9a
and eax, edx
add eax, eax
mov edx, ecx
not edx
and edx, eax
not eax
and eax, ecx
sub eax, edx
mov dword [esi + 0x20], eax
mov eax, dword [esi + 0x20]
add al, 0xca
mov ecx, dword [esi + 0x10]
mov byte [esi + ecx + 0x78], al
inc dword [esi + 0x10]
mov eax, dword [esi + 0x10]
cmp eax, 0xc
jb 0x4115e0
push 3
lea eax, [esi + 0x78]
push eax
push dword [esi]
call fcn.00402dd0
add esp, 0xc
xor ecx, ecx
test eax, eax
sete cl
mov edx, 1
xor ebx, ebx
jmp dword [ecx*4 + 0x442794]
mov word [esi + 0x78], 0x9924
mov dword [esi + 0x7a], 0
mov dword [esi + 0x7d], 0
mov dword [esi + 0x10], 0
mov eax, dword [esi + 0x10]
cmp eax, 8
ja 0x4116a9
nop
nop
nop
nop
nop
mov eax, dword [esi + 0x10]
mov ecx, dword [esi + 0x10]
movzx ecx, byte [esi + ecx + 0x78]
lea edx, [eax + ecx]
add edx, 0xcf13b8bc
add eax, 0xcf13b8bc
and eax, ecx
add eax, eax
sub edx, eax
mov dword [esi + 0x20], edx
mov eax, dword [esi + 0x20]
add al, 0xdc
mov ecx, dword [esi + 0x10]
mov byte [esi + ecx + 0x78], al
inc dword [esi + 0x10]
mov eax, dword [esi + 0x10]
cmp eax, 9
jb 0x411670
lea eax, [esi + 0x78]
push eax
push dword [esi]
call fcn.00402840
add esp, 8
fnstcw word [esi + 0xfe]
movzx eax, word [esi + 0xfe]
or eax, 0xc00
mov word [esi + 0x12a], ax
fldcw word [esi + 0x12a]
fistp dword [esi + 0x18c]
fldcw word [esi + 0xfe]
mov eax, dword [esi + 0x18c]
xor ecx, ecx
cmp eax, 2
setl cl
mov ebx, dword [esi + 0x174]
jmp dword [ecx*4 + 0x44279c]
xor ecx, ecx
cmp eax, 3
setl cl
jmp dword [ecx*4 + 0x4427a4]
sete al
movzx eax, al
xor edx, edx
mov ebx, 1
jmp dword [eax*4 + 0x4427ac]
mov word [esi + 0x78], 0xadc7
mov dword [esi + 0x7a], 0
mov dword [esi + 0x7d], 0
mov dword [esi + 0x10], 0
mov eax, dword [esi + 0x10]
cmp eax, 8
ja 0x411784
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esi + 0x10]
mov ecx, dword [esi + 0x10]
movzx ecx, byte [esi + ecx + 0x78]
lea edx, [eax + 0x63b1753a]
add eax, 0x3a
and eax, ecx
or edx, ecx
sub edx, eax
mov dword [esi + 0x20], edx
mov eax, dword [esi + 0x20]
add al, 0x6a
mov ecx, dword [esi + 0x10]
mov byte [esi + ecx + 0x78], al
inc dword [esi + 0x10]
mov eax, dword [esi + 0x10]
cmp eax, 9
jb 0x411750
push 2
lea eax, [esi + 0x78]
push eax
push dword [esi]
call fcn.00402dd0
add esp, 0xc
xor ecx, ecx
test eax, eax
setne cl
mov al, 1
jmp dword [ecx*4 + 0x442884]
mov word [esi + 0x70], 0x61f0
mov dword [esi + 0x72], 0
mov word [esi + 0x76], 0
mov dword [esi + 0x10], 0
mov eax, dword [esi + 0x10]
cmp eax, 7
ja 0x411804
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esi + 0x10]
mov ecx, dword [esi + 0x10]
movzx ecx, byte [esi + ecx + 0x70]
lea edx, [eax - 0x63a7ad0]
add eax, 0x30
and eax, ecx
or edx, ecx
sub edx, eax
mov dword [esi + 0x20], edx
mov eax, dword [esi + 0x20]
add al, 0xb0
mov ecx, dword [esi + 0x10]
mov byte [esi + ecx + 0x70], al
inc dword [esi + 0x10]
mov eax, dword [esi + 0x10]
cmp eax, 8
jb 0x4117d0
push 2
lea eax, [esi + 0x70]
push eax
push dword [esi]
call fcn.00402dd0
add esp, 0xc
xor ecx, ecx
test eax, eax
setne cl
mov al, 1
jmp dword [ecx*4 + 0x44288c]
mov word [esi + 0x20], 0x8131
mov dword [esi + 0x22], 0
mov dword [esi + 0x26], 0
mov dword [esi + 0x2a], 0
mov word [esi + 0x2e], 0
mov dword [esi + 0x60], 0
mov eax, dword [esi + 0x60]
cmp eax, 0xf
ja 0x411896
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esi + 0x60]
mov ecx, dword [esi + 0x60]
movzx ecx, byte [esi + ecx + 0x20]
lea edx, [eax + 0x481289eb]
add eax, 0xeb
and eax, ecx
or edx, ecx
sub edx, eax
mov dword [esi + 0x10], edx
mov eax, dword [esi + 0x10]
add al, 0x93
mov ecx, dword [esi + 0x60]
mov byte [esi + ecx + 0x20], al
inc dword [esi + 0x60]
mov eax, dword [esi + 0x60]
cmp eax, 0x10
jb 0x411860
push 5
lea eax, [esi + 0x20]
push eax
push dword [esi]
call fcn.00402dd0
add esp, 0xc
xor ecx, ecx
test eax, eax
setne cl
mov al, 1
jmp dword [ecx*4 + 0x442894]
mov word [esi + 0x10], 0x79ec
mov dword [esi + 0x12], 0
mov dword [esi + 0x15], 0
mov dword [esi + 0x48], 0
mov eax, dword [esi + 0x48]
cmp eax, 8
ja 0x411915
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esi + 0x48]
mov ecx, dword [esi + 0x48]
movzx ecx, byte [esi + ecx + 0x10]
lea edx, [eax + 0x6f]
add eax, ecx
and edx, ecx
add edx, edx
sub eax, edx
add eax, 0x8397896f
mov dword [esi + 0x60], eax
mov eax, dword [esi + 0x60]
add al, 0xf7
mov ecx, dword [esi + 0x48]
mov byte [esi + ecx + 0x10], al
inc dword [esi + 0x48]
mov eax, dword [esi + 0x48]
cmp eax, 9
jb 0x4118e0
push 2
lea eax, [esi + 0x10]
push eax
push dword [esi]
call fcn.00402dd0
add esp, 0xc
xor ecx, ecx
test eax, eax
setne cl
mov al, 1
jmp dword [ecx*4 + 0x44289c]
mov word [esi + 0x60], 0x2d88
mov dword [esi + 0x62], 0
mov dword [esi + 0x66], 0
mov byte [esi + 0x6a], 0
mov dword [esi + 8], 0
mov eax, dword [esi + 8]
cmp eax, 0xa
ja 0x41199d
nop
nop
nop
nop
mov eax, dword [esi + 8]
mov ecx, dword [esi + 8]
movzx edi, byte [esi + ecx + 0x60]
lea ecx, [eax - 0x1b9276fa]
mov edx, ecx
and edx, edi
xor ecx, edi
add eax, 6
and eax, edi
add eax, edx
sub ecx, eax
lea eax, [ecx + edx*2]
mov dword [esi + 0x48], eax
mov eax, dword [esi + 0x48]
add al, 0xd6
mov ecx, dword [esi + 8]
mov byte [esi + ecx + 0x60], al
inc dword [esi + 8]
mov eax, dword [esi + 8]
cmp eax, 0xb
jb 0x411960
push 3
lea eax, [esi + 0x60]
push eax
push dword [esi]
call fcn.00402dd0
add esp, 0xc
mov ecx, dword [case.0x41192e.4]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
jmp ecx
xor ecx, ecx
test eax, eax
setne cl
mov al, 1
jmp dword [ecx*4 + 0x4428b4]
jmp dword [0x4428bc]
xor ecx, ecx
test eax, eax
setle cl
jmp dword [ecx*4 + 0x4427b4]
mov word [esi + 0x78], 0xb120
mov dword [esi + 0x7a], 0
mov dword [esi + 0x7e], 0
mov dword [esi + 0x82], 0
mov byte [esi + 0x86], 0
mov dword [esi + 0x10], 0
mov eax, dword [esi + 0x10]
cmp eax, 0xe
ja 0x411a69
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esi + 0x10]
mov ecx, dword [esi + 0x10]
movzx ecx, byte [esi + ecx + 0x78]
lea edx, [eax + ecx]
add edx, 0x7fb4b5c8
add eax, 0x7fb4b5c8
and eax, ecx
add eax, eax
sub edx, eax
mov dword [esi + 0x20], edx
mov eax, dword [esi + 0x20]
add al, 0x88
mov ecx, dword [esi + 0x10]
mov byte [esi + ecx + 0x78], al
inc dword [esi + 0x10]
mov eax, dword [esi + 0x10]
cmp eax, 0xf
jb 0x411a30
lea eax, [esi + 0x78]
push eax
push dword [esi]
call fcn.00402700
add esp, 8
mov word [esi + 0x78], 0x65e0
mov dword [esi + 0x7a], 0
mov dword [esi + 0x7e], 0
mov word [esi + 0x82], 0
mov dword [esi + 0x30], eax
mov dword [esi + 0x10], 0
mov eax, dword [esi + 0x10]
cmp eax, 0xb
ja 0x411af7
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esi + 0x10]
mov ecx, dword [esi + 0x10]
movzx ecx, byte [esi + ecx + 0x78]
lea edx, [eax + ecx]
add edx, 0xa62765d1
add eax, 0xa62765d1
and eax, ecx
add eax, eax
sub edx, eax
mov dword [esi + 0x20], edx
mov eax, dword [esi + 0x20]
add al, 0x49
mov ecx, dword [esi + 0x10]
mov byte [esi + ecx + 0x78], al
mov eax, dword [esi + 0x10]
mov ecx, eax
and ecx, 1
xor eax, 1
lea eax, [eax + ecx*2]
mov dword [esi + 0x10], eax
mov eax, dword [esi + 0x10]
cmp eax, 0xc
jb 0x411ab0
lea eax, [esi + 0x78]
push eax
push dword [esi]
call fcn.00402700
add esp, 8
xor ecx, ecx
mov edx, dword [esi + 0x30]
test edx, edx
sete cl
jmp dword [ecx*4 + 0x4429bc]
xor ecx, ecx
test eax, eax
sete cl
jmp dword [ecx*4 + 0x4429c4]
mov dword [esi], eax
mov ecx, eax
mov eax, edx
nop
nop
nop
nop
nop
nop
mov ebx, eax
inc eax
cmp byte [ebx], 0
jne 0x411b30
mov dword [esi + 0xc], ecx
mov eax, ebx
sub eax, edx
mov dword [esi + 4], 0
mov dword [esi + 0xe8], eax
test eax, eax
jle 0x411b87
cmp byte [edx], 0
je 0x411b87
mov dword [esi + 4], 0
mov edi, dword [esi + 0x30]
nop
mov dword [esi + 0x78], 0
lea eax, [esi + 0x78]
push eax
push ebx
push edi
call fcn.0040fb10
add esp, 0xc
lea ecx, [edi + eax]
inc dword [esi + 4]
cmp ecx, ebx
jae 0x411b87
cmp byte [edi + eax], 0
mov edi, ecx
jne 0x411b60
mov edi, dword [esi + 4]
mov eax, edi
inc eax
lea eax, [edi + edi + 2]
jns 0x411b98
mov eax, 0xffffffff
push eax
call fcn.004093a0
add esp, 4
mov dword [esi + 0x78], 0
lea ecx, [eax + edi*2]
mov edx, eax
mov dword [esi + 0x38], eax
mov dword [esi + 0x34], ecx
cmp ecx, eax
mov eax, dword [esi + 0xc]
mov edi, dword [esi + 0x30]
jbe 0x4124ec
mov edx, dword [esi + 0x38]
cmp dword [esi + 0xe8], 0
jle 0x4124ec
mov edx, dword [esi + 0x38]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp byte [edi], 0
je 0x4124ec
lea eax, [esi + 0x78]
push eax
push ebx
push edi
mov dword [esi + 4], edx
call fcn.0040fb10
mov edx, dword [esi + 4]
add esp, 0xc
movzx ecx, word [esi + 0x78]
mov word [edx], cx
add edx, 2
cmp edx, dword [esi + 0x34]
jae 0x4124e9
add edi, eax
cmp edi, ebx
mov eax, dword [esi + 0xc]
jb 0x411be0
jmp 0x4124ec
mov word [ebx], 0x8d7c
mov dword [ebx + 2], 0
mov dword [ebx + 6], 0
mov dword [ebx + 0xa], 0
mov dword [esi + 0x20], 0
mov eax, dword [esi + 0x20]
cmp eax, 0xd
ja 0x411c92
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esi + 0x20]
mov ecx, dword [esi + 0x20]
movzx ecx, byte [ebx + ecx]
lea edx, [eax - 0x66c08f3e]
add eax, 0xc2
and eax, ecx
or edx, ecx
sub edx, eax
mov dword [esi + 0x78], edx
mov eax, dword [esi + 0x78]
add al, 0xb2
mov ecx, dword [esi + 0x20]
mov byte [ebx + ecx], al
mov eax, dword [esi + 0x20]
mov ecx, eax
and ecx, 1
xor eax, 1
lea eax, [eax + ecx*2]
mov dword [esi + 0x20], eax
mov eax, dword [esi + 0x20]
cmp eax, 0xe
jb 0x411c50
push ebx
push dword [esi]
call fcn.00402700
add esp, 8
mov ecx, dword [esi + 0x138]
mov dword [ecx], eax
mov edx, dword [esi + 0x164]
mov word [edx], 0x6dd2
mov dword [edx + 9], 0
mov dword [edx + 6], 0
mov dword [edx + 2], 0
mov dword [esi + 0x20], 0
mov eax, dword [esi + 0x20]
cmp eax, 0xc
ja 0x411d1b
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]
mov edx, eax
and edx, 0x20103a0e
xor eax, 0xa0103a0e
lea eax, [eax + edx*2]
mov edx, dword [esi + 0x164]
xor eax, ecx
mov dword [esi + 0x78], eax
mov eax, dword [esi + 0x78]
add al, 0x9e
mov ecx, dword [esi + 0x20]
mov byte [edx + ecx], al
inc dword [esi + 0x20]
mov eax, dword [esi + 0x20]
cmp eax, 0xd
jb 0x411ce0
push edx
push dword [esi]
call fcn.00402700
add esp, 8
mov ecx, dword [esi + 0x134]
mov dword [ecx], eax
mov ecx, dword [esi + 0x138]
mov edx, dword [ecx]
xor ecx, ecx
test edx, edx
sete cl
jmp dword [ecx*4 + 0x442a4c]
xor ecx, ecx
test eax, eax
sete cl
jmp dword [ecx*4 + 0x442a54]
mov eax, edx
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov ebx, eax
inc eax
cmp byte [ebx], 0
jne 0x411d60
mov eax, ebx
sub eax, edx
mov dword [esi], 0
mov dword [esi + 0x30], eax
test eax, eax
mov dword [esi + 0xc], edx
jle 0x411db6
cmp byte [edx], 0
je 0x411db6
mov dword [esi], 0
mov edi, dword [esi + 0xc]
nop
nop
nop
nop
nop
nop
mov dword [esi + 0x78], 0
lea eax, [esi + 0x78]
push eax
push ebx
push edi
call fcn.0040fb10
add esp, 0xc
lea ecx, [edi + eax]
inc dword [esi]
cmp ecx, ebx
jae 0x411db6
cmp byte [edi + eax], 0
mov edi, ecx
jne 0x411d90
mov edi, dword [esi]
mov eax, edi
inc eax
lea eax, [edi + edi + 2]
jns 0x411dc6
mov eax, 0xffffffff
push eax
call fcn.004093a0
add esp, 4
mov edx, eax
mov eax, dword [esi + 0x130]
mov dword [eax], edx
mov dword [esi + 0x78], 0
lea eax, [edx + edi*2]
mov dword [esi + 4], eax
cmp eax, edx
jbe 0x411e2c
cmp dword [esi + 0x30], 0
mov edi, dword [esi + 0xc]
jle 0x411e2c
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp byte [edi], 0
je 0x411e2c
lea eax, [esi + 0x78]
push eax
push ebx
push edi
mov dword [esi], edx
call fcn.0040fb10
mov edx, dword [esi]
add esp, 0xc
movzx ecx, word [esi + 0x78]
mov word [edx], cx
add edx, 2
cmp edx, dword [esi + 4]
jae 0x411e2c
add edi, eax
cmp edi, ebx
jb 0x411e00
mov word [edx], 0
mov eax, dword [esi + 0x134]
mov eax, dword [eax]
mov edi, 0xfffffffe
mov ebx, 0xffffffff
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
add edi, 2
cmp byte [eax + ebx + 1], 0
lea ebx, [ebx + 1]
jne 0x411e50
mov dword [esi], eax
mov eax, edi
and eax, 2
mov ecx, ebx
xor ecx, 1
add ecx, eax
lea eax, [ecx + ecx]
test ecx, ecx
jns 0x411e77
mov eax, 0xffffffff
push eax
call fcn.004093a0
add esp, 4
mov edx, eax
mov eax, dword [esi + 0x12c]
mov dword [eax], edx
mov ecx, dword [esi]
test ecx, ecx
jne 0x411ea9
mov ebx, ecx
not ebx
xor eax, eax
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
inc ebx
cmp byte [eax], 0
lea eax, [eax + 1]
jne 0x411ea0
mov dword [esi + 0x78], 0
add edi, edx
cmp edi, edx
jbe 0x411ef1
test ebx, ebx
jle 0x411ef1
add ebx, ecx
nop
nop
nop
nop
cmp byte [ecx], 0
je 0x411ef1
lea eax, [esi + 0x78]
push eax
push ebx
push ecx
mov dword [esi], ecx
mov dword [esi + 4], edx
call fcn.0040fb10
mov edx, dword [esi + 4]
add esp, 0xc
movzx ecx, word [esi + 0x78]
mov word [edx], cx
add edx, 2
cmp edx, edi
jae 0x411ef1
mov ecx, dword [esi]
add ecx, eax
cmp ecx, ebx
jb 0x411ec0
mov word [edx], 0
mov eax, dword [esi + 0x104]
mov dword [eax], 0
mov eax, dword [esi + 0xf0]
mov dword [eax], 0
mov edi, dword [esi + 0x170]
mov word [edi], 0xe5f9
mov byte [edi + 2], 0x6a
mov dword [edi + 3], 0
mov dword [edi + 7], 0
mov byte [edi + 0xb], 0
mov dword [esi + 0x20], 0
mov eax, dword [esi + 0x20]
cmp eax, 0xb
ja 0x411f76
nop
nop
mov eax, dword [esi + 0x20]
mov ecx, dword [esi + 0x20]
movzx ecx, byte [edi + ecx]
lea edx, [eax + 0xd2]
and edx, ecx
add eax, ecx
add edx, edx
sub eax, edx
add eax, 0x10d39ed2
mov dword [esi + 0x78], eax
mov eax, dword [esi + 0x78]
add al, 0x42
mov ecx, dword [esi + 0x20]
mov byte [edi + ecx], al
inc dword [esi + 0x20]
mov eax, dword [esi + 0x20]
cmp eax, 0xc
jb 0x411f40
push edi
push dword [ebp + 8]
call fcn.00402980
add esp, 8
mov ecx, dword [esi + 0x150]
mov dword [ecx], eax
xor ecx, ecx
test eax, eax
setne cl
jmp dword [ecx*4 + 0x442a5c]
push eax
call fcn.00402ef0
add esp, 4
mov edi, eax
mov ecx, 0xc
mul ecx
seto dl
mov ecx, 0xffffffff
mov ebx, 0xffffffff
add eax, 4
jb 0x411fbe
mov ebx, eax
mov eax, dword [esi + 0xf0]
mov dword [eax], edi
test dl, dl
jne 0x411fcc
mov ecx, ebx
push ecx
call fcn.004093a0
add esp, 4
mov dword [eax], edi
add eax, 4
xor ecx, ecx
test edi, edi
sete cl
jmp dword [ecx*4 + 0x442a64]
lea ecx, [edi + edi*2]
lea ecx, [eax + ecx*4]
mov edi, dword [case.0x411f91.6]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov edx, eax
jmp edi
mov dword [edx], 0
mov dword [edx + 4], 0
mov dword [edx + 8], 0
add edx, 0xc
xor ebx, ebx
cmp edx, ecx
sete bl
jmp dword [ebx*4 + 0x442a7c]
mov ecx, dword [esi + 0x104]
mov dword [ecx], eax
mov eax, dword [esi + 0x118]
mov dword [eax], 0
mov edi, dword [esi + 0x10c]
lea eax, [edi + 3]
mov dword [esi + 0xc], eax
mov eax, dword [esi + 0x140]
add eax, 3
mov dword [esi + 0x30], eax
xor eax, eax
xor ecx, ecx
mov edx, dword [esi + 0xf0]
cmp eax, dword [edx]
setb cl
mov edx, dword [esi + 0x13c]
add edx, 3
mov dword [esi + 0x34], edx
jmp dword [ecx*4 + 0x442a84]
push eax
mov eax, dword [esi + 0x150]
push dword [eax]
call fcn.00402f00
add esp, 8
mov ecx, dword [esi + 0x11c]
mov dword [ecx], eax
mov word [edi], 0x9fe9
mov byte [edi + 2], 2
mov ecx, dword [esi + 0xc]
mov dword [ecx], 0
mov dword [ecx + 4], 0
mov dword [ecx + 8], 0
mov dword [esi + 0x20], 0
mov ecx, dword [esi + 0x20]
cmp ecx, 0xe
ja 0x41213e
nop
nop
nop
nop
nop
nop
nop
nop
mov ecx, dword [esi + 0x20]
mov edx, dword [esi + 0x20]
mov edi, dword [esi + 0x10c]
movzx edi, byte [edi + edx]
lea edx, [ecx - 0x3b2b542a]
mov ebx, edi
not ebx
or ebx, edx
lea edx, [ecx + edi]
add edx, 0xc4d4abd6
add ebx, edi
add ecx, 0xd6
and ecx, edi
add ecx, ebx
inc ecx
mov edi, edx
not edi
and edi, ecx
not ecx
and ecx, edx
sub ecx, edi
mov edi, dword [esi + 0x10c]
mov dword [esi + 0x78], ecx
mov ecx, dword [esi + 0x78]
add cl, 0x26
mov edx, dword [esi + 0x20]
mov byte [edi + edx], cl
inc dword [esi + 0x20]
mov ecx, dword [esi + 0x20]
cmp ecx, 0xf
jb 0x4120e0
push edi
push eax
call fcn.00402700
add esp, 8
mov ecx, dword [esi + 0x158]
mov dword [ecx], eax
mov edi, dword [esi + 0x140]
mov word [edi], 0xdbed
mov byte [edi + 2], 0x44
mov eax, dword [esi + 0x30]
mov dword [eax], 0
mov dword [eax + 4], 0
mov word [eax + 8], 0
mov dword [esi + 0x20], 0
mov eax, dword [esi + 0x20]
cmp eax, 0xc
ja 0x4121d1
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 [edi + ecx]
lea edx, [eax + 0xf5]
add eax, ecx
and edx, ecx
add edx, edx
sub eax, edx
add eax, 0x6b7140f5
mov dword [esi + 0x78], eax
mov eax, dword [esi + 0x78]
mov ecx, eax
xor ecx, 0x4c
and eax, 0x4c
lea eax, [ecx + eax*2]
inc al
mov ecx, dword [esi + 0x20]
mov byte [edi + ecx], al
inc dword [esi + 0x20]
mov eax, dword [esi + 0x20]
cmp eax, 0xd
jb 0x412190
push edi
mov eax, dword [esi + 0x11c]
push dword [eax]
call fcn.00402700
add esp, 8
mov ecx, dword [esi + 0x154]
mov dword [ecx], eax
mov ebx, dword [esi + 0x13c]
mov word [ebx], 0x514d
mov byte [ebx + 2], 0xa4
mov eax, dword [esi + 0x34]
mov dword [eax], 0
mov dword [eax + 3], 0
mov dword [esi + 0x20], 0
mov eax, dword [esi + 0x20]
cmp eax, 9
mov edi, dword [esi + 0x118]
ja 0x412254
nop
nop
mov eax, dword [esi + 0x20]
mov ecx, dword [esi + 0x20]
movzx ecx, byte [ebx + ecx]
lea edx, [eax - 0x57cc951b]
add eax, 0xe5
and eax, ecx
or edx, ecx
sub edx, eax
mov dword [esi + 0x78], edx
mov eax, dword [esi + 0x78]
add al, 0xbd
mov ecx, dword [esi + 0x20]
mov byte [ebx + ecx], al
inc dword [esi + 0x20]
mov eax, dword [esi + 0x20]
cmp eax, 0xa
jb 0x412220
push ebx
mov eax, dword [esi + 0x11c]
push dword [eax]
call fcn.00402700
add esp, 8
mov ecx, dword [esi + 0x104]
mov ecx, dword [ecx]
mov edx, dword [edi]
lea edx, [edx + edx*2]
mov edi, dword [esi + 0x158]
mov edi, dword [edi]
mov ebx, dword [esi + 0x154]
mov ebx, dword [ebx]
mov dword [ecx + edx*4], 0
mov dword [ecx + edx*4 + 4], edi
mov dword [ecx + edx*4 + 8], eax
lea eax, [ecx + edx*4]
mov dword [esi], eax
mov ecx, ebx
mov edi, 0xfffffffe
xor eax, eax
nop
add edi, 2
cmp byte [ecx + eax], 0
lea eax, [eax + 1]
jne 0x4122a0
mov dword [esi + 4], ecx
lea ebx, [eax - 1]
lea ecx, [edi + 2]
test eax, eax
jns 0x4122be
mov ecx, 0xffffffff
push ecx
call fcn.004093a0
add esp, 4
mov edx, eax
mov eax, dword [esi]
mov dword [eax], edx
mov ecx, dword [esi + 4]
test ecx, ecx
jne 0x4122e9
mov ebx, ecx
not ebx
xor eax, eax
nop
nop
nop
nop
nop
nop
inc ebx
cmp byte [eax], 0
lea eax, [eax + 1]
jne 0x4122e0
mov dword [esi + 0x78], 0
add edi, edx
cmp edi, edx
jbe 0x412340
test ebx, ebx
jle 0x412340
add ebx, ecx
mov dword [esi], ebx
nop
nop
cmp byte [ecx], 0
je 0x412340
lea eax, [esi + 0x78]
push eax
push dword [esi]
push ecx
mov ebx, ecx
mov dword [esi + 4], edx
call fcn.0040fb10
mov edx, dword [esi + 4]
add esp, 0xc
movzx ecx, word [esi + 0x78]
mov word [edx], cx
add edx, 2
cmp edx, edi
jae 0x412340
add ebx, eax
cmp ebx, dword [esi]
mov ecx, ebx
jb 0x412300
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov word [edx], 0
mov ecx, dword [esi + 0x118]
jmp dword [0x442a9c]
jmp dword [0x442a8c]
mov ebx, dword [esi + 0x110]
mov ecx, ebx
push 3
call fcn.00409aa0
mov eax, dword [esi + 0x104]
mov edi, dword [eax]
mov eax, dword [esi + 0x12c]
mov ecx, dword [eax]
mov eax, dword [esi + 0x130]
mov edx, dword [eax]
mov eax, dword [esi + 0xf0]
push dword [eax]
push edi
mov dword [esi], ecx
push ecx
mov dword [esi + 4], edx
push edx
push ebx
call fcn.004197b0
add esp, 0x14
mov ecx, ebx
call fcn.0040a4f0
xor eax, eax
test edi, edi
sete al
jmp dword [eax*4 + 0x442aac]
sete al
movzx eax, al
xor edx, edx
mov ebx, 1
jmp dword [eax*4 + 0x4427bc]
jmp dword [0x4427c8]
mov eax, dword [case.0x4116f6.4]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
xor edx, edx
mov ebx, 1
jmp eax
mov eax, dword [esi + 0xc]
mov word [edx], 0
mov ebx, 0xffffffff
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp byte [eax + ebx + 1], 0
lea ebx, [ebx + 1]
jne 0x412500
add dword [esi], ebx
mov dword [esi + 4], 0
mov dword [esi + 0x34], ebx
test ebx, ebx
jle 0x412559
cmp byte [eax], 0
je 0x412559
mov dword [esi + 4], 0
mov edi, dword [esi + 0xc]
nop
nop
nop
nop
nop
nop
nop
mov dword [esi + 0x78], 0
lea eax, [esi + 0x78]
push eax
mov ebx, dword [esi]
push ebx
push edi
call fcn.0040fb10
add esp, 0xc
lea ecx, [edi + eax]
inc dword [esi + 4]
cmp ecx, ebx
jae 0x412559
cmp byte [edi + eax], 0
mov edi, ecx
jne 0x412530
mov edi, dword [esi + 4]
mov eax, edi
inc eax
lea eax, [edi + edi + 2]
jns 0x41256a
mov eax, 0xffffffff
push eax
call fcn.004093a0
add esp, 4
mov dword [esi + 0x78], 0
lea ecx, [eax + edi*2]
mov edx, eax
mov dword [esi + 0x44], eax
mov dword [esi + 0x30], ecx
cmp ecx, eax
mov edi, dword [esi + 0xc]
jbe 0x4125d0
mov edx, dword [esi + 0x44]
cmp dword [esi + 0x34], 0
jle 0x4125d0
mov edx, dword [esi + 0x44]
nop
nop
nop
nop
nop
nop
nop
nop
cmp byte [edi], 0
je 0x4125d0
lea eax, [esi + 0x78]
push eax
mov ebx, dword [esi]
push ebx
push edi
mov dword [esi + 4], edx
call fcn.0040fb10
mov edx, dword [esi + 4]
add esp, 0xc
movzx ecx, word [esi + 0x78]
mov word [edx], cx
add edx, 2
cmp edx, dword [esi + 0x30]
jae 0x4125d0
add edi, eax
cmp edi, ebx
jb 0x4125a0
mov word [edx], 0
mov word [esi + 0x78], 0x2939
mov byte [esi + 0x7a], 0xa0
mov dword [esi + 0x7b], 0
mov word [esi + 0x7f], 0
mov dword [esi + 0x10], 0
mov eax, dword [esi + 0x10]
cmp eax, 8
ja 0x412638
nop
nop
nop
nop
nop
mov eax, dword [esi + 0x10]
mov ecx, dword [esi + 0x10]
movzx ecx, byte [esi + ecx + 0x78]
lea edx, [eax + 0x9b]
and edx, ecx
add eax, ecx
add edx, edx
sub eax, edx
add eax, 0x4811f49b
mov dword [esi + 0x20], eax
mov eax, dword [esi + 0x20]
add al, 0xc3
mov ecx, dword [esi + 0x10]
mov byte [esi + ecx + 0x78], al
inc dword [esi + 0x10]
mov eax, dword [esi + 0x10]
cmp eax, 9
jb 0x412600
lea eax, [esi + 0x78]
push eax
push dword [ebp + 8]
call fcn.00402980
add esp, 8
xor ecx, ecx
mov dword [esi + 0xc], eax
test eax, eax
setne cl
xor edx, edx
mov dword [esi + 0x34], 0
mov ebx, dword [esi + 0x38]
jmp dword [ecx*4 + 0x4429dc]
mov dword [esi + 4], edx
mov edi, dword [esi + 0x100]
mov ecx, edi
push 2
call fcn.00409aa0
push dword [esi + 4]
push dword [esi + 0x34]
push dword [esi + 0x44]
push ebx
push edi
call fcn.00416cb0
add esp, 0x14
mov ecx, edi
call fcn.0040a4f0
movzx eax, al
jmp dword [eax*4 + 0x442a0c]
jmp dword [0x4429e8]
push dword [esi + 0xc]
call fcn.00402ef0
add esp, 4
jmp case.0x41265d.3
push ecx
call fcn.004093a0
add esp, 4
mov ecx, dword [esi + 4]
mov dword [eax], ecx
jmp dword [0x4429ec]
push dword [esi + 0xc]
call fcn.00402ef0
add esp, 4
mov ecx, eax
mov dword [esi + 4], eax
mov ecx, 0xc
mul ecx
seto dl
mov ecx, 0xffffffff
mov edi, 0xffffffff
add eax, 4
jb 0x41271f
mov edi, eax
test dl, dl
jne 0x4126e0
mov ecx, edi
jmp 0x4126e0
add eax, 4
mov dword [esi + 0x34], eax
xor eax, eax
test ecx, ecx
sete al
mov edi, dword [esi + 0x14c]
jmp dword [eax*4 + 0x4429f4]
mov eax, dword [esi + 4]
lea eax, [eax + eax*2]
mov ecx, dword [esi + 0x34]
lea eax, [ecx + eax*4]
mov dword [ecx], 0
mov dword [ecx + 4], 0
mov byte [ecx + 8], 0
add ecx, 0xc
xor edx, edx
cmp ecx, eax
sete dl
jmp dword [edx*4 + 0x4429fc]
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 + 0x4429fc]
lea eax, [edi + 3]
mov dword [esi + 0xe8], eax
mov eax, dword [esi + 0x148]
add eax, 3
mov dword [esi + 0x3c], eax
xor edi, edi
xor eax, eax
mov edx, dword [esi + 4]
cmp edi, edx
setb al
mov ecx, dword [esi + 0x144]
add ecx, 4
mov dword [esi + 0xe4], ecx
jmp dword [eax*4 + 0x442a04]
mov word [esi + 0x60], 0x3194
mov dword [esi + 0x66], 0
mov dword [esi + 0x62], 0
mov dword [esi + 8], 0
mov eax, dword [esi + 8]
cmp eax, 9
ja 0x412d68
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esi + 8]
mov ecx, dword [esi + 8]
movzx ecx, byte [esi + ecx + 0x60]
lea edx, [eax + 0xd8]
add eax, ecx
and edx, ecx
add edx, edx
sub eax, edx
add eax, 0x16fc17d8
mov dword [esi + 0x70], eax
mov eax, dword [esi + 0x70]
add al, 0x18
mov ecx, dword [esi + 8]
mov byte [esi + ecx + 0x60], al
inc dword [esi + 8]
mov eax, dword [esi + 8]
cmp eax, 0xa
jb 0x412d30
push 3
lea eax, [esi + 0x60]
push eax
push dword [esi]
call fcn.00402dd0
add esp, 0xc
xor ecx, ecx
test eax, eax
setne cl
mov al, 1
jmp dword [ecx*4 + 0x4427ec]
mov word [esi + 0x48], 0x276
mov byte [esi + 0x4a], 0x8a
mov dword [esi + 0x4b], 0
mov dword [esi + 0x4f], 0
mov dword [esi + 0x53], 0
mov dword [esi + 8], 0
mov eax, dword [esi + 8]
cmp eax, 0xe
ja 0x412e0c
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov ecx, dword [esi + 8]
mov eax, dword [esi + 8]
movzx edx, byte [esi + eax + 0x48]
lea eax, [ecx + edx]
add eax, 0x26d55d42
add ecx, 0x26d55d42
mov ebx, edx
not ebx
or ebx, ecx
add ebx, edx
and ecx, edx
add ecx, ebx
inc ecx
mov edx, eax
not edx
and edx, ecx
not ecx
and ecx, eax
sub ecx, edx
mov dword [esi + 0x70], ecx
mov eax, dword [esi + 0x70]
add al, 0x32
mov ecx, dword [esi + 8]
mov byte [esi + ecx + 0x48], al
inc dword [esi + 8]
mov eax, dword [esi + 8]
cmp eax, 0xf
jb 0x412dc0
push 3
lea eax, [esi + 0x48]
push eax
push dword [esi]
call fcn.00402dd0
add esp, 0xc
xor ecx, ecx
test eax, eax
sete cl
mov ebx, 1
xor edx, edx
jmp dword [ecx*4 + 0x4427f4]
push edi
call fcn.00402ef0
add esp, 4
jmp dword [0x44280c]
xor ecx, ecx
mov edx, dword [esi + 0xc]
cmp edx, eax
setb cl
jmp dword [ecx*4 + 0x442814]
push edx
push edi
call fcn.00402ed0
add esp, 8
push eax
call fcn.00402820
add esp, 4
xor ecx, ecx
test eax, eax
sete cl
mov edx, 1
xor ebx, ebx
jmp dword [ecx*4 + 0x44282c]
mov ecx, eax
nop
nop
nop
nop
nop
nop
mov ebx, ecx
inc ecx
cmp byte [ebx], 0
jne 0x412e90
sub ebx, eax
mov ecx, ebx
mov edi, eax
inc ecx
jns 0x412ea8
mov eax, 0xffffffff
jmp 0x412eae
lea eax, [ebx + ebx]
add eax, 2
push eax
call fcn.004093a0
add esp, 4
mov dword [esi + 0x30], eax
mov eax, ebx
mov edx, edi
test edi, edi
jne 0x412ed9
mov eax, edx
not eax
xor ecx, ecx
nop
nop
nop
nop
nop
nop
nop
nop
inc eax
cmp byte [ecx], 0
lea ecx, [ecx + 1]
jne 0x412ed0
mov dword [esi + 0x20], 0
mov ecx, dword [esi + 0x30]
mov edi, edx
lea edx, [ecx + ebx*2]
mov ebx, ecx
mov dword [esi + 4], edx
cmp edx, ecx
mov edx, ecx
jbe 0x412f3c
mov edx, dword [esi + 0x30]
test eax, eax
jle 0x412f3c
mov ebx, edi
add edi, eax
mov edx, dword [esi + 0x30]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp byte [ebx], 0
je 0x412f3c
lea eax, [esi + 0x20]
push eax
push edi
push ebx
mov dword [esi], edx
call fcn.0040fb10
mov edx, dword [esi]
add esp, 0xc
movzx ecx, word [esi + 0x20]
mov word [edx], cx
add edx, 2
cmp edx, dword [esi + 4]
jae 0x412f3c
add ebx, eax
cmp ebx, edi
jb 0x412f10
xor eax, eax
cmp dword [esi + 0x44], 0
setg al
mov word [edx], 0
push 0
push eax
push dword [esi + 0x3c]
push dword [esi + 0xe4]
mov edi, dword [esi + 0x30]
push edi
push dword [esi + 0xe8]
push dword [esi + 0x38]
lea eax, [esi + 0x78]
push eax
call fcn.0041bd30
add esp, 0x20
xor edx, edx
mov ebx, 1
jmp dword [0x442834]
push edi
call fcn.00402ef0
add esp, 4
jmp case.0x412e2a.4
mov eax, dword [case.0x412e2a.13]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
jmp eax
jmp dword [0x442864]
mov word [esi + 0x48], 0xe2f6
mov byte [esi + 0x4a], 0x6a
mov dword [esi + 0x4b], 0
mov dword [esi + 0x4f], 0
mov dword [esi + 0x53], 0
mov byte [esi + 0x57], 0
mov dword [esi + 0x40], 0
mov eax, dword [esi + 0x40]
cmp eax, 0xf
ja 0x4130cd
nop
nop
nop
nop
nop
mov eax, dword [esi + 0x40]
mov ecx, dword [esi + 0x40]
movzx ecx, byte [esi + ecx + 0x48]
lea edx, [eax + 0xf9fa7b2]
lea edi, [eax + ecx]
add edi, 0xf9fa7b2
add eax, 0xb2
or eax, edx
and edx, ecx
and eax, ecx
add eax, edx
mov ecx, edi
not ecx
and ecx, eax
not eax
and eax, edi
sub eax, ecx
mov dword [esi + 8], eax
mov eax, dword [esi + 8]
add al, 0x22
mov ecx, dword [esi + 0x40]
mov byte [esi + ecx + 0x48], al
inc dword [esi + 0x40]
mov eax, dword [esi + 0x40]
cmp eax, 0x10
jb 0x413080
push 3
lea eax, [esi + 0x48]
push eax
push dword [esi]
call fcn.00402dd0
add esp, 0xc
test eax, eax
sete al
jmp dword [0x4428c4]
movzx eax, al
xor edx, edx
jmp dword [eax*4 + 0x4428cc]
mov word [esi + 0x78], 0xb1d7
mov dword [esi + 0x7a], 0
mov dword [esi + 0x7e], 0
mov dword [esi + 0x81], 0
mov dword [esi + 0x10], 0
mov eax, dword [esi + 0x10]
cmp eax, 0xc
ja 0x413165
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esi + 0x10]
mov ecx, dword [esi + 0x10]
movzx ecx, byte [esi + ecx + 0x78]
lea edx, [eax + 0x38]
and edx, ecx
add eax, ecx
add edx, edx
sub eax, edx
add eax, 0xeab73438
mov dword [esi + 0x20], eax
mov eax, dword [esi + 0x20]
add al, 0x78
mov ecx, dword [esi + 0x10]
mov byte [esi + ecx + 0x78], al
inc dword [esi + 0x10]
mov eax, dword [esi + 0x10]
cmp eax, 0xd
jb 0x413130
lea eax, [esi + 0x78]
push eax
push dword [esi]
call fcn.00402700
add esp, 8
mov dword [esi + 0x30], eax
mov word [esi + 0x78], 0x79d6
mov dword [esi + 0x7a], 0
mov dword [esi + 0x7e], 0
mov dword [esi + 0x82], 0
mov word [esi + 0x86], 0
mov dword [esi + 0x10], 0
mov eax, dword [esi + 0x10]
cmp eax, 0xf
ja 0x4131e9
nop
nop
nop
nop
mov eax, dword [esi + 0x10]
mov ecx, dword [esi + 0x10]
movzx ecx, byte [esi + ecx + 0x78]
lea edx, [eax + ecx]
add edx, 0x53f8dc8f
add eax, 0x53f8dc8f
and eax, ecx
add eax, eax
sub edx, eax
mov dword [esi + 0x20], edx
mov eax, dword [esi + 0x20]
add al, 0x17
mov ecx, dword [esi + 0x10]
mov byte [esi + ecx + 0x78], al
inc dword [esi + 0x10]
mov eax, dword [esi + 0x10]
cmp eax, 0x10
jb 0x4131b0
lea eax, [esi + 0x78]
push eax
push dword [esi]
call fcn.00402700
add esp, 8
mov dword [esi + 0x3c], eax
mov word [esi + 0x78], 0x59cd
mov dword [esi + 0x7a], 0
mov dword [esi + 0x7e], 0
mov dword [esi + 0x81], 0
mov dword [esi + 0x10], 0
mov eax, dword [esi + 0x10]
cmp eax, 0xc
ja 0x413272
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esi + 0x10]
mov ecx, dword [esi + 0x10]
movzx edx, byte [esi + ecx + 0x78]
lea ecx, [eax - 0x60d4e034]
add eax, 0xcc
or eax, ecx
and eax, edx
or ecx, edx
sub ecx, eax
mov dword [esi + 0x20], ecx
mov eax, dword [esi + 0x20]
mov ecx, eax
or ecx, 0x6b
and eax, 0x6b
add eax, ecx
inc al
mov ecx, dword [esi + 0x10]
mov byte [esi + ecx + 0x78], al
inc dword [esi + 0x10]
mov eax, dword [esi + 0x10]
cmp eax, 0xd
jb 0x413230
lea eax, [esi + 0x78]
push eax
push dword [esi]
call fcn.00402980
add esp, 8
mov word [esi + 0x78], 0x910c
mov dword [esi + 0x7a], 0
mov dword [esi + 0x7e], 0
mov byte [esi + 0x82], 0
mov dword [esi + 0x10], 0
mov ecx, dword [esi + 0x10]
cmp ecx, 0xa
ja 0x4132de
nop
nop
nop
nop
nop
nop
mov edx, dword [esi + 0x10]
mov ecx, dword [esi + 0x10]
movzx ecx, byte [esi + ecx + 0x78]
add edx, 0x6bf0bec3
xor edx, ecx
mov dword [esi + 0x20], edx
mov edx, dword [esi + 0x20]
add dl, 0xab
mov ecx, dword [esi + 0x10]
mov byte [esi + ecx + 0x78], dl
inc dword [esi + 0x10]
mov ecx, dword [esi + 0x10]
cmp ecx, 0xb
jb 0x4132b0
mov dword [esi + 0x34], eax
lea eax, [esi + 0x78]
push eax
push dword [esi]
call fcn.00402700
add esp, 8
mov dword [esi + 0x44], eax
mov word [esi + 0x78], 0xad00
mov dword [esi + 0x7e], 0
mov dword [esi + 0x7a], 0
mov dword [esi + 0x10], 0
mov eax, dword [esi + 0x10]
cmp eax, 9
ja 0x413359
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esi + 0x10]
mov ecx, dword [esi + 0x10]
movzx ecx, byte [esi + ecx + 0x78]
lea edx, [eax + ecx]
add edx, 0x4ff0a49a
add eax, 0x4ff0a49a
and eax, ecx
add eax, eax
sub edx, eax
mov dword [esi + 0x20], edx
mov eax, dword [esi + 0x20]
add al, 0xca
mov ecx, dword [esi + 0x10]
mov byte [esi + ecx + 0x78], al
inc dword [esi + 0x10]
mov eax, dword [esi + 0x10]
cmp eax, 0xa
jb 0x413320
lea eax, [esi + 0x78]
push eax
push dword [esi]
call fcn.00402840
add esp, 8
fnstcw word [esi + 0xf8]
movzx eax, word [esi + 0xf8]
or eax, 0xc00
mov word [esi + 0x124], ax
fldcw word [esi + 0x124]
fistp dword [esi + 0x180]
fldcw word [esi + 0xf8]
mov eax, dword [esi + 0x180]
mov dword [esi + 0x38], eax
mov word [esi + 0x78], 0x786c
mov byte [esi + 0x7a], 0x84
mov dword [esi + 0x7f], 0
mov dword [esi + 0x7b], 0
mov dword [esi + 0x10], 0
mov eax, dword [esi + 0x10]
cmp eax, 0xa
ja 0x413419
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esi + 0x10]
mov ecx, dword [esi + 0x10]
movzx edx, byte [esi + ecx + 0x78]
lea ebx, [eax - 0xa6002bf]
lea ecx, [eax + edx]
add ecx, 0xf59ffd41
and ebx, edx
add eax, 0x41
and eax, edx
add eax, ebx
mov edx, eax
xor edx, ecx
not eax
and eax, ecx
add eax, eax
sub eax, edx
mov dword [esi + 0x20], eax
mov eax, dword [esi + 0x20]
add al, 0x39
mov ecx, dword [esi + 0x10]
mov byte [esi + ecx + 0x78], al
inc dword [esi + 0x10]
mov eax, dword [esi + 0x10]
cmp eax, 0xb
jb 0x4133d0
lea eax, [esi + 0x78]
push eax
push dword [esi]
call fcn.00402840
add esp, 8
mov edi, 0xfffffffe
mov ebx, 0xffffffff
mov eax, dword [esi + 0x30]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
add edi, 2
cmp byte [eax + ebx + 1], 0
lea ebx, [ebx + 1]
jne 0x413440
fnstcw word [esi + 0xf6]
movzx eax, word [esi + 0xf6]
or eax, 0xc00
mov word [esi + 0x122], ax
fldcw word [esi + 0x122]
fistp dword [esi + 0x17c]
fldcw word [esi + 0xf6]
mov eax, dword [esi + 0x17c]
mov dword [esi + 0xe8], eax
mov eax, edi
and eax, 2
mov ecx, ebx
xor ecx, 1
add ecx, eax
lea eax, [ecx + ecx]
test ecx, ecx
jns 0x41349c
mov eax, 0xffffffff
push eax
call fcn.004093a0
add esp, 4
mov dword [esi + 0xc], eax
mov ecx, dword [esi + 0x30]
test ecx, ecx
jne 0x4134c9
mov ebx, ecx
not ebx
xor eax, eax
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
inc ebx
cmp byte [eax], 0
lea eax, [eax + 1]
jne 0x4134c0
mov dword [esi + 0x78], 0
mov eax, dword [esi + 0xc]
add edi, eax
mov edx, eax
cmp edi, eax
jbe 0x413524
mov edx, dword [esi + 0xc]
test ebx, ebx
jle 0x413524
mov eax, ecx
add eax, ebx
mov edx, dword [esi + 0xc]
mov dword [esi + 4], eax
nop
nop
nop
nop
cmp byte [ecx], 0
je 0x413524
mov ebx, eax
lea eax, [esi + 0x78]
push eax
push ebx
push ecx
mov ebx, ecx
mov dword [esi], edx
call fcn.0040fb10
mov edx, dword [esi]
add esp, 0xc
movzx ecx, word [esi + 0x78]
mov word [edx], cx
add edx, 2
cmp edx, edi
jae 0x413524
add ebx, eax
mov eax, dword [esi + 4]
cmp ebx, eax
mov ecx, ebx
jb 0x4134f0
mov word [edx], 0
mov dword [esi + 0x20], 0
mov dword [esi + 0x24], 0
mov dword [esi + 0x28], 0
lea ecx, [esi + 0x20]
mov edi, dword [esi + 0xc]
push edi
call fcn.00438010
jmp dword [0x4428e4]
jmp dword [0x4428e0]
mov word [esi + 0x48], 0xe2f6
mov byte [esi + 0x4a], 0x6a
mov dword [esi + 0x4b], 0
mov dword [esi + 0x4f], 0
mov dword [esi + 0x53], 0
mov byte [esi + 0x57], 0
mov dword [esi + 0x40], 0
mov eax, dword [esi + 0x40]
cmp eax, 0xf
ja 0x4137cd
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esi + 0x40]
mov ecx, dword [esi + 0x40]
movzx ecx, byte [esi + ecx + 0x48]
lea edx, [eax + 0xf9fa7b2]
lea edi, [eax + ecx]
add edi, 0xf9fa7b2
add eax, 0xb2
or eax, edx
and edx, ecx
and eax, ecx
add eax, edx
mov ecx, edi
not ecx
and ecx, eax
not eax
and eax, edi
sub eax, ecx
mov dword [esi + 8], eax
mov eax, dword [esi + 8]
add al, 0x22
mov ecx, dword [esi + 0x40]
mov byte [esi + ecx + 0x48], al
inc dword [esi + 0x40]
mov eax, dword [esi + 0x40]
cmp eax, 0x10
jb 0x413780
push 3
lea eax, [esi + 0x48]
push eax
push dword [esi]
call fcn.00402dd0
add esp, 0xc
jmp case.0x41192e.8
xor edx, edx
mov ebx, 1
jmp dword [ebx*4 + 0x442ae4]
jmp dword [ebx*4 + 0x442ae4]
mov word [esi + 0x78], 0x65f6
mov dword [esi + 0x7a], 0
mov dword [esi + 0x7e], 0
mov dword [esi + 0x82], 0
mov byte [esi + 0x86], 0
mov dword [esi + 0x10], 0
mov eax, dword [esi + 0x10]
cmp eax, 0xe
ja 0x413e4c
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esi + 0x10]
mov ecx, dword [esi + 0x10]
movzx ecx, byte [esi + ecx + 0x78]
add eax, 0xf71cecf1
xor eax, ecx
mov dword [esi + 0x20], eax
mov eax, dword [esi + 0x20]
add al, 0x69
mov ecx, dword [esi + 0x10]
mov byte [esi + ecx + 0x78], al
inc dword [esi + 0x10]
mov eax, dword [esi + 0x10]
cmp eax, 0xf
jb 0x413e20
lea eax, [esi + 0x78]
push eax
push dword [esi]
call fcn.00402700
add esp, 8
mov dword [esi + 0x38], eax
mov word [esi + 0x78], 0x6d81
mov dword [esi + 0x7a], 0
mov dword [esi + 0x7e], 0
mov dword [esi + 0x82], 0
mov byte [esi + 0x86], 0
mov dword [esi + 0x10], 0
mov eax, dword [esi + 0x10]
cmp eax, 0xe
ja 0x413eec
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esi + 0x10]
mov ecx, dword [esi + 0x10]
movzx ecx, byte [esi + ecx + 0x78]
mov edx, eax
and edx, 0xb3cf0ae
xor eax, 0x8b3cf0ae
lea eax, [eax + edx*2]
lea edx, [eax + ecx]
and eax, ecx
add eax, eax
sub edx, eax
mov dword [esi + 0x20], edx
mov eax, dword [esi + 0x20]
add al, 0x3e
mov ecx, dword [esi + 0x10]
mov byte [esi + ecx + 0x78], al
mov eax, dword [esi + 0x10]
mov ecx, eax
xor ecx, 1
and eax, 1
lea eax, [ecx + eax*2]
mov dword [esi + 0x10], eax
mov eax, dword [esi + 0x10]
cmp eax, 0xf
jb 0x413ea0
lea eax, [esi + 0x78]
push eax
push dword [esi]
call fcn.00402980
add esp, 8
mov dword [esi + 0x34], eax
mov word [esi + 0x78], 0x4dc2
mov dword [esi + 0x7a], 0
mov dword [esi + 0x7e], 0
mov dword [esi + 0x82], 0
mov dword [esi + 0x10], 0
mov eax, dword [esi + 0x10]
cmp eax, 0xd
ja 0x413f76
nop
nop
nop
nop
nop
nop
mov edx, dword [esi + 0x10]
mov eax, dword [esi + 0x10]
movzx ecx, byte [esi + eax + 0x78]
lea eax, [edx + 0xb6]
and eax, ecx
mov ebx, 0x57fa6949
sub ebx, edx
or ebx, ecx
not ebx
add ebx, ecx
sub ebx, eax
mov dword [esi + 0x20], ebx
mov eax, dword [esi + 0x20]
mov ecx, eax
or ecx, 5
and eax, 5
add eax, ecx
inc al
mov ecx, dword [esi + 0x10]
mov byte [esi + ecx + 0x78], al
inc dword [esi + 0x10]
mov eax, dword [esi + 0x10]
cmp eax, 0xe
jb 0x413f30
lea eax, [esi + 0x78]
push eax
push dword [esi]
call fcn.00402700
add esp, 8
mov dword [esi + 0x5c], eax
mov word [esi + 0x78], 0x45e2
mov dword [esi + 0x7a], 0
mov dword [esi + 0x7e], 0
mov dword [esi + 0x82], 0
mov word [esi + 0x86], 0
mov dword [esi + 0x10], 0
mov eax, dword [esi + 0x10]
cmp eax, 0xf
ja 0x414003
nop
nop
nop
mov eax, dword [esi + 0x10]
mov ecx, dword [esi + 0x10]
movzx edx, byte [esi + ecx + 0x78]
lea ecx, [eax + edx]
add ecx, 0x4fc130b5
add eax, 0x4fc130b5
and eax, edx
add eax, eax
mov edx, eax
xor edx, ecx
not eax
and eax, ecx
add eax, eax
sub eax, edx
mov dword [esi + 0x20], eax
mov eax, dword [esi + 0x20]
add al, 0xd
mov ecx, dword [esi + 0x10]
mov byte [esi + ecx + 0x78], al
inc dword [esi + 0x10]
mov eax, dword [esi + 0x10]
cmp eax, 0x10
jb 0x413fc0
lea eax, [esi + 0x78]
push eax
push dword [esi]
call fcn.00402840
add esp, 8
fnstcw word [esi + 0xfc]
movzx eax, word [esi + 0xfc]
or eax, 0xc00
mov word [esi + 0x128], ax
fldcw word [esi + 0x128]
fistp dword [esi + 0x188]
fldcw word [esi + 0xfc]
mov eax, dword [esi + 0x188]
mov dword [esi + 0x3c], eax
mov word [esi + 0x78], 0xd0ec
mov byte [esi + 0x7a], 0x44
mov dword [esi + 0x7b], 0
mov dword [esi + 0x7e], 0
mov dword [esi + 0x10], 0
mov eax, dword [esi + 0x10]
cmp eax, 9
ja 0x4140a6
nop
nop
nop
nop
mov eax, dword [esi + 0x10]
mov ecx, dword [esi + 0x10]
movzx ecx, byte [esi + ecx + 0x78]
lea edx, [eax - 0x5cfbc10b]
add eax, 0xf5
and eax, ecx
or edx, ecx
sub edx, eax
mov dword [esi + 0x20], edx
mov eax, dword [esi + 0x20]
add al, 0x4d
mov ecx, dword [esi + 0x10]
mov byte [esi + ecx + 0x78], al
inc dword [esi + 0x10]
mov eax, dword [esi + 0x10]
cmp eax, 0xa
jb 0x414070
lea eax, [esi + 0x78]
push eax
push dword [esi]
call fcn.00402840
add esp, 8
fnstcw word [esi + 0xfa]
movzx eax, word [esi + 0xfa]
or eax, 0xc00
mov word [esi + 0x126], ax
fldcw word [esi + 0x126]
fistp dword [esi + 0x184]
fldcw word [esi + 0xfa]
mov eax, dword [esi + 0x184]
mov dword [esi + 0xe4], eax
mov word [esi + 0x78], 0x292c
mov byte [esi + 0x7a], 0x94
mov dword [esi + 0x7b], 0
mov dword [esi + 0x7f], 0
mov dword [esi + 0x83], 0
mov byte [esi + 0x87], 0
mov dword [esi + 0x10], 0
mov eax, dword [esi + 0x10]
cmp eax, 0xf
ja 0x414176
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esi + 0x10]
mov ecx, dword [esi + 0x10]
movzx ecx, byte [esi + ecx + 0x78]
lea edx, [eax + 0xbd]
and edx, ecx
add eax, ecx
add edx, edx
sub eax, edx
add eax, 0xe657e5bd
mov dword [esi + 0x20], eax
mov eax, dword [esi + 0x20]
mov ecx, eax
xor ecx, 0xd4
and eax, 0x54
lea eax, [ecx + eax*2]
inc al
mov ecx, dword [esi + 0x10]
mov byte [esi + ecx + 0x78], al
inc dword [esi + 0x10]
mov eax, dword [esi + 0x10]
cmp eax, 0x10
jb 0x414130
lea eax, [esi + 0x78]
push eax
push dword [esi]
call fcn.00402ac0
add esp, 8
mov dword [esi + 0x44], eax
mov edi, 0xffffffff
mov eax, dword [esi + 0x38]
nop
cmp byte [eax + edi + 1], 0
lea edi, [edi + 1]
jne 0x414190
mov edx, eax
add edx, edi
mov dword [esi + 4], 0
test edi, edi
mov dword [esi], edx
jle 0x4141e9
cmp byte [eax], 0
je 0x4141e9
mov dword [esi + 4], 0
mov ebx, dword [esi + 0x38]
nop
nop
nop
nop
nop
nop
mov dword [esi + 0x78], 0
lea eax, [esi + 0x78]
push eax
push edx
push ebx
call fcn.0040fb10
mov edx, dword [esi]
add esp, 0xc
lea ecx, [ebx + eax]
inc dword [esi + 4]
cmp ecx, edx
jae 0x4141e9
cmp byte [ebx + eax], 0
mov ebx, ecx
jne 0x4141c0
mov ebx, dword [esi + 4]
mov eax, ebx
inc eax
lea eax, [ebx + ebx + 2]
jns 0x4141fa
mov eax, 0xffffffff
push eax
call fcn.004093a0
add esp, 4
mov dword [esi + 0x78], 0
lea ecx, [eax + ebx*2]
mov ebx, eax
mov dword [esi + 0x30], eax
mov dword [esi + 0xc], ecx
cmp ecx, eax
mov ecx, dword [esi + 0x38]
mov edx, dword [esi]
jbe 0x41425e
mov ebx, dword [esi + 0x30]
test edi, edi
jle 0x41425e
mov ebx, dword [esi + 0x30]
nop
nop
nop
nop
nop
nop
nop
nop
cmp byte [ecx], 0
je 0x41425e
lea eax, [esi + 0x78]
push eax
push edx
push ecx
mov edi, ecx
call fcn.0040fb10
add esp, 0xc
movzx ecx, word [esi + 0x78]
mov word [ebx], cx
add ebx, 2
cmp ebx, dword [esi + 0xc]
jae 0x41425e
add edi, eax
mov edx, dword [esi]
cmp edi, edx
mov ecx, edi
jb 0x414230
mov word [ebx], 0
lea eax, [esi + 0x10]
push eax
push 0
push 0
mov ebx, dword [esi + 4]
push ebx
push dword [esi + 0x30]
push 0
call dword [0x448ad0]
mov edi, dword [esi + 0x10]
lea eax, [edi + edi]
test edi, edi
jns 0x414289
mov eax, 0xffffffff
push eax
call fcn.004093a0
add esp, 4
mov ecx, eax
lea eax, [esi + 0x10]
push eax
push edi
mov dword [esi + 0xe8], ecx
push ecx
push ebx
mov edi, dword [esi + 0x30]
push edi
push 0
call dword [0x448ad0]
jmp dword [0x4427fc]
push edi
call fcn.004093b0
add esp, 4
mov ecx, dword [esi + 0x5c]
mov eax, ecx
jmp 0x414526
mov ecx, dword [esi + 0x5c]
mov edx, ecx
jmp 0x41451e
movzx eax, al
xor edx, edx
jmp dword [eax*4 + 0x4427f4]
mov word [esi + 0x78], 0x65f6
mov dword [esi + 0x7a], 0
mov dword [esi + 0x7e], 0
mov dword [esi + 0x81], 0
mov dword [esi + 8], 0
mov eax, dword [esi + 8]
cmp eax, 0xc
ja 0x41434d
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esi + 8]
mov ecx, dword [esi + 8]
movzx ebx, byte [esi + ecx + 0x78]
lea ecx, [eax + 0x5e962f71]
mov edx, ecx
and edx, ebx
xor ecx, ebx
add eax, 0x71
and eax, ebx
add eax, edx
sub ecx, eax
lea eax, [ecx + edx*2]
mov dword [esi + 0x70], eax
mov eax, dword [esi + 0x70]
add al, 0xe9
mov ecx, dword [esi + 8]
mov byte [esi + ecx + 0x78], al
inc dword [esi + 8]
mov eax, dword [esi + 8]
cmp eax, 0xd
jb 0x414310
push 2
lea eax, [esi + 0x78]
push eax
push dword [esi]
call fcn.00402dd0
add esp, 0xc
mov word [esi + 0x78], 0x65f6
mov dword [esi + 0x7a], 0
mov dword [esi + 0x7e], 0
mov dword [esi + 0x81], 0
mov dword [esi + 8], 0
mov eax, dword [esi + 8]
cmp eax, 0xc
ja 0x4143cd
nop
nop
nop
nop
nop
nop
mov eax, dword [esi + 8]
mov ecx, dword [esi + 8]
movzx ebx, byte [esi + ecx + 0x78]
lea ecx, [eax + 0x5e962f71]
mov edx, ecx
and edx, ebx
xor ecx, ebx
add eax, 0x71
and eax, ebx
add eax, edx
sub ecx, eax
lea eax, [ecx + edx*2]
mov dword [esi + 0x70], eax
mov eax, dword [esi + 0x70]
add al, 0xe9
mov ecx, dword [esi + 8]
mov byte [esi + ecx + 0x78], al
inc dword [esi + 8]
mov eax, dword [esi + 8]
cmp eax, 0xd
jb 0x414390
push 2
lea eax, [esi + 0x78]
push eax
push dword [esi]
call fcn.00402dd0
add esp, 0xc
jmp dword [0x4427d0]
xor ecx, ecx
test eax, eax
setne cl
mov al, 1
mov ebx, 1
jmp dword [ecx*4 + 0x4427d4]
mov word [esi + 0x20], 0x3585
mov dword [esi + 0x22], 0
mov dword [esi + 0x26], 0
mov word [esi + 0x2a], 0
mov dword [esi + 8], 0
mov eax, dword [esi + 8]
cmp eax, 0xb
ja 0x414469
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esi + 8]
mov ecx, dword [esi + 8]
movzx ecx, byte [esi + ecx + 0x20]
lea edx, [eax + ecx]
add edx, 0xa9c718d9
add eax, 0xa9c718d9
and eax, ecx
add eax, eax
sub edx, eax
mov dword [esi + 0x70], edx
mov eax, dword [esi + 0x70]
add al, 0x11
mov ecx, dword [esi + 8]
mov byte [esi + ecx + 0x20], al
inc dword [esi + 8]
mov eax, dword [esi + 8]
cmp eax, 0xc
jb 0x414430
push 5
lea eax, [esi + 0x20]
push eax
push dword [esi]
call fcn.00402dd0
add esp, 0xc
xor ecx, ecx
test eax, eax
setne cl
mov al, 1
jmp dword [ecx*4 + 0x4427dc]
mov word [esi + 0x10], 0x8d12
mov dword [esi + 0x12], 0
mov dword [esi + 0x15], 0
mov dword [esi + 8], 0
mov eax, dword [esi + 8]
cmp eax, 8
ja 0x4144f9
nop
nop
nop
nop
mov edx, dword [esi + 8]
mov eax, dword [esi + 8]
movzx ebx, byte [esi + eax + 0x10]
lea eax, [edx - 0x743efdc2]
lea ecx, [edx + ebx]
add ecx, 0x8bc1023e
add edx, 0x3e
and edx, ebx
and eax, ebx
add eax, edx
mov edx, eax
xor edx, ecx
not eax
and eax, ecx
add eax, eax
sub eax, edx
mov dword [esi + 0x70], eax
mov eax, dword [esi + 0x70]
add al, 0x4e
mov ecx, dword [esi + 8]
mov byte [esi + ecx + 0x10], al
inc dword [esi + 8]
mov eax, dword [esi + 8]
cmp eax, 9
jb 0x4144b0
push 2
lea eax, [esi + 0x10]
push eax
push dword [esi]
call fcn.00402dd0
add esp, 0xc
xor ecx, ecx
test eax, eax
setne cl
mov ebx, 1
mov al, 1
jmp dword [ecx*4 + 0x4427e4]
lea eax, [edx + 1]
cmp byte [edx], 0
je 0x41452a
mov edx, eax
jmp 0x41451e
mov eax, edx
sub eax, ecx
xor edi, edi
mov dword [esi + 0xc], eax
test eax, eax
mov dword [esi], edx
jle 0x414577
cmp byte [ecx], 0
je 0x414577
xor edi, edi
mov ebx, dword [esi + 0x5c]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov dword [esi + 0x78], 0
lea eax, [esi + 0x78]
push eax
push edx
push ebx
call fcn.0040fb10
mov edx, dword [esi]
add esp, 0xc
lea ecx, [ebx + eax]
inc edi
cmp ecx, edx
jae 0x414577
cmp byte [ebx + eax], 0
mov ebx, ecx
jne 0x414550
mov eax, edi
inc eax
lea eax, [edi + edi + 2]
jns 0x414585
mov eax, 0xffffffff
push eax
call fcn.004093a0
add esp, 4
mov dword [esi + 0x78], 0
lea ecx, [eax + edi*2]
mov edi, eax
mov dword [esi + 0x38], eax
mov dword [esi + 4], ecx
cmp ecx, eax
mov ebx, dword [esi + 0x5c]
mov edx, dword [esi]
jbe 0x4145ea
mov edi, dword [esi + 0x38]
cmp dword [esi + 0xc], 0
jle 0x4145ea
mov edi, dword [esi + 0x38]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp byte [ebx], 0
je 0x4145ea
lea eax, [esi + 0x78]
push eax
push edx
push ebx
call fcn.0040fb10
add esp, 0xc
movzx ecx, word [esi + 0x78]
mov word [edi], cx
add edi, 2
cmp edi, dword [esi + 4]
jae 0x4145ea
add ebx, eax
mov edx, dword [esi]
cmp ebx, edx
jb 0x4145c0
mov word [edi], 0
lea ecx, [esi + 0x78]
push 1
call fcn.00409aa0
mov dword [esi + 0xc], 0
mov ebx, 1
mov edi, dword [esi + 0x34]
jmp dword [0x442804]
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret