Function at 0x410508
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff8
sub esp, 0xcf0
mov ecx, dword [0x440c74]
mov dword [esp + 0xd0], 0xfb3763e0
mov dword [esp + 0xd4], 0
mov dword [esp + 0xd8], 0
mov word [esp + 0xdc], 0
mov dword [esp + 0x28], 0
mov eax, dword [esp + 0x28]
cmp eax, 0xd
ja 0x40ec77
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp + 0x28]
mov edx, dword [esp + 0x28]
movzx edx, byte [esp + edx + 0xd0]
lea esi, [eax + edx]
add esi, 0x821f3e1f
add eax, 0x821f3e1f
and eax, edx
add eax, eax
sub esi, eax
mov dword [esp + 0x2e0], esi
mov eax, dword [esp + 0x2e0]
mov edx, eax
xor edx, 0x26
and eax, 0x26
lea eax, [edx + eax*2]
inc al
mov edx, dword [esp + 0x28]
mov byte [esp + edx + 0xd0], al
inc dword [esp + 0x28]
mov eax, dword [esp + 0x28]
cmp eax, 0xe
jb 0x40ec20
mov edx, dword [str.eLMNFu__Shell]
mov dword [esp + 0x2e0], 0x7ea69291
mov dword [esp + 0x2e4], 0xae9590a6
mov dword [esp + 0x2e8], 0xb6858cbe
mov dword [esp + 0x2ec], 0x8ebdbe89
mov dword [esp + 0x2f0], 0xb5448487
mov dword [esp + 0x2f4], 0x736bb781
mov dword [esp + 0x2f8], 0x877c4946
mov dword [esp + 0x2fc], 0x1f53b985
mov dword [esp + 0x300], 0
mov byte [esp + 0x304], 0
mov dword [esp + 0x260], 0
mov eax, dword [esp + 0x260]
cmp eax, 0x24
ja 0x40ed55
nop
mov eax, dword [esp + 0x260]
mov esi, dword [esp + 0x260]
movzx edi, byte [esp + esi + 0x2e0]
mov esi, 0xfc1395f7
sub esi, eax
add eax, 8
and eax, edi
or esi, edi
not esi
add esi, edi
sub esi, eax
mov dword [esp + 0x28], esi
mov eax, dword [esp + 0x28]
add al, 0xc8
mov esi, dword [esp + 0x260]
mov byte [esp + esi + 0x2e0], al
inc dword [esp + 0x260]
mov eax, dword [esp + 0x260]
cmp eax, 0x25
jb 0x40ed00
movzx ebx, byte [esp + 0x2e0]
lea eax, [esp + 0x260]
test bl, bl
je 0x40ed7b
lea esi, [esp + 0x2e1]
nop
mov byte [eax], bl
inc eax
movzx ebx, byte [esi]
inc esi
test bl, bl
jne 0x40ed70
mov byte [eax], 0
movzx ebx, byte [edx]
test bl, bl
je 0x40ed9b
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 0x40ed90
mov byte [eax], 0
movzx edx, byte [esp + 0xd0]
test dl, dl
je 0x40edcb
lea esi, [esp + 0xd1]
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 0x40edc0
mov byte [eax], 0
movzx edx, byte [ecx]
test dl, dl
je 0x40edeb
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 0x40ede0
mov byte [eax], 0
lea ecx, [esp + 0x260]
mov dword [esp + 0x2e0], 0x73c16dab
mov dword [esp + 0x2e4], 0x77c271c2
mov dword [esp + 0x2e8], 0x7bc875d1
mov dword [esp + 0x2ec], 0x7f9379cc
mov dword [esp + 0x2f0], 0x43fb7da8
mov dword [esp + 0x2f4], 0x47e341f0
mov dword [esp + 0x2f8], 0x4baa45ba
mov dword [esp + 0x2fc], 0x4ffe49e9
mov dword [esp + 0x300], 0x53fe4dfc
mov dword [esp + 0x304], 0x57f151f9
mov dword [esp + 0x308], 0x5bee55f5
mov dword [esp + 0x30c], 0x5fed59f1
mov dword [esp + 0x310], 0x23d15dee
mov dword [esp + 0x314], 0x27cb2198
mov dword [esp + 0x318], 0x2b91259f
mov dword [esp + 0x31c], 0x2fc32993
mov dword [esp + 0x320], 0x33812d86
mov dword [esp + 0x324], 0x379b3186
mov dword [esp + 0x328], 0x3b8f35d9
mov dword [esp + 0x32c], 0x3f92398e
mov dword [esp + 0x330], 0x3b03d99
mov dword [esp + 0x334], 0x7b501a7
mov dword [esp + 0x338], 0xbaf05a0
mov dword [esp + 0x33c], 0xf0309ac
mov dword [esp + 0x340], 0x13120d02
mov dword [esp + 0x34b], 0
mov dword [esp + 0x348], 0
mov dword [esp + 0x344], 0
mov dword [esp + 0x28], 0
mov edx, dword [esp + 0x28]
cmp edx, 0x6e
ja 0x40ef8b
nop
nop
nop
nop
nop
nop
mov edx, dword [esp + 0x28]
mov esi, dword [esp + 0x28]
movzx esi, byte [esp + esi + 0x2e0]
lea edi, [edx - 0x4e5a1772]
add edx, 0x8e
and edx, esi
or edi, esi
sub edi, edx
mov dword [esp + 0xd0], edi
mov edx, dword [esp + 0xd0]
add dl, 0x1e
mov esi, dword [esp + 0x28]
mov byte [esp + esi + 0x2e0], dl
inc dword [esp + 0x28]
mov edx, dword [esp + 0x28]
cmp edx, 0x6f
jb 0x40ef40
sub eax, ecx
mov dword [esp + 0xd0], 0xab0badff
mov dword [esp + 0xd4], 0x973fa938
mov word [esp + 0xd8], 0x9594
mov dword [esp + 0xda], 0
mov dword [esp + 0xde], 0
mov byte [esp + 0xe2], 0
mov dword [esp + 0x1d0], 0
mov edx, dword [esp + 0x1d0]
cmp edx, 0x12
ja 0x40f059
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov edx, dword [esp + 0x1d0]
mov esi, dword [esp + 0x1d0]
movzx esi, byte [esp + esi + 0xd0]
lea edi, [edx + esi]
add edi, 0x623bc99a
add edx, 0x623bc99a
and edx, esi
add edx, edx
sub edi, edx
mov dword [esp + 0x28], edi
mov edx, dword [esp + 0x28]
add dl, 0xca
mov esi, dword [esp + 0x1d0]
mov byte [esp + esi + 0xd0], dl
mov edx, dword [esp + 0x1d0]
mov esi, edx
and esi, 1
xor edx, 1
lea edx, [edx + esi*2]
mov dword [esp + 0x1d0], edx
mov edx, dword [esp + 0x1d0]
cmp edx, 0x13
jb 0x40eff0
lea edx, [esp + 0xc8]
lea esi, [esp + 0xb8]
lea ebx, [esp + 0x2e0]
lea edi, [esp + 0xd0]
push edx
push esi
push eax
push ecx
push ebx
push edi
push 0x446454
call fcn.0040c640
add esp, 0x1c
movzx eax, al
jmp dword [eax*4 + 0x44172c]
xor esi, esi
xor ebx, ebx
test esi, esi
sete bl
xor eax, eax
jmp dword [ebx*4 + 0x441734]
push 0x104
push ebx
call dword [sym.imp.KERNEL32.dll_GetSystemDirectoryW]
mov ecx, dword [esp + 0xc8]
mov ebx, dword [esp + 0xb8]
mov edx, ecx
and edx, 0xfffffffc
mov esi, ecx
and esi, 3
mov eax, ecx
or eax, 3
imul eax, esi
xor esi, 3
imul esi, edx
add eax, esi
shr eax, 2
movzx edx, byte [ecx + ebx - 1]
cmp edx, 0x3d
je 0x40f0ea
cmp edx, 0x2e
jne 0x40f0eb
dec eax
movzx ecx, byte [ecx + ebx - 2]
cmp ecx, 0x3d
je 0x40f0fa
cmp ecx, 0x2e
jne 0x40f0fb
dec eax
push eax
call fcn.00408f00
add esp, 4
mov esi, eax
push eax
push ebx
call fcn.00434140
add esp, 8
push dword [esp + 0xb8]
call fcn.00437510
add esp, 4
xor ebx, ebx
test esi, esi
sete bl
xor eax, eax
jmp dword [ebx*4 + 0x441734]
jmp dword [0x441740]
push esi
call fcn.00401f00
add esp, 4
nop
nop
push esi
call fcn.00401f00
add esp, 4
jmp dword [0x441744]
jmp dword [ebx*4 + 0x44174c]
push esi
mov esi, eax
call fcn.00408f10
mov eax, esi
add esp, 4
mov dword [esp + 0xb0], eax
push eax
call fcn.004028d0
add esp, 4
mov esi, eax
mov word [esp + 0x2e0], 0x2c26
mov byte [esp + 0x2e2], 0xda
mov dword [esp + 0x2e3], 0
mov dword [esp + 0x2e7], 0
mov dword [esp + 0x2ea], 0
mov dword [esp + 0x28], 0
mov eax, dword [esp + 0x28]
cmp eax, 0xd
ja 0x40f207
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp + 0x28]
mov ecx, dword [esp + 0x28]
movzx ecx, byte [esp + ecx + 0x2e0]
lea edx, [eax - 0x71e84be4]
add eax, 0x1c
and eax, ecx
or edx, ecx
sub edx, eax
mov dword [esp + 0xd0], edx
mov eax, dword [esp + 0xd0]
add al, 0x3c
mov ecx, dword [esp + 0x28]
mov byte [esp + ecx + 0x2e0], al
inc dword [esp + 0x28]
mov eax, dword [esp + 0x28]
cmp eax, 0xe
jb 0x40f1c0
lea ebx, [esp + 0x2e0]
push ebx
push esi
call fcn.00402940
add esp, 8
xor ecx, ecx
test eax, eax
setg cl
jmp dword [ecx*4 + 0x441754]
xor eax, eax
movzx eax, al
jmp dword [eax*4 + 0x44175c]
mov eax, dword [case.0x40f30b.5]
nop
nop
nop
nop
nop
nop
nop
nop
nop
jmp eax
mov esi, dword [esp + 0xb0]
jmp dword [0x441774]
push esi
call fcn.00402b30
add esp, 4
nop
nop
nop
nop
nop
nop
nop
nop
push esi
call fcn.00402b30
add esp, 4
xor eax, eax
jmp dword [0x44177c]
mov dword [esp + 0x2e0], 0x1bdad9d8
mov dword [esp + 0x2e8], 0
mov dword [esp + 0x2e4], 0
mov dword [esp + 0x28], 0
mov eax, dword [esp + 0x28]
cmp eax, 0xb
ja 0x40f2f9
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp + 0x28]
mov ecx, dword [esp + 0x28]
movzx ecx, byte [esp + ecx + 0x2e0]
lea edx, [eax + 0xf01c]
add eax, 0x1c
or eax, edx
and eax, ecx
or edx, ecx
sub edx, eax
mov dword [esp + 0xd0], edx
mov eax, dword [esp + 0xd0]
add al, 0x3c
mov ecx, dword [esp + 0x28]
mov byte [esp + ecx + 0x2e0], al
inc dword [esp + 0x28]
mov eax, dword [esp + 0x28]
cmp eax, 0xc
jb 0x40f2b0
push dword [esp + 0x2e0]
call fcn.00432f90
add esp, 4
movzx eax, al
jmp dword [eax*4 + 0x44175c]
mov dword [esp + 0x24], esi
mov word [esp + 0x2e0], 0xc9cd
mov byte [esp + 0x2e2], 0x72
mov dword [esp + 0x2e3], 0
mov dword [esp + 0x2e6], 0
mov dword [esp + 0x28], 0
mov eax, dword [esp + 0x28]
cmp eax, 9
ja 0x40f3b0
nop
mov eax, dword [esp + 0x28]
mov ecx, dword [esp + 0x28]
movzx ecx, byte [esp + ecx + 0x2e0]
lea edx, [eax + 0x5247234e]
lea esi, [eax + 0x4e]
or edx, esi
and esi, ecx
and edx, ecx
add edx, esi
add eax, ecx
add eax, 0x5247234e
sub eax, edx
mov dword [esp + 0xd0], eax
mov eax, dword [esp + 0xd0]
mov ecx, eax
xor ecx, 0xdd
and eax, 0x5d
lea eax, [ecx + eax*2]
inc al
mov ecx, dword [esp + 0x28]
mov byte [esp + ecx + 0x2e0], al
inc dword [esp + 0x28]
mov eax, dword [esp + 0x28]
cmp eax, 0xa
jb 0x40f350
push ebx
push dword [esp + 0x28]
call fcn.00402940
add esp, 8
mov dword [esp + 0xc0], eax
mov word [esp + 0x2e0], 0xefb
mov byte [esp + 0x2e2], 0x64
mov dword [esp + 0x2e3], 0
mov word [esp + 0x2e7], 0
mov dword [esp + 0x28], 0
mov eax, dword [esp + 0x28]
cmp eax, 8
ja 0x40f45a
nop
nop
nop
nop
mov eax, dword [esp + 0x28]
mov ecx, dword [esp + 0x28]
movzx ecx, byte [esp + ecx + 0x2e0]
lea edx, [eax + 0x1f8752f1]
lea esi, [eax + 0xf1]
mov ebx, esi
and ebx, edx
and ebx, ecx
xor esi, edx
and esi, ecx
add eax, ecx
add eax, 0x1f8752f1
lea ecx, [esi + ebx*2]
sub eax, ecx
mov dword [esp + 0xd0], eax
mov eax, dword [esp + 0xd0]
add al, 0x69
mov ecx, dword [esp + 0x28]
mov byte [esp + ecx + 0x2e0], al
inc dword [esp + 0x28]
mov eax, dword [esp + 0x28]
cmp eax, 9
jb 0x40f400
lea eax, [esp + 0x2e0]
push eax
mov esi, dword [esp + 0x28]
push esi
call fcn.00402940
add esp, 8
xor ecx, ecx
test eax, eax
setg cl
mov dword [esp + 0xbc], ecx
push esi
call fcn.00410170
add esp, 4
push dword [esp + 0xb0]
call fcn.00402b30
add esp, 4
lea ebx, [esp + 0x1d0]
mov ecx, ebx
push 1
call fcn.004097c0
push ebx
call fcn.0041d980
add esp, 4
mov ecx, ebx
call fcn.0040a160
lea ebx, [esp + 0xc80]
mov ecx, ebx
push 3
call fcn.004097c0
push ebx
call fcn.0041e140
add esp, 4
mov ecx, ebx
call fcn.0040a160
lea ebx, [esp + 0xc18]
mov ecx, ebx
push 1
call fcn.004097c0
push ebx
call fcn.0041e370
add esp, 4
mov ecx, ebx
call fcn.0040a160
lea ebx, [esp + 0xbb0]
mov ecx, ebx
push 1
call fcn.004097c0
push ebx
call fcn.00420340
add esp, 4
push ebx
call fcn.00420ca0
add esp, 4
push ebx
call fcn.00421150
add esp, 4
mov ecx, ebx
call fcn.0040a160
lea ebx, [esp + 0xb48]
mov ecx, ebx
push 1
call fcn.004097c0
push ebx
call fcn.00422f60
add esp, 4
mov ecx, ebx
call fcn.0040a160
lea ebx, [esp + 0xae0]
mov ecx, ebx
push 1
call fcn.004097c0
push ebx
call fcn.00425000
add esp, 4
push ebx
call fcn.0042dc00
add esp, 4
mov eax, dword [esp + 0xbc]
jmp dword [eax*4 + 0x441784]
push ebx
call fcn.0042ddd0
add esp, 4
lea ecx, [esp + 0xae0]
call fcn.0040a160
lea eax, [esp + 0x23f]
push eax
call fcn.00433a20
add esp, 4
mov dword [esp + 0x28], 0xa4bdad6c
mov word [esp + 0x2c], 0x72ae
mov byte [esp + 0x2e], 0x30
mov word [esp + 0x2f], 0
mov byte [esp + 0x31], 0
mov dword [esp + 0xd0], 0
mov eax, dword [esp + 0xd0]
cmp eax, 9
ja 0x40f63a
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp + 0xd0]
mov ecx, dword [esp + 0xd0]
movzx ecx, byte [esp + ecx + 0x28]
lea edx, [eax + 0x33f74529]
mov ebx, ecx
not ebx
or ebx, edx
and edx, ecx
add edx, ebx
neg edx
add eax, edx
add eax, 0x33f74528
mov dword [esp + 0x2e0], eax
mov eax, dword [esp + 0x2e0]
add al, 0xe1
mov ecx, dword [esp + 0xd0]
mov byte [esp + ecx + 0x28], al
inc dword [esp + 0xd0]
mov eax, dword [esp + 0xd0]
cmp eax, 0xa
jb 0x40f5e0
mov eax, dword [0x440c74]
mov dword [esp], 0xfbb763e0
mov dword [esp + 4], 0
mov byte [esp + 8], 0
mov dword [esp + 0xd0], 0
mov ecx, dword [esp + 0xd0]
cmp ecx, 8
ja 0x40f6c3
nop
nop
nop
nop
nop
nop
mov ecx, dword [esp + 0xd0]
mov edx, dword [esp + 0xd0]
movzx edx, byte [esp + edx]
mov ebx, ecx
xor ebx, 0x3b572adf
and ecx, 0x3b572adf
lea ecx, [ebx + ecx*2]
xor ecx, edx
mov dword [esp + 0x2e0], ecx
mov ecx, dword [esp + 0x2e0]
add cl, 0xe7
mov edx, dword [esp + 0xd0]
mov byte [esp + edx], cl
inc dword [esp + 0xd0]
mov ecx, dword [esp + 0xd0]
cmp ecx, 9
jb 0x40f670
mov ecx, dword [str.eLMNFu__Shell]
mov dword [esp + 0x2e0], 0xb4ccdcc5
mov dword [esp + 0x2e4], 0xdec8dac3
mov dword [esp + 0x2e8], 0xc6c5d6c1
mov dword [esp + 0x2ec], 0x91d3ccd1
mov dword [esp + 0x2f0], 0x84faeec0
mov dword [esp + 0x2f4], 0xa9bcb3be
mov dword [esp + 0x2f8], 0x8ce4faf2
mov byte [esp + 0x2fc], 0x42
mov word [esp + 0x2fd], 0
mov byte [esp + 0x2ff], 0
mov dword [esp + 0x14], 0
mov edx, dword [esp + 0x14]
cmp edx, 0x1f
ja 0x40f79e
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov edx, dword [esp + 0x14]
mov ebx, dword [esp + 0x14]
movzx ebx, byte [esp + ebx + 0x2e0]
lea esi, [edx + ebx]
add esi, 0xf016e80f
add edx, 0xf016e80f
and edx, ebx
add edx, edx
sub esi, edx
mov dword [esp + 0xd0], esi
mov edx, dword [esp + 0xd0]
add dl, 0x97
mov esi, dword [esp + 0x14]
mov byte [esp + esi + 0x2e0], dl
inc dword [esp + 0x14]
mov edx, dword [esp + 0x14]
cmp edx, 0x20
jb 0x40f750
movzx edx, byte [esp + 0x2e0]
test dl, dl
je 0x40f7cb
lea edi, [esp + 0xd0]
lea ebx, [esp + 0x2e1]
nop
nop
nop
nop
nop
nop
nop
nop
mov byte [edi], dl
inc edi
movzx edx, byte [ebx]
inc ebx
test dl, dl
jne 0x40f7c0
mov byte [edi], 0
movzx edx, byte [ecx]
test dl, dl
je 0x40f7eb
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 0x40f7e0
mov byte [edi], 0
movzx ecx, byte [esp]
test cl, cl
je 0x40f80b
lea edx, [esp + 1]
nop
nop
nop
nop
nop
nop
mov byte [edi], cl
inc edi
movzx ecx, byte [edx]
inc edx
test cl, cl
jne 0x40f800
mov byte [edi], 0
movzx ecx, byte [eax]
test cl, cl
je 0x40f82b
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 0x40f820
mov byte [edi], 0
movzx eax, byte [esp + 0x28]
test al, al
je 0x40f84b
lea ecx, [esp + 0x29]
nop
nop
nop
nop
nop
mov byte [edi], al
inc edi
movzx eax, byte [ecx]
inc ecx
test al, al
jne 0x40f840
mov byte [edi], 0
movzx eax, byte [esp + 0x23f]
test al, al
je 0x40f87b
lea ecx, [esp + 0x240]
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 0x40f870
mov byte [edi], 0
lea ecx, [esp + 0xd0]
mov edx, edi
xor edx, ecx
not ecx
and ecx, edi
add ecx, ecx
mov dword [esp + 0x2e0], 0x3b8939f3
mov dword [esp + 0x2e4], 0x3f883d94
mov dword [esp + 0x2e8], 0x3ae0199
mov dword [esp + 0x2ec], 0x7eb05b6
mov dword [esp + 0x2f0], 0xbb309d2
mov dword [esp + 0x2f4], 0xfab0dba
mov dword [esp + 0x2f8], 0x13f011f4
mov dword [esp + 0x2fc], 0x17a415b1
mov dword [esp + 0x300], 0x1bb419a6
mov dword [esp + 0x304], 0x1fb91db1
mov dword [esp + 0x308], 0xe354e1bd
mov dword [esp + 0x30c], 0xe755e549
mov dword [esp + 0x310], 0xeb19e948
mov dword [esp + 0x314], 0xef03ed52
mov dword [esp + 0x318], 0xf349f157
mov dword [esp + 0x31c], 0xf71bf54b
mov dword [esp + 0x320], 0xfb49f950
mov dword [esp + 0x324], 0xff53fd48
mov dword [esp + 0x328], 0xc377c111
mov dword [esp + 0x32c], 0xc768c570
mov dword [esp + 0x330], 0xcb66c961
mov dword [esp + 0x334], 0xcf7dcd6f
mov dword [esp + 0x338], 0xd377d16a
mov dword [esp + 0x33c], 0xd7dbd576
mov dword [esp + 0x340], 0xdbd8d9dc
mov dword [esp + 0x348], 0
mov dword [esp + 0x344], 0
mov dword [esp], 0
mov esi, dword [esp]
cmp esi, 0x6b
ja 0x40fa15
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov edi, dword [esp]
mov esi, dword [esp]
movzx esi, byte [esp + esi + 0x2e0]
lea ebx, [edi + 0x1fc38357]
mov eax, ebx
and eax, esi
xor ebx, esi
add edi, 0x57
and edi, esi
add edi, eax
sub ebx, edi
lea eax, [ebx + eax*2]
mov dword [esp + 0x28], eax
mov eax, dword [esp + 0x28]
add al, 0x9f
mov esi, dword [esp]
mov byte [esp + esi + 0x2e0], al
inc dword [esp]
mov eax, dword [esp]
cmp eax, 0x6c
jb 0x40f9d0
sub ecx, edx
mov dword [esp + 0x28], 0x5bfb59af
mov dword [esp + 0x2c], 0x57ef55e4
mov word [esp + 0x30], 0x5150
mov dword [esp + 0x32], 0
mov dword [esp + 0x36], 0
mov word [esp + 0x3a], 0
mov dword [esp + 0x14], 0
mov eax, dword [esp + 0x14]
cmp eax, 0x13
ja 0x40faad
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp + 0x14]
mov edx, dword [esp + 0x14]
movzx edx, byte [esp + edx + 0x28]
lea esi, [eax + edx]
add esi, 0xdeab2834
add eax, 0xdeab2834
and eax, edx
add eax, eax
sub esi, eax
mov dword [esp], esi
mov edx, dword [esp]
mov eax, edx
or eax, 0x93
and edx, 0x93
add edx, eax
inc dl
mov eax, dword [esp + 0x14]
mov byte [esp + eax + 0x28], dl
inc dword [esp + 0x14]
mov eax, dword [esp + 0x14]
cmp eax, 0x14
jb 0x40fa60
lea eax, [esp + 0xc4]
lea edx, [esp + 0xb4]
lea esi, [esp + 0x28]
push eax
push edx
push ecx
lea eax, [esp + 0xdc]
push eax
lea eax, [esp + 0x2f0]
push eax
push esi
push 0x446454
call fcn.0040c640
add esp, 0x1c
movzx eax, al
jmp dword [eax*4 + 0x44178c]
xor ebx, ebx
xor eax, eax
test ebx, ebx
setne al
jmp dword [eax*4 + 0x441794]
mov ecx, dword [esp + 0xc4]
mov edi, dword [esp + 0xb4]
mov edx, ecx
and edx, 0xfffffffc
mov esi, ecx
and esi, 3
mov eax, ecx
or eax, 3
imul eax, esi
xor esi, 3
imul esi, edx
add eax, esi
shr eax, 2
movzx edx, byte [ecx + edi - 1]
cmp edx, 0x3d
je 0x40fb34
cmp edx, 0x2e
jne 0x40fb35
dec eax
movzx ecx, byte [ecx + edi - 2]
cmp ecx, 0x3d
je 0x40fb44
cmp ecx, 0x2e
jne 0x40fb45
dec eax
push eax
call fcn.00408f00
add esp, 4
mov ebx, eax
push eax
push edi
call fcn.00434140
add esp, 8
push dword [esp + 0xb4]
call fcn.00437510
add esp, 4
xor eax, eax
test ebx, ebx
setne al
jmp dword [eax*4 + 0x441794]
jmp dword [0x4417a0]
xor eax, eax
cmp dword [esp + 0xc0], 0
setg al
jmp dword [eax*4 + 0x4417cc]
push 0
call fcn.0043a9c0
add esp, 4
xor ecx, ecx
test eax, eax
setne cl
jmp dword [ecx*4 + 0x4417d4]
mov dword [esp + 0x28], 0xc377c56b
mov dword [esp + 0x2c], 0xcf32c16e
mov dword [esp + 0x30], 0xcb74cd65
mov dword [esp + 0x34], 0xd728c961
mov dword [esp + 0x38], 0xd369d538
mov dword [esp + 0x3c], 0xdf7fd16e
mov dword [esp + 0x40], 0xdb60dd60
mov dword [esp + 0x44], 0xa729d93a
mov dword [esp + 0x48], 0xa313a515
mov dword [esp + 0x4c], 0xaf40a110
mov dword [esp + 0x50], 0xab1fad03
mov dword [esp + 0x54], 0xb75aa906
mov dword [esp + 0x58], 0xb30cb51d
mov dword [esp + 0x5c], 0xbf50b119
mov dword [esp + 0x60], 0xbb4dbd50
mov dword [esp + 0x64], 0x8758b917
mov dword [esp + 0x68], 0x8333853a
mov dword [esp + 0x6c], 0x8f2b8131
mov dword [esp + 0x70], 0x8b378d3f
mov dword [esp + 0x74], 0x97688936
mov dword [esp + 0x78], 0x93289567
mov dword [esp + 0x7c], 0x9f6d9172
mov dword [esp + 0x80], 0x9b6d9d7e
mov dword [esp + 0x84], 0x67299928
mov dword [esp + 0x88], 0x63da65c8
mov dword [esp + 0x8c], 0x6fcf61c9
mov dword [esp + 0x90], 0x6b8c6ddb
mov dword [esp + 0x94], 0x77886980
mov dword [esp + 0x98], 0x73df75da
mov dword [esp + 0x9c], 0x7f9071c6
mov dword [esp + 0xa0], 0x7b7c7d90
mov dword [esp + 0xa8], 0
mov dword [esp + 0xa4], 0
mov dword [esp], 0
mov ecx, dword [esp]
cmp ecx, 0x83
ja 0x40fd3b
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov ecx, dword [esp]
mov edx, dword [esp]
movzx edx, byte [esp + edx + 0x28]
mov esi, ecx
and esi, 0xee46a721
xor ecx, 0x6e46a721
lea ecx, [ecx + esi*2]
lea esi, [ecx + edx]
and ecx, edx
add ecx, ecx
sub esi, ecx
mov dword [esp + 0x2e0], esi
mov ecx, dword [esp + 0x2e0]
add cl, 0x19
mov edx, dword [esp]
mov byte [esp + edx + 0x28], cl
inc dword [esp]
mov ecx, dword [esp]
cmp ecx, 0x84
jb 0x40fcf0
movzx ecx, word [esp + 0x28]
test cx, cx
je 0x40fd61
lea edi, [esp + 0x2e0]
lea edx, [esp + 0x2a]
mov word [edi], cx
add edi, 2
movzx ecx, word [edx]
add edx, 2
test cx, cx
jne 0x40fd50
mov word [edi], 0
movzx ecx, word [eax]
test cx, cx
je 0x40fd91
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 0x40fd80
mov dword [edi], 0x220022
mov dword [edi + 4], 0x22
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 + 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], 0
mov dword [esp + 0x2c], 0
mov dword [esp + 0x28], 0x44
mov dword [esp + 0x54], 1
push 0xd3a7a30
push dword [0x44775c]
call fcn.0043aaf0
add esp, 8
lea ecx, [esp + 0x14]
lea edx, [esp + 0x2e0]
push ecx
lea ecx, [esp + 0x2c]
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 + 0x4417dc]
mov eax, dword [esp + 0x14]
mov dword [esp], 0xb2b5b4b7
mov dword [esp + 4], 0
mov dword [esp + 8], 0
mov word [esp + 0xc], 0
mov dword [esp + 0x10], 0
mov ecx, dword [esp + 0x10]
cmp ecx, 0xd
ja 0x40fef5
nop
mov esi, dword [esp + 0x10]
mov ecx, dword [esp + 0x10]
movzx edi, byte [esp + ecx]
lea ecx, [esi - 0x65e155e7]
lea edx, [esi + edi]
add edx, 0x9a1eaa19
add esi, 0x19
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 + 0xcc], ecx
mov ecx, dword [esp + 0xcc]
add cl, 0x51
mov edx, dword [esp + 0x10]
mov byte [esp + edx], cl
inc dword [esp + 0x10]
mov ecx, dword [esp + 0x10]
cmp ecx, 0xe
jb 0x40fea0
mov ecx, dword [0x447768]
test ecx, ecx
je case.0x40fb70.18
mov edx, dword [esp]
xor esi, esi
mov edi, dword [0x44776c]
nop
nop
nop
nop
nop
nop
cmp dword [edi + esi*8], 0x11081610
je 0x40ff20
inc esi
cmp ecx, esi
jne 0x40ff10
jmp case.0x40fb70.18
mov ecx, dword [edi + esi*8 + 4]
cmp ecx, edx
je case.0x40fb70.18
push eax
push 1
push dword [0x447770]
push ecx
call fcn.00438da0
add esp, 0x10
mov eax, dword [case.0x41006a.6]
nop
jmp eax
lea ecx, [esp + 0xae0]
call fcn.00409800
lea ecx, [esp + 0xb48]
call fcn.00409800
lea ecx, [esp + 0xbb0]
call fcn.00409800
lea ecx, [esp + 0xc18]
call fcn.00409800
lea ecx, [esp + 0xc80]
call fcn.00409800
lea ecx, [esp + 0x1d0]
call fcn.00409800
mov al, 1
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
push ebx
call fcn.00401f00
add esp, 4
push ebx
call fcn.00401f00
add esp, 4
jmp dword [0x4417a8]
mov edi, eax
xor eax, eax
test ebx, ebx
sete al
jmp dword [eax*4 + 0x4417ac]
push ebx
call fcn.00408f10
add esp, 4
push edi
call fcn.004139a0
add esp, 4
push edi
call fcn.00402b30
add esp, 4
mov dword [esp + 0x2e0], 0x6bf1f3f0
mov dword [esp + 0x2e4], 0
mov word [esp + 0x2e8], 0
mov dword [esp], 0
mov eax, dword [esp]
cmp eax, 9
lea edi, [esp + 0x2e0]
ja 0x410056
nop
nop
nop
mov eax, dword [esp]
mov ecx, dword [esp]
movzx ecx, byte [esp + ecx + 0x2e0]
lea edx, [eax + 0x92]
mov esi, ecx
not esi
or esi, edx
and edx, ecx
add edx, esi
neg edx
add eax, edx
add eax, 0x24098e91
mov dword [esp + 0x28], eax
mov eax, dword [esp + 0x28]
add al, 2
mov ecx, dword [esp]
mov byte [esp + ecx + 0x2e0], al
inc dword [esp]
mov eax, dword [esp]
cmp eax, 0xa
jb 0x410010
push edi
push dword [esp + 0x28]
call fcn.00402940
add esp, 8
xor ecx, ecx
test eax, eax
setg cl
jmp dword [ecx*4 + 0x4417b4]
lea ecx, [esp + 0x2e0]
push 1
call fcn.004097c0
mov eax, 0xffffffff
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp byte [eax + 0x44675d], 0
lea eax, [eax + 1]
jne 0x410090
mov dword [esp + 0x28], 0xc6b8b494
mov dword [esp + 0x2c], 0xdfda93ab
mov word [esp + 0x30], 0x41dc
mov dword [esp + 0x32], 0
mov dword [esp + 0x36], 0
mov dword [esp + 0x3a], 0
mov byte [esp + 0x3e], 0
mov dword [esp + 0x14], 0
mov ecx, dword [esp + 0x14]
cmp ecx, 0x16
ja 0x41012f
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 0x14]
movzx edx, byte [esp + edx + 0x28]
lea esi, [ecx + 0x8c]
and esi, edx
add ecx, edx
add esi, esi
sub ecx, esi
add ecx, 0x49ea0d8c
mov dword [esp], ecx
mov ecx, dword [esp]
add cl, 0x2c
mov edx, dword [esp + 0x14]
mov byte [esp + edx + 0x28], cl
inc dword [esp + 0x14]
mov ecx, dword [esp + 0x14]
cmp ecx, 0x17
jb 0x4100f0
lea esi, [esp + 0x2e0]
mov ecx, esi
push eax
push 0x44675c
lea eax, [esp + 0x30]
push eax
call fcn.004099c0
mov ecx, esi
call fcn.0040a160
mov ecx, esi
call fcn.00409800
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
jmp dword [0x4417c8]
push eax
mov dword [esi + 0x150], esp
sub esp, 0x10
mov eax, esp
and eax, 0xfffffff8
mov dword [esi + 0x1f0], eax
mov esp, eax
push eax
mov dword [esi + 0xc4], esp
sub esp, 8
mov eax, esp
and eax, 0xfffffff8
mov dword [esi + 0x1ec], eax
mov esp, eax
push eax
mov dword [esi + 0x14c], esp
sub esp, 0x10
mov eax, esp
and eax, 0xfffffff8
mov dword [esi + 0x1e8], eax
mov esp, eax
push eax
mov dword [esi + 0x17c], esp
sub esp, 0x10
mov eax, esp
and eax, 0xfffffff8
mov dword [esi + 0x1e4], eax
mov esp, eax
push eax
mov dword [esi + 0x178], esp
sub esp, 0x10
mov eax, esp
and eax, 0xfffffff8
mov dword [esi + 0x1e0], eax
mov esp, eax
push eax
sub esp, 0xc
mov eax, esp
and eax, 0xfffffff8
mov dword [esi + 0x1dc], eax
mov esp, eax
push eax
mov dword [esi + 0x148], esp
push eax
mov dword [esi + 0x144], esp
push eax
mov dword [esi + 0x84], esp
push eax
mov dword [esi + 0xbc], esp
push eax
mov dword [esi + 0x100], esp
sub esp, 0x68
mov eax, esp
and eax, 0xfffffff8
mov dword [esi + 0xfc], eax
mov esp, eax
push eax
mov dword [esi + 0x104], esp
push eax
mov dword [esi + 0x190], esp
sub esp, 0x10
mov eax, esp
and eax, 0xfffffff8
mov dword [esi + 0x194], eax
mov esp, eax
push eax
sub esp, 0xc
mov eax, esp
and eax, 0xfffffff8
mov dword [esi + 0x11c], eax
mov esp, eax
push eax
sub esp, 0xc
mov eax, esp
and eax, 0xfffffff8
mov dword [esi + 0xf8], eax
mov esp, eax
push eax
sub esp, 0xc
mov eax, esp
and eax, 0xfffffff8
mov dword [esi + 0x160], eax
mov esp, eax
push eax
sub esp, 0xc
mov eax, esp
and eax, 0xfffffff8
mov dword [esi + 0x154], eax
mov esp, eax
push eax
sub esp, 0xc
mov eax, esp
and eax, 0xfffffff8
mov dword [esi + 0x130], eax
mov esp, eax
push eax
mov dword [esi + 0x1d8], esp
sub esp, 0x10
mov eax, esp
and eax, 0xfffffff8
mov dword [esi + 0x1d4], eax
mov esp, eax
push eax
mov dword [esi + 0xf0], esp
sub esp, 0x10
mov eax, esp
and eax, 0xfffffff8
mov dword [esi + 0x180], eax
mov esp, eax
push eax
mov dword [esi + 0xb4], esp
sub esp, 0x10
mov eax, esp
and eax, 0xfffffff8
mov dword [esi + 0x1d0], eax
mov esp, eax
push eax
mov dword [esi + 0x134], esp
sub esp, 0x10
mov eax, esp
and eax, 0xfffffff8
mov dword [esi + 0x1cc], eax
mov esp, eax
push eax
mov dword [esi + 0x158], esp
sub esp, 0x10
mov eax, esp
and eax, 0xfffffff8
mov dword [esi + 0x1c8], eax
mov esp, eax
push eax
mov dword [esi + 0x8c], esp
sub esp, 0x10
mov eax, esp
and eax, 0xfffffff8
mov dword [esi + 0x1c4], eax
mov esp, eax
push eax
mov dword [esi + 0xf4], esp
sub esp, 0xc
mov dword [esi + 0xa8], esp
push eax
mov dword [esi + 0xe0], esp
push eax
mov dword [esi + 0x64], esp
push eax
mov dword [esi + 0x44], esp
push eax
mov dword [esi + 0x74], esp
push eax
mov dword [esi + 0x80], esp
push eax
mov dword [esi + 0xe8], esp
push eax
mov dword [esi + 0xe4], esp
sub esp, 0x68
mov eax, esp
and eax, 0xfffffff8
mov dword [esi + 0x5c], eax
mov esp, eax
push eax
mov dword [esi + 0xec], esp
push eax
mov dword [esi + 0x7c], esp
push eax
mov dword [esi + 0x16c], esp
sub esp, 0x10
mov eax, esp
and eax, 0xfffffff8
mov dword [esi + 0x19c], eax
mov esp, eax
push eax
mov dword [esi + 0x164], esp
sub esp, 8
mov eax, esp
and eax, 0xfffffff8
mov dword [esi + 0x198], eax
mov esp, eax
push eax
mov dword [esi + 0xb0], esp
push eax
mov dword [esi + 0xac], esp
push eax
mov dword [esi + 0x68], esp
push eax
mov dword [esi + 0x60], esp
push eax
mov dword [esi + 0xc8], esp
sub esp, 0x10
mov eax, esp
and eax, 0xfffffff8
mov dword [esi + 0x90], eax
mov esp, eax
push eax
mov dword [esi + 0xcc], esp
push eax
mov dword [esi + 0xd0], esp
push eax
mov dword [esi + 0xd8], esp
sub esp, 0x10
mov eax, esp
and eax, 0xfffffff8
mov dword [esi + 0x110], eax
mov esp, eax
push eax
mov dword [esi + 0xd4], esp
sub esp, 0x10
mov eax, esp
and eax, 0xfffffff8
mov dword [esi + 0x10c], eax
mov esp, eax
push eax
sub esp, 0xc
mov eax, esp
and eax, 0xfffffff8
mov dword [esi + 0x108], eax
mov esp, eax
push eax
sub esp, 0x64
mov eax, esp
and eax, 0xfffffff8
mov dword [esi + 0x140], eax
mov esp, eax
push eax
sub esp, 8
mov dword [esi + 0x1c0], esp
sub esp, 0x10
mov eax, esp
and eax, 0xfffffff8
mov dword [esi + 0x78], eax
mov esp, eax
push eax
sub esp, 0x4c
mov eax, esp
and eax, 0xfffffff8
mov dword [esi + 0xdc], eax
mov esp, eax
push eax
mov dword [esi + 0x168], esp
sub esp, 8
mov eax, esp
and eax, 0xfffffff8
mov dword [esi + 0x3c], eax
mov esp, eax
push eax
mov dword [esi + 0x88], esp
sub esp, 0x10
mov ecx, esp
and ecx, 0xfffffff8
mov esp, ecx
push eax
mov dword [esi + 0x13c], esp
push eax
mov dword [esi + 0x138], esp
push eax
mov dword [esi + 0xb8], esp
push eax
mov dword [esi + 0xc0], esp
push eax
mov dword [esi + 0x174], esp
sub esp, 0x10
mov ebx, esp
and ebx, 0xfffffff8
mov esp, ebx
push eax
mov dword [esi + 0x170], esp
push eax
mov dword [esi + 0x18c], esp
push eax
mov dword [esi + 0x188], esp
sub esp, 0x10
mov edi, esp
and edi, 0xfffffff8
mov esp, edi
push eax
mov dword [esi + 0x184], esp
sub esp, 0x10
mov edx, esp
and edx, 0xfffffff8
mov esp, edx
push eax
sub esp, 0xc
mov eax, esp
and eax, 0xfffffff8
mov esp, eax
jmp dword [esi + 0x94]
mov dword [esi + 0x114], eax
mov dword [esi + 0x94], edx
mov dword [esi + 0x118], edi
mov dword [esi + 0x1b8], ebx
mov dword [esi + 0x15c], ecx
push eax
sub esp, 0x64
mov eax, esp
and eax, 0xfffffff8
mov dword [esi + 0xa4], eax
mov esp, eax
mov word [esi + 0x20], 0xdeb
mov dword [esi + 0x22], 0
mov dword [esi + 0x26], 0
mov dword [esi + 0x29], 0
mov dword [esi + 0x48], 0
mov eax, dword [esi + 0x48]
cmp eax, 0xc
ja 0x41059c
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esi + 0x48]
mov ecx, dword [esi + 0x48]
movzx ecx, byte [esi + ecx + 0x20]
add eax, 0xde41fdd6
xor eax, ecx
mov dword [esi + 8], eax
mov eax, dword [esi + 8]
add al, 0x26
mov ecx, dword [esi + 0x48]
mov byte [esi + ecx + 0x20], al
inc dword [esi + 0x48]
mov eax, dword [esi + 0x48]
cmp eax, 0xd
jb 0x410570
lea eax, [esi + 0x20]
push eax
push dword [ebp + 8]
call fcn.004028f0
add esp, 8
mov edx, eax
xor ecx, ecx
test eax, eax
sete cl
xor eax, eax
mov ebx, dword [esi + 0x3c]
mov dword [esi + 0x12c], edx
jmp dword [ecx*4 + 0x441804]
mov eax, dword [case.0x4105bf.5]
nop
nop
nop
nop
nop
jmp eax
xor edi, edi
mov eax, dword [esi + 0x78]
inc eax
mov dword [esi + 0x1b4], eax
jmp 0x4105ed
mov edi, dword [esi + 0x1bc]
inc edi
mov edx, dword [esi + 0x12c]
push edx
call fcn.00402af0
mov edx, dword [esi + 0x12c]
add esp, 4
xor ecx, ecx
cmp edi, eax
setb cl
jmp dword [ecx*4 + 0x44181c]
mov dword [esi + 0x1bc], edi
push edi
push edx
call fcn.00402b00
add esp, 8
mov edi, eax
mov word [esi + 0x20], 0x2592
mov dword [esi + 0x22], 0
mov dword [esi + 0x26], 0
mov dword [esi + 0x2a], 0
mov byte [esi + 0x2e], 0
mov dword [esi + 0x48], 0
mov eax, dword [esi + 0x48]
cmp eax, 0xe
ja 0x410691
nop
nop
nop
nop
nop
nop
mov eax, dword [esi + 0x48]
mov ecx, dword [esi + 0x48]
movzx edx, byte [esi + ecx + 0x20]
lea ecx, [eax + edx]
add ecx, 0x17873805
add eax, 5
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 + 8], eax
mov eax, dword [esi + 8]
add al, 0xdd
mov ecx, dword [esi + 0x48]
mov byte [esi + ecx + 0x20], al
inc dword [esi + 0x48]
mov eax, dword [esi + 0x48]
cmp eax, 0xf
jb 0x410650
push 3
lea eax, [esi + 0x20]
push eax
push edi
call fcn.00402aa0
add esp, 0xc
xor ecx, ecx
test eax, eax
sete cl
jmp dword [ecx*4 + 0x441834]
mov word [esi + 0x20], 0x8174
mov dword [esi + 0x22], 0
mov dword [esi + 0x26], 0
mov dword [esi + 0x2a], 0
mov byte [esi + 0x2e], 0
mov dword [esi + 0x48], 0
mov eax, dword [esi + 0x48]
cmp eax, 0xe
ja 0x410719
nop
nop
nop
nop
mov eax, dword [esi + 0x48]
mov ecx, dword [esi + 0x48]
movzx edx, byte [esi + ecx + 0x20]
lea ecx, [eax + edx]
add eax, 0xc0
and eax, edx
add eax, eax
sub ecx, eax
add ecx, 0x8a4b90c0
mov dword [esi + 8], ecx
mov eax, dword [esi + 8]
add al, 0xc0
mov ecx, dword [esi + 0x48]
mov byte [esi + ecx + 0x20], al
inc dword [esi + 0x48]
mov eax, dword [esi + 0x48]
cmp eax, 0xf
jb 0x4106e0
lea eax, [esi + 0x20]
push eax
push edi
call fcn.004028a0
add esp, 8
fnstcw word [esi + 0xa0]
movzx eax, word [esi + 0xa0]
or eax, 0xc00
mov word [esi + 0x128], ax
fldcw word [esi + 0x128]
fistp dword [esi + 0x204]
fldcw word [esi + 0xa0]
mov eax, dword [esi + 0x204]
xor ecx, ecx
cmp eax, 2
setl cl
jmp dword [ecx*4 + 0x44183c]
xor ecx, ecx
cmp eax, 3
setl cl
jmp dword [ecx*4 + 0x441844]
sete al
movzx eax, al
jmp dword [eax*4 + 0x44184c]
mov edx, dword [esi + 0x194]
mov word [edx], 0x254f
mov dword [edx + 2], 0
mov dword [edx + 6], 0
mov word [edx + 0xa], 0
mov dword [esi + 8], 0
mov eax, dword [esi + 8]
cmp eax, 0xb
ja 0x4107f2
mov eax, dword [esi + 8]
mov ecx, dword [esi + 8]
movzx ecx, byte [edx + ecx]
mov edx, eax
and edx, 0xf025
xor eax, 0xf025
lea eax, [eax + edx*2]
lea edx, [eax + ecx]
and eax, ecx
add eax, eax
sub edx, eax
mov dword [esi + 0x20], edx
mov edx, dword [esi + 0x194]
mov eax, dword [esi + 0x20]
add al, 0xfd
mov ecx, dword [esi + 8]
mov byte [edx + ecx], al
inc dword [esi + 8]
mov eax, dword [esi + 8]
cmp eax, 0xc
jb case.default.0x410807
push 2
push edx
push edi
call fcn.00402aa0
add esp, 0xc
xor ecx, ecx
test eax, eax
setne cl
mov al, 1
jmp dword [ecx*4 + 0x4418d4]
mov ebx, dword [esi + 0x11c]
jmp dword [0x4418dc]
mov word [ebx], 0x1988
mov dword [ebx + 6], 0
mov dword [ebx + 2], 0
mov dword [esi + 8], 0
mov eax, dword [esi + 8]
cmp eax, 9
ja 0x410879
nop
nop
nop
nop
mov eax, dword [esi + 8]
mov ecx, dword [esi + 8]
movzx ecx, byte [ebx + ecx]
lea edx, [eax + 0x2c]
add eax, ecx
and edx, ecx
add edx, edx
sub eax, edx
mov ebx, dword [esi + 0x11c]
add eax, 0x4266e82c
mov dword [esi + 0x20], eax
mov eax, dword [esi + 0x20]
add al, 0xcc
mov ecx, dword [esi + 8]
mov byte [ebx + ecx], al
inc dword [esi + 8]
mov eax, dword [esi + 8]
cmp eax, 0xa
jb 0x410840
push 2
push ebx
push edi
call fcn.00402aa0
add esp, 0xc
jmp case.0x410807.2
push 2
push ebx
push edi
call fcn.00402aa0
add esp, 0xc
jmp dword [0x4418e8]
mov word [ebx], 0x1988
mov dword [ebx + 6], 0
mov dword [ebx + 2], 0
mov dword [esi + 8], 0
mov eax, dword [esi + 8]
cmp eax, 9
ja 0x410890
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 [ebx + ecx]
lea edx, [eax + 0x2c]
add eax, ecx
and edx, ecx
add edx, edx
sub eax, edx
mov ebx, dword [esi + 0x11c]
add eax, 0x4266e82c
mov dword [esi + 0x20], eax
mov eax, dword [esi + 0x20]
add al, 0xcc
mov ecx, dword [esi + 8]
mov byte [ebx + ecx], al
inc dword [esi + 8]
mov eax, dword [esi + 8]
cmp eax, 0xa
jb 0x4108d0
jmp 0x410890
xor ecx, ecx
test eax, eax
setle cl
jmp dword [ecx*4 + 0x441854]
mov edx, dword [esi + 0x19c]
mov word [edx], 0xb5c6
mov dword [edx + 2], 0
mov dword [edx + 6], 0
mov word [edx + 0xa], 0
mov dword [esi + 8], 0
mov eax, dword [esi + 8]
cmp eax, 0xb
ja 0x410989
nop
nop
nop
nop
mov eax, dword [esi + 8]
mov ecx, dword [esi + 8]
movzx ecx, byte [edx + ecx]
lea edx, [eax + 0x39]
add eax, ecx
and edx, ecx
add edx, edx
sub eax, edx
mov edx, dword [esi + 0x19c]
add eax, 0xf039
mov dword [esi + 0x20], eax
mov eax, dword [esi + 0x20]
add al, 0x71
mov ecx, dword [esi + 8]
mov byte [edx + ecx], al
inc dword [esi + 8]
mov eax, dword [esi + 8]
cmp eax, 0xc
jb 0x410950
push edx
push edi
call fcn.00402850
add esp, 8
mov ecx, dword [esi + 0x16c]
mov dword [ecx], eax
mov edx, dword [esi + 0x198]
mov word [edx], 0xad22
mov word [edx + 6], 0
mov dword [edx + 2], 0
mov dword [esi + 8], 0
mov eax, dword [esi + 8]
cmp eax, 7
ja 0x410a08
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 [edx + ecx]
lea edx, [eax + 0x390b2b46]
add eax, 0x46
and eax, ecx
or edx, ecx
sub edx, eax
mov dword [esi + 0x20], edx
mov edx, dword [esi + 0x198]
mov eax, dword [esi + 0x20]
add al, 0x16
mov ecx, dword [esi + 8]
mov byte [edx + ecx], al
inc dword [esi + 8]
mov eax, dword [esi + 8]
cmp eax, 8
jb 0x4109d0
push edx
push edi
call fcn.00402850
add esp, 8
mov ecx, dword [esi + 0x164]
mov dword [ecx], eax
mov ecx, dword [esi + 0x16c]
mov edx, dword [ecx]
xor ecx, ecx
test edx, edx
sete cl
jmp dword [ecx*4 + 0x4419dc]
xor ecx, ecx
test eax, eax
sete cl
jmp dword [ecx*4 + 0x4419e4]
mov eax, edx
mov ebx, eax
inc eax
cmp byte [ebx], 0
jne 0x410a40
mov eax, ebx
sub eax, edx
mov dword [esi + 4], 0
mov dword [esi + 0x40], eax
test eax, eax
jle 0x411cbd
mov dword [esi + 0x34], edx
cmp byte [edx], 0
je 0x411cc0
mov dword [esi + 4], 0
mov edi, dword [esi + 0x34]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov dword [esi + 0x20], 0
lea eax, [esi + 0x20]
push eax
push ebx
push edi
call fcn.0040ea20
add esp, 0xc
lea ecx, [edi + eax]
inc dword [esi + 4]
cmp ecx, ebx
jae 0x411cc0
cmp byte [edi + eax], 0
mov edi, ecx
jne 0x410a80
jmp 0x411cc0
mov word [ebx], 0x45d6
mov dword [ebx + 2], 0
mov word [ebx + 6], 0
mov dword [esi + 8], 0
mov eax, dword [esi + 8]
cmp eax, 7
ja 0x410b1d
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 [ebx + ecx]
mov edx, eax
and edx, 0xc624cb75
xor eax, 0xc624cb75
lea eax, [eax + edx*2]
mov edx, eax
and edx, ecx
add eax, ecx
add edx, edx
sub eax, edx
mov dword [esi + 0x20], eax
mov eax, dword [esi + 0x20]
add al, 0xcd
mov ecx, dword [esi + 8]
mov byte [ebx + ecx], al
inc dword [esi + 8]
mov eax, dword [esi + 8]
cmp eax, 8
jb 0x410ae0
push ebx
push edi
call fcn.00402850
add esp, 8
mov ecx, dword [esi + 0x168]
mov dword [ecx], eax
mov edx, dword [esi + 0x15c]
mov word [edx], 0x65e0
mov dword [edx + 9], 0
mov dword [edx + 6], 0
mov dword [edx + 2], 0
mov dword [esi + 8], 0
mov eax, dword [esi + 8]
cmp eax, 0xc
ja 0x410b9d
nop
nop
mov ecx, dword [esi + 8]
mov eax, dword [esi + 8]
movzx eax, byte [edx + eax]
mov edx, 0x212ea6ee
sub edx, ecx
add ecx, 0x11
and ecx, eax
or edx, eax
not edx
add edx, eax
sub edx, ecx
mov dword [esi + 0x20], edx
mov edx, dword [esi + 0x15c]
mov eax, dword [esi + 0x20]
add al, 0x89
mov ecx, dword [esi + 8]
mov byte [edx + ecx], al
inc dword [esi + 8]
mov eax, dword [esi + 8]
cmp eax, 0xd
jb 0x410b60
push edx
push edi
call fcn.00402850
add esp, 8
mov ecx, dword [esi + 0x88]
mov dword [ecx], eax
mov ecx, dword [esi + 0x168]
mov edx, dword [ecx]
xor ecx, ecx
test edx, edx
sete cl
jmp dword [ecx*4 + 0x441a4c]
xor ecx, ecx
test eax, eax
sete cl
jmp dword [ecx*4 + 0x441a54]
mov eax, edx
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov ebx, eax
inc eax
cmp byte [ebx], 0
jne 0x410be0
mov eax, ebx
sub eax, edx
mov dword [esi + 4], 0
mov dword [esi + 0x40], eax
test eax, eax
jle 0x412456
mov dword [esi + 0x34], edx
cmp byte [edx], 0
je 0x412459
mov dword [esi + 4], 0
mov edi, dword [esi + 0x34]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov dword [esi + 0x20], 0
lea eax, [esi + 0x20]
push eax
push ebx
push edi
call fcn.0040ea20
add esp, 0xc
lea ecx, [edi + eax]
inc dword [esi + 4]
cmp ecx, ebx
jae 0x412459
cmp byte [edi + eax], 0
mov edi, ecx
jne 0x410c20
jmp 0x412459
sete al
movzx eax, al
jmp dword [eax*4 + 0x44185c]
mov word [esi + 0x20], 0x39a6
mov dword [esi + 0x22], 0
mov dword [esi + 0x26], 0
mov dword [esi + 0x2a], 0
mov byte [esi + 0x2e], 0
mov dword [esi + 0x48], 0
mov eax, dword [esi + 0x48]
cmp eax, 0xe
ja 0x410cd3
nop
nop
nop
nop
nop
mov eax, dword [esi + 0x48]
mov ecx, dword [esi + 0x48]
movzx edx, byte [esi + ecx + 0x20]
lea ecx, [eax + edx]
add ecx, 0x3e1fe087
add eax, 0x87
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 + 8], eax
mov eax, dword [esi + 8]
add al, 0x4f
mov ecx, dword [esi + 0x48]
mov byte [esi + ecx + 0x20], al
inc dword [esi + 0x48]
mov eax, dword [esi + 0x48]
cmp eax, 0xf
jb 0x410c90
push 2
lea eax, [esi + 0x20]
push eax
push edi
call fcn.00402aa0
add esp, 0xc
xor ecx, ecx
test eax, eax
setne cl
mov bl, 1
jmp dword [ecx*4 + 0x441864]
mov word [esi + 8], 0x91e1
mov dword [esi + 0xa], 0
mov dword [esi + 0xe], 0
mov word [esi + 0x12], 0
mov dword [esi + 0x38], 0
mov eax, dword [esi + 0x38]
cmp eax, 0xb
ja 0x410d5d
nop
nop
nop
nop
nop
mov eax, dword [esi + 0x38]
mov ecx, dword [esi + 0x38]
movzx ecx, byte [esi + ecx + 8]
lea edx, [eax + 0x13]
and edx, ecx
add eax, 0xf013
or eax, ecx
sub eax, edx
mov dword [esi + 0x6c], eax
mov eax, dword [esi + 0x6c]
mov ecx, eax
or ecx, 0x7a
and eax, 0x7a
add eax, ecx
inc al
mov ecx, dword [esi + 0x38]
mov byte [esi + ecx + 8], al
inc dword [esi + 0x38]
mov eax, dword [esi + 0x38]
cmp eax, 0xc
jb 0x410d20
push 5
lea eax, [esi + 8]
push eax
push edi
call fcn.00402aa0
add esp, 0xc
xor ecx, ecx
test eax, eax
setne cl
jmp dword [ecx*4 + 0x44186c]
mov word [esi + 0x48], 0x6d12
mov dword [esi + 0x4a], 0
mov dword [esi + 0x4e], 0
mov dword [esi + 0x51], 0
mov dword [esi + 0x38], 0
mov eax, dword [esi + 0x38]
cmp eax, 0xc
ja 0x410df8
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esi + 0x38]
mov ecx, dword [esi + 0x38]
movzx ecx, byte [esi + ecx + 0x48]
mov edx, eax
and edx, 0xdeaa9aee
xor eax, 0xdeaa9aee
lea eax, [eax + edx*2]
lea edx, [eax + ecx]
and eax, ecx
add eax, eax
mov ecx, eax
xor ecx, edx
not eax
and eax, edx
add eax, eax
sub eax, ecx
mov dword [esi + 0x6c], eax
mov eax, dword [esi + 0x6c]
add al, 0x7e
mov ecx, dword [esi + 0x38]
mov byte [esi + ecx + 0x48], al
inc dword [esi + 0x38]
mov eax, dword [esi + 0x38]
cmp eax, 0xd
jb 0x410db0
push 2
lea eax, [esi + 0x48]
push eax
push edi
call fcn.00402aa0
add esp, 0xc
xor ecx, ecx
test eax, eax
setne cl
jmp dword [ecx*4 + 0x441874]
mov word [esi + 0x208], 0x59e4
mov dword [esi + 0x20a], 0
mov dword [esi + 0x20e], 0
mov dword [esi + 0x212], 0
mov dword [esi + 0x38], 0
mov eax, dword [esi + 0x38]
cmp eax, 0xd
ja 0x410e8e
nop
nop
nop
nop
nop
mov eax, dword [esi + 0x38]
mov ecx, dword [esi + 0x38]
movzx ecx, byte [esi + ecx + 0x208]
lea edx, [eax + 0xb4]
and edx, ecx
add eax, ecx
add edx, edx
sub eax, edx
add eax, 0x371c98b4
mov dword [esi + 0x6c], eax
mov eax, dword [esi + 0x6c]
add al, 0x14
mov ecx, dword [esi + 0x38]
mov byte [esi + ecx + 0x208], al
inc dword [esi + 0x38]
mov eax, dword [esi + 0x38]
cmp eax, 0xe
jb 0x410e50
push 3
lea eax, [esi + 0x208]
push eax
push edi
call fcn.00402aa0
add esp, 0xc
xor ecx, ecx
test eax, eax
setne cl
jmp dword [ecx*4 + 0x44187c]
movzx eax, bl
mov ebx, dword [esi + 0x3c]
jmp dword [eax*4 + 0x441884]
mov dword [esi + 4], edi
mov edi, dword [esi + 0x1f0]
mov word [edi], 0x7996
mov dword [edi + 2], 0
mov dword [edi + 6], 0
mov word [edi + 0xa], 0
mov dword [esi + 8], 0
mov eax, dword [esi + 8]
cmp eax, 0xb
ja 0x410f25
nop
nop
nop
nop
mov eax, dword [esi + 8]
mov ecx, dword [esi + 8]
movzx ecx, byte [edi + ecx]
mov edx, eax
and edx, 0xf02f
xor eax, 0xf02f
lea eax, [eax + edx*2]
xor eax, ecx
mov dword [esi + 0x20], eax
mov eax, dword [esi + 0x20]
add al, 0xb7
mov ecx, dword [esi + 8]
mov byte [edi + ecx], al
inc dword [esi + 8]
mov eax, dword [esi + 8]
cmp eax, 0xc
jb 0x410ef0
push edi
push dword [esi + 4]
call fcn.00402850
add esp, 8
mov ecx, dword [esi + 0x150]
mov dword [ecx], eax
mov ebx, dword [esi + 0x1ec]
mov word [ebx], 0xad39
mov word [ebx + 6], 0
mov dword [ebx + 2], 0
mov dword [esi + 8], 0
mov eax, dword [esi + 8]
cmp eax, 7
ja 0x410fa0
mov eax, dword [esi + 8]
mov ecx, dword [esi + 8]
movzx edx, byte [ebx + ecx]
lea ecx, [eax + 0x49960b9a]
lea edi, [eax + 0x9a]
or ecx, edi
and edi, edx
and ecx, edx
add ecx, edi
add eax, edx
add eax, 0x49960b9a
sub eax, ecx
mov dword [esi + 0x20], eax
mov eax, dword [esi + 0x20]
add al, 0xca
mov ecx, dword [esi + 8]
mov byte [ebx + ecx], al
inc dword [esi + 8]
mov eax, dword [esi + 8]
cmp eax, 8
jb 0x410f60
push ebx
push dword [esi + 4]
call fcn.004028f0
add esp, 8
mov ecx, dword [esi + 0xc4]
mov dword [ecx], eax
mov edi, dword [esi + 0x1e8]
mov word [edi], 0x59d2
mov dword [edi + 2], 0
mov dword [edi + 6], 0
mov dword [esi + 8], 0
mov eax, dword [esi + 8]
cmp eax, 9
ja 0x411016
nop
nop
nop
nop
mov eax, dword [esi + 8]
mov ecx, dword [esi + 8]
movzx ecx, byte [edi + ecx]
lea edx, [eax + 0xb4]
and edx, ecx
add eax, ecx
add edx, edx
sub eax, edx
add eax, 0x654850b4
mov dword [esi + 0x20], eax
mov eax, dword [esi + 0x20]
add al, 0x14
mov ecx, dword [esi + 8]
mov byte [edi + ecx], al
inc dword [esi + 8]
mov eax, dword [esi + 8]
cmp eax, 0xa
jb 0x410fe0
push edi
push dword [esi + 4]
call fcn.00402850
add esp, 8
mov ecx, dword [esi + 0x14c]
mov dword [ecx], eax
mov edi, dword [esi + 0x1e4]
mov word [edi], 0x3154
mov dword [edi + 9], 0
mov dword [edi + 6], 0
mov dword [edi + 2], 0
mov dword [esi + 8], 0
mov eax, dword [esi + 8]
cmp eax, 0xc
ja 0x411093
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esi + 8]
mov ecx, dword [esi + 8]
movzx ecx, byte [edi + ecx]
lea edx, [eax + 0x28]
add eax, ecx
and edx, ecx
add edx, edx
sub eax, edx
add eax, 0xdeb25a28
mov dword [esi + 0x20], eax
mov eax, dword [esi + 0x20]
add al, 0xe8
mov ecx, dword [esi + 8]
mov byte [edi + ecx], al
inc dword [esi + 8]
mov eax, dword [esi + 8]
cmp eax, 0xd
jb 0x411060
push edi
push dword [esi + 4]
call fcn.004028a0
add esp, 8
fnstcw word [esi + 0x9e]
movzx eax, word [esi + 0x9e]
or eax, 0xc00
mov word [esi + 0x126], ax
fldcw word [esi + 0x126]
fistp dword [esi + 0x200]
fldcw word [esi + 0x9e]
mov eax, dword [esi + 0x200]
mov ecx, dword [esi + 0x17c]
mov dword [ecx], eax
mov edi, dword [esi + 0x1e0]
mov word [edi], 0x4276
mov byte [edi + 2], 0xca
mov dword [edi + 3], 0
mov dword [edi + 7], 0
mov dword [esi + 8], 0
mov eax, dword [esi + 8]
cmp eax, 0xa
ja 0x411151
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esi + 8]
mov ecx, dword [esi + 8]
movzx edx, byte [edi + ecx]
lea ecx, [eax + edx]
add ecx, 0x6cb78722
add eax, 0x6cb78722
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, 0x12
mov ecx, dword [esi + 8]
mov byte [edi + ecx], al
inc dword [esi + 8]
mov eax, dword [esi + 8]
cmp eax, 0xb
jb 0x411110
push edi
push dword [esi + 4]
call fcn.004028a0
add esp, 8
mov ecx, dword [esi + 0x178]
fnstcw word [esi + 0xa2]
movzx eax, word [esi + 0xa2]
or eax, 0xc00
mov word [esi + 0x12a], ax
fldcw word [esi + 0x12a]
fistp dword [esi + 0x1fc]
fldcw word [esi + 0xa2]
mov eax, dword [esi + 0x1fc]
mov dword [ecx], eax
mov edi, dword [esi + 0x1dc]
mov word [edi], 0x4d46
mov byte [edi + 2], 0xda
mov dword [edi + 3], 0
mov dword [edi + 7], 0
mov byte [edi + 0xb], 0
mov dword [esi + 8], 0
mov eax, dword [esi + 8]
cmp eax, 0xb
ja 0x411207
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esi + 8]
mov ecx, dword [esi + 8]
movzx ecx, byte [edi + ecx]
lea edx, [eax + ecx]
add edx, 0xf024
add eax, 0xf024
and eax, ecx
add eax, eax
sub edx, eax
mov dword [esi + 0x20], edx
mov eax, dword [esi + 0x20]
add al, 4
mov ecx, dword [esi + 8]
mov byte [edi + ecx], al
inc dword [esi + 8]
mov eax, dword [esi + 8]
cmp eax, 0xc
jb 0x4111d0
push edi
push dword [esi + 4]
call fcn.00402940
add esp, 8
mov dword [esi + 0x40], eax
mov eax, dword [esi + 0x150]
mov eax, dword [eax]
mov ebx, 0xffffffff
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp byte [eax + ebx + 1], 0
lea ebx, [ebx + 1]
jne 0x411230
lea edx, [eax + ebx]
mov dword [esi + 0x1c], 0
test ebx, ebx
mov dword [esi + 4], edx
mov dword [esi + 0x70], eax
jle 0x41128a
cmp byte [eax], 0
je 0x41128a
mov dword [esi + 0x1c], 0
mov edi, dword [esi + 0x70]
nop
nop
nop
mov dword [esi + 0x20], 0
lea eax, [esi + 0x20]
push eax
push edx
push edi
call fcn.0040ea20
mov edx, dword [esi + 4]
add esp, 0xc
lea ecx, [edi + eax]
inc dword [esi + 0x1c]
cmp ecx, edx
jae 0x41128a
cmp byte [edi + eax], 0
mov edi, ecx
jne 0x411260
mov eax, dword [esi + 0x148]
mov ecx, dword [esi + 0x1c]
mov dword [eax], ecx
mov eax, ecx
inc eax
lea eax, [ecx + ecx + 2]
jns 0x4112a3
mov eax, 0xffffffff
push eax
call fcn.00408f00
add esp, 4
mov ecx, eax
mov eax, dword [esi + 0x144]
mov dword [eax], ecx
mov dword [esi + 0x20], 0
mov eax, dword [esi + 0x1c]
lea eax, [ecx + eax*2]
mov dword [esi + 0x34], eax
cmp eax, ecx
jbe 0x411965
test ebx, ebx
mov eax, dword [esi + 0x84]
jle 0x41196b
mov ebx, dword [esi + 0x70]
mov edi, dword [esi + 4]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp byte [ebx], 0
je 0x41196b
lea eax, [esi + 0x20]
push eax
push edi
push ebx
mov dword [esi + 4], ecx
call fcn.0040ea20
add esp, 0xc
movzx ecx, word [esi + 0x20]
mov edx, dword [esi + 4]
mov word [edx], cx
mov ecx, dword [esi + 4]
add ecx, 2
cmp ecx, dword [esi + 0x34]
jae 0x411965
add ebx, eax
cmp ebx, edi
mov eax, dword [esi + 0x84]
jb 0x4112f0
jmp 0x41196b
jmp case.0x4127ff.12
jmp case.0x4127ff.12
xor ecx, ecx
test eax, eax
setne cl
mov ebx, dword [esi + 0x3c]
mov al, 1
jmp dword [ecx*4 + 0x4418ec]
mov edx, dword [esi + 0xf8]
mov word [edx], 0x8d21
mov dword [edx + 2], 0
mov dword [edx + 6], 0
mov dword [edx + 0xa], 0
mov dword [esi + 8], 0
mov eax, dword [esi + 8]
cmp eax, 0xd
ja 0x4113c2
mov eax, dword [esi + 8]
mov ecx, dword [esi + 8]
mov edx, dword [esi + 0xf8]
movzx edx, byte [edx + ecx]
lea ecx, [eax + 0x1f1e24be]
add eax, 0xbe
or eax, ecx
and eax, edx
or ecx, edx
mov edx, dword [esi + 0xf8]
sub ecx, eax
mov dword [esi + 0x20], ecx
mov eax, dword [esi + 0x20]
add al, 0xce
mov ecx, dword [esi + 8]
mov byte [edx + ecx], al
inc dword [esi + 8]
mov eax, dword [esi + 8]
cmp eax, 0xe
jb case.default.0x4113d7
push 5
push edx
push edi
call fcn.00402aa0
add esp, 0xc
xor ecx, ecx
test eax, eax
setne cl
mov al, 1
jmp dword [ecx*4 + 0x4418f4]
mov edx, dword [esi + 0x160]
mov word [edx], 0xcd4a
mov dword [edx + 2], 0
mov dword [edx + 6], 0
mov dword [edx + 9], 0
mov dword [esi + 8], 0
mov eax, dword [esi + 8]
cmp eax, 0xc
ja 0x411448
nop
nop
nop
mov eax, dword [esi + 8]
mov ecx, dword [esi + 8]
movzx ecx, byte [edx + ecx]
lea edx, [eax - 0x2164e49e]
add eax, 0x62
and eax, ecx
or edx, ecx
sub edx, eax
mov dword [esi + 0x20], edx
mov edx, dword [esi + 0x160]
mov eax, dword [esi + 0x20]
add al, 0x52
mov ecx, dword [esi + 8]
mov byte [edx + ecx], al
inc dword [esi + 8]
mov eax, dword [esi + 8]
cmp eax, 0xd
jb 0x411410
push 2
push edx
push edi
call fcn.00402aa0
add esp, 0xc
xor ecx, ecx
test eax, eax
setne cl
mov al, 1
jmp dword [ecx*4 + 0x4418fc]
mov edx, dword [esi + 0x154]
mov word [edx], 0xd70
mov dword [edx + 2], 0
mov dword [edx + 6], 0
mov dword [edx + 0xa], 0
mov word [edx + 0xe], 0
mov dword [esi + 8], 0
mov eax, dword [esi + 8]
cmp eax, 0xf
ja 0x4114da
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esi + 8]
mov ecx, dword [esi + 8]
movzx ecx, byte [edx + ecx]
lea edx, [eax - 0x437d377e]
add eax, 0x82
and eax, ecx
or edx, ecx
sub edx, eax
mov dword [esi + 0x20], edx
mov edx, dword [esi + 0x154]
mov eax, dword [esi + 0x20]
add al, 0x72
mov ecx, dword [esi + 8]
mov byte [edx + ecx], al
inc dword [esi + 8]
mov eax, dword [esi + 8]
cmp eax, 0x10
jb 0x4114a0
push 3
push edx
push edi
call fcn.00402aa0
add esp, 0xc
xor ecx, ecx
test eax, eax
setne cl
mov al, 1
jmp dword [ecx*4 + 0x441904]
movzx eax, al
jmp dword [eax*4 + 0x44190c]
mov dword [esi + 4], edi
mov edi, dword [esi + 0x1d4]
mov word [edi], 0xa13f
mov dword [edi + 6], 0
mov dword [edi + 2], 0
mov dword [esi + 8], 0
mov eax, dword [esi + 8]
cmp eax, 9
ja 0x41157b
nop
nop
nop
nop
nop
mov eax, dword [esi + 8]
mov ecx, dword [esi + 8]
movzx ecx, byte [edi + ecx]
mov edx, eax
and edx, 0xfb9d59b
xor eax, 0xfb9d59b
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]
mov ecx, eax
or ecx, 0xc2
and eax, 0xc2
add eax, ecx
inc al
mov ecx, dword [esi + 8]
mov byte [edi + ecx], al
inc dword [esi + 8]
mov eax, dword [esi + 8]
cmp eax, 0xa
jb 0x411530
push edi
push dword [esi + 4]
call fcn.00402850
add esp, 8
mov edi, dword [esi + 0x1d8]
mov dword [edi], eax
mov edx, dword [esi + 0x180]
mov word [edx], 0x39a6
mov dword [edx + 2], 0
mov dword [edx + 6], 0
mov dword [esi + 8], 0
mov eax, dword [esi + 8]
cmp eax, 9
ja 0x41160b
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esi + 8]
mov ecx, dword [esi + 8]
movzx ecx, byte [edx + ecx]
lea edx, [eax + 0x41336407]
and edx, ecx
add eax, ecx
add eax, 0x41336407
add edx, edx
sub eax, edx
mov edx, dword [esi + 0x180]
mov dword [esi + 0x20], eax
mov eax, dword [esi + 0x20]
mov ecx, eax
or ecx, 0xce
and eax, 0xce
add eax, ecx
inc al
mov ecx, dword [esi + 8]
mov byte [edx + ecx], al
inc dword [esi + 8]
mov eax, dword [esi + 8]
cmp eax, 0xa
jb 0x4115c0
push edx
push dword [esi + 4]
call fcn.00402850
add esp, 8
mov ecx, dword [esi + 0xf0]
mov dword [ecx], eax
mov ebx, dword [esi + 0x1d0]
mov word [ebx], 0xb959
mov dword [ebx + 0xa], 0
mov dword [ebx + 6], 0
mov dword [ebx + 2], 0
mov dword [esi + 8], 0
mov eax, dword [esi + 8]
cmp eax, 0xd
ja 0x411684
nop
nop
mov eax, dword [esi + 8]
mov ecx, dword [esi + 8]
movzx ecx, byte [ebx + ecx]
lea edx, [eax + 0x7798dce7]
add eax, 0xe7
and eax, ecx
or edx, ecx
sub edx, eax
mov dword [esi + 0x20], edx
mov eax, dword [esi + 0x20]
add al, 0xaf
mov ecx, dword [esi + 8]
mov byte [ebx + ecx], al
inc dword [esi + 8]
mov eax, dword [esi + 8]
cmp eax, 0xe
jb 0x411650
push ebx
push dword [esi + 4]
call fcn.004028f0
add esp, 8
mov ecx, dword [esi + 0xb4]
mov dword [ecx], eax
mov ebx, dword [esi + 0x1cc]
mov word [ebx], 0xd558
mov dword [ebx + 9], 0
mov dword [ebx + 6], 0
mov dword [ebx + 2], 0
mov dword [esi + 8], 0
mov eax, dword [esi + 8]
cmp eax, 0xc
ja 0x411711
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esi + 8]
mov ecx, dword [esi + 8]
movzx edx, byte [ebx + ecx]
lea ecx, [eax + edx]
add ecx, 0xdee0d89d
add eax, 0xdee0d89d
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, 0xb5
mov ecx, dword [esi + 8]
mov byte [ebx + ecx], al
inc dword [esi + 8]
mov eax, dword [esi + 8]
cmp eax, 0xd
jb 0x4116d0
push ebx
push dword [esi + 4]
call fcn.00402850
add esp, 8
mov ecx, dword [esi + 0x134]
mov dword [ecx], eax
mov ebx, dword [esi + 0x1c8]
mov word [ebx], 0x6dc8
mov word [ebx + 0xe], 0
mov dword [ebx + 0xa], 0
mov dword [ebx + 6], 0
mov dword [ebx + 2], 0
mov dword [esi + 8], 0
mov eax, dword [esi + 8]
cmp eax, 0xf
ja 0x411792
nop
nop
nop
nop
nop
nop
mov eax, dword [esi + 8]
mov ecx, dword [esi + 8]
movzx ecx, byte [ebx + ecx]
lea edx, [eax - 0x7fa9f8b2]
add eax, 0x4e
and eax, ecx
or edx, ecx
sub edx, eax
mov dword [esi + 0x20], edx
mov eax, dword [esi + 0x20]
add al, 0xde
mov ecx, dword [esi + 8]
mov byte [ebx + ecx], al
inc dword [esi + 8]
mov eax, dword [esi + 8]
cmp eax, 0x10
jb 0x411760
push ebx
push dword [esi + 4]
call fcn.004028a0
add esp, 8
fnstcw word [esi + 0x9c]
movzx eax, word [esi + 0x9c]
or eax, 0xc00
mov word [esi + 0x124], ax
fldcw word [esi + 0x124]
fistp dword [esi + 0x1f8]
fldcw word [esi + 0x9c]
mov eax, dword [esi + 0x1f8]
mov ecx, dword [esi + 0x158]
mov dword [ecx], eax
mov ebx, dword [esi + 0x1c4]
mov word [ebx], 0xacb8
mov byte [ebx + 2], 0x20
mov word [ebx + 0xb], 0
mov dword [ebx + 7], 0
mov dword [ebx + 3], 0
mov dword [esi + 8], 0
mov eax, dword [esi + 8]
cmp eax, 0xc
ja 0x41184f
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esi + 8]
mov ecx, dword [esi + 8]
movzx edx, byte [ebx + ecx]
lea ecx, [eax + edx]
add ecx, 0xdef8185b
add eax, 0x5b
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, 0x83
mov ecx, dword [esi + 8]
mov byte [ebx + ecx], al
inc dword [esi + 8]
mov eax, dword [esi + 8]
cmp eax, 0xd
jb 0x411810
push ebx
push dword [esi + 4]
call fcn.004028a0
add esp, 8
fnstcw word [esi + 0x9a]
movzx eax, word [esi + 0x9a]
or eax, 0xc00
mov word [esi + 0x122], ax
fldcw word [esi + 0x122]
fistp dword [esi + 0x1f4]
fldcw word [esi + 0x9a]
mov eax, dword [esi + 0x1f4]
mov ecx, dword [esi + 0x8c]
mov dword [ecx], eax
mov ecx, dword [edi]
mov edi, 0xfffffffe
xor eax, eax
nop
nop
nop
add edi, 2
cmp byte [ecx + eax], 0
lea eax, [eax + 1]
jne 0x4118a0
mov dword [esi + 0x34], ecx
lea ecx, [eax - 1]
mov dword [esi + 0x1c], ecx
lea ecx, [edi + 2]
test eax, eax
jns 0x4118c1
mov ecx, 0xffffffff
push ecx
call fcn.00408f00
add esp, 4
mov ecx, dword [esi + 0xf4]
mov dword [esi + 4], eax
mov dword [ecx], eax
mov ebx, dword [esi + 0x34]
test ebx, ebx
mov edx, dword [esi + 0x1c]
jne 0x4118f9
mov edx, ebx
not edx
xor eax, eax
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
inc edx
cmp byte [eax], 0
lea eax, [eax + 1]
jne 0x4118f0
mov dword [esi + 0x20], 0
mov eax, dword [esi + 4]
add edi, eax
cmp edi, eax
jbe 0x412ee9
test edx, edx
jle 0x412ee9
mov eax, edx
add eax, ebx
mov dword [esi + 0x1c], eax
nop
nop
nop
nop
cmp byte [ebx], 0
je 0x412ee9
mov ecx, eax
lea eax, [esi + 0x20]
push eax
push ecx
push ebx
call fcn.0040ea20
add esp, 0xc
movzx ecx, word [esi + 0x20]
mov edx, dword [esi + 4]
mov word [edx], cx
add edx, 2
mov dword [esi + 4], edx
cmp edx, edi
jae 0x412ee3
add ebx, eax
mov eax, dword [esi + 0x1c]
cmp ebx, eax
mov ecx, dword [esi + 0xf4]
jb 0x411920
jmp 0x412ee9
mov eax, dword [esi + 0x84]
mov word [ecx], 0
mov ecx, dword [esi + 0x144]
mov edi, dword [ecx]
push eax
push 0
push 0
push dword [esi + 0x1c]
push edi
push 0
mov ebx, eax
call dword [0x447764]
mov ebx, dword [ebx]
lea eax, [ebx + ebx]
test ebx, ebx
jns 0x411999
mov eax, 0xffffffff
push eax
call fcn.00408f00
add esp, 4
mov ecx, dword [esi + 0xbc]
mov dword [ecx], eax
push dword [esi + 0x84]
push ebx
push eax
mov eax, dword [esi + 0x148]
push dword [eax]
push edi
push 0
call dword [0x447764]
xor eax, eax
test edi, edi
sete al
jmp dword [eax*4 + 0x44188c]
push edi
call fcn.00408f10
add esp, 4
mov eax, dword [esi + 0x14c]
mov eax, dword [eax]
mov ecx, 0xffffffff
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov ebx, ecx
cmp byte [eax + ecx + 1], 0
lea ecx, [ecx + 1]
jne 0x4119f0
lea edx, [eax + ecx]
xor ebx, ebx
mov dword [esi + 0x70], ecx
test ecx, ecx
mov dword [esi + 4], edx
mov dword [esi + 0x34], eax
jle 0x411a48
cmp byte [eax], 0
je 0x411a48
xor ebx, ebx
mov edi, dword [esi + 0x34]
nop
nop
nop
nop
nop
nop
nop
nop
mov dword [esi + 0x20], 0
lea eax, [esi + 0x20]
push eax
push edx
push edi
call fcn.0040ea20
mov edx, dword [esi + 4]
add esp, 0xc
lea ecx, [edi + eax]
inc ebx
cmp ecx, edx
jae 0x411a48
cmp byte [edi + eax], 0
mov edi, ecx
jne 0x411a20
mov eax, ebx
inc eax
lea eax, [ebx + ebx + 2]
jns 0x411a56
mov eax, 0xffffffff
push eax
call fcn.00408f00
add esp, 4
mov ecx, eax
mov eax, dword [esi + 0x100]
mov dword [eax], ecx
mov dword [esi + 0x20], 0
lea eax, [ecx + ebx*2]
mov dword [esi + 0x1c], eax
cmp eax, ecx
jbe 0x411ac1
cmp dword [esi + 0x70], 0
mov ebx, dword [esi + 0x34]
mov edi, dword [esi + 4]
jle 0x411ac1
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp byte [ebx], 0
je 0x411ac1
lea eax, [esi + 0x20]
push eax
push edi
push ebx
mov dword [esi + 4], ecx
call fcn.0040ea20
add esp, 0xc
movzx ecx, word [esi + 0x20]
mov edx, dword [esi + 4]
mov word [edx], cx
mov ecx, dword [esi + 4]
add ecx, 2
cmp ecx, dword [esi + 0x1c]
jae 0x411ac1
add ebx, eax
cmp ebx, edi
jb 0x411a90
mov word [ecx], 0
mov ecx, dword [esi + 0xfc]
push 1
call fcn.004097c0
xor edi, edi
jmp 0x411ae1
inc edi
mov eax, dword [esi + 0xc4]
mov ecx, dword [esi + 0x104]
mov dword [ecx], edi
mov ebx, dword [eax]
push ebx
call fcn.00402af0
add esp, 4
xor ecx, ecx
cmp edi, eax
setb cl
jmp dword [ecx*4 + 0x441894]
push edi
push ebx
call fcn.00402ad0
add esp, 8
push eax
call fcn.00402880
add esp, 4
xor ecx, ecx
test eax, eax
sete cl
jmp dword [ecx*4 + 0x44189c]
mov ecx, eax
nop
nop
nop
nop
nop
mov ebx, ecx
inc ecx
cmp byte [ebx], 0
jne 0x411b30
sub ebx, eax
mov ecx, ebx
inc ecx
mov dword [esi + 0x34], eax
jns 0x411b50
mov eax, 0xffffffff
jmp 0x411b56
lea eax, [ebx + ebx]
add eax, 2
push eax
call fcn.00408f00
add esp, 4
mov edi, eax
mov eax, dword [esi + 0x190]
mov dword [eax], edi
mov eax, ebx
mov edx, dword [esi + 0x34]
test edx, edx
jne 0x411b89
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 0x411b80
mov dword [esi + 0x20], 0
lea ecx, [edi + ebx*2]
mov dword [esi + 0x1c], ecx
cmp ecx, edi
mov dword [esi + 4], edi
jbe 0x411bf0
test eax, eax
jle 0x411bf0
mov edi, edx
add edi, eax
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp byte [edx], 0
je 0x411bf0
lea eax, [esi + 0x20]
push eax
push edi
push edx
mov ebx, edx
call fcn.0040ea20
add esp, 0xc
movzx ecx, word [esi + 0x20]
mov edx, dword [esi + 4]
mov word [edx], cx
add edx, 2
mov dword [esi + 4], edx
cmp edx, dword [esi + 0x1c]
jae 0x411bf0
add ebx, eax
cmp ebx, edi
mov edx, ebx
jb case.default.0x411c42
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
xor eax, eax
cmp dword [esi + 0x40], 0
setg al
mov ecx, dword [esi + 4]
mov word [ecx], 0
mov ecx, dword [esi + 0x190]
mov edi, dword [ecx]
push 0
push eax
mov eax, dword [esi + 0x17c]
push dword [eax]
mov eax, dword [esi + 0x178]
push dword [eax]
push edi
mov eax, dword [esi + 0xbc]
push dword [eax]
mov eax, dword [esi + 0x100]
push dword [eax]
push dword [esi + 0xfc]
call fcn.0041b040
add esp, 0x20
xor eax, eax
test edi, edi
sete al
jmp dword [eax*4 + 0x4418a4]
push edi
call fcn.00408f10
add esp, 4
mov ecx, dword [esi + 0x104]
mov edi, dword [ecx]
inc edi
mov eax, dword [esi + 0xc4]
jmp 0x411aed
mov eax, dword [esi + 0x100]
mov eax, dword [eax]
xor ecx, ecx
test eax, eax
sete cl
jmp dword [ecx*4 + 0x4418b4]
push eax
call fcn.00408f10
add esp, 4
mov eax, dword [esi + 0xbc]
mov edi, dword [eax]
xor eax, eax
test edi, edi
sete al
mov ebx, dword [esi + 0x3c]
jmp dword [eax*4 + 0x4418bc]
mov eax, dword [esi + 0xbc]
mov edi, dword [eax]
xor eax, eax
test edi, edi
sete al
mov ebx, dword [esi + 0x3c]
jmp dword [eax*4 + 0x4418bc]
jmp dword [0x4418c8]
mov dword [esi + 0x34], edx
mov edi, dword [esi + 4]
mov eax, edi
inc eax
lea eax, [edi + edi + 2]
jns 0x411cd1
mov eax, 0xffffffff
push eax
call fcn.00408f00
add esp, 4
mov ecx, eax
mov eax, dword [esi + 0xb0]
mov dword [eax], ecx
mov dword [esi + 0x20], 0
lea eax, [ecx + edi*2]
mov dword [esi + 0x1c], eax
cmp eax, ecx
jbe 0x411d31
cmp dword [esi + 0x40], 0
mov edi, dword [esi + 0x34]
jle 0x411d31
nop
nop
cmp byte [edi], 0
je 0x411d31
lea eax, [esi + 0x20]
push eax
push ebx
push edi
mov dword [esi + 4], ecx
call fcn.0040ea20
add esp, 0xc
movzx ecx, word [esi + 0x20]
mov edx, dword [esi + 4]
mov word [edx], cx
mov ecx, dword [esi + 4]
add ecx, 2
cmp ecx, dword [esi + 0x1c]
jae 0x411d31
add edi, eax
cmp edi, ebx
jb 0x411d00
mov word [ecx], 0
mov eax, dword [esi + 0x164]
mov eax, dword [eax]
mov ecx, 0xffffffff
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov ebx, ecx
cmp byte [eax + ecx + 1], 0
lea ecx, [ecx + 1]
jne 0x411d50
lea edx, [eax + ecx]
xor ebx, ebx
mov dword [esi + 0x40], ecx
test ecx, ecx
mov dword [esi + 4], edx
mov dword [esi + 0x1c], eax
jle 0x411da8
cmp byte [eax], 0
je 0x411da8
xor ebx, ebx
mov edi, dword [esi + 0x1c]
nop
nop
nop
nop
nop
nop
nop
nop
mov dword [esi + 0x20], 0
lea eax, [esi + 0x20]
push eax
push edx
push edi
call fcn.0040ea20
mov edx, dword [esi + 4]
add esp, 0xc
lea ecx, [edi + eax]
inc ebx
cmp ecx, edx
jae 0x411da8
cmp byte [edi + eax], 0
mov edi, ecx
jne 0x411d80
mov eax, ebx
inc eax
lea eax, [ebx + ebx + 2]
jns 0x411db6
mov eax, 0xffffffff
push eax
call fcn.00408f00
add esp, 4
mov ecx, eax
mov eax, dword [esi + 0xac]
mov dword [eax], ecx
mov dword [esi + 0x20], 0
lea eax, [ecx + ebx*2]
mov dword [esi + 0x34], eax
cmp eax, ecx
jbe 0x411e2f
cmp dword [esi + 0x40], 0
mov eax, dword [esi + 0x60]
mov edx, dword [esi + 0x90]
mov ebx, dword [esi + 0x1c]
jle 0x411e38
nop
nop
nop
nop
cmp byte [ebx], 0
je 0x411e38
lea eax, [esi + 0x20]
push eax
mov edi, dword [esi + 4]
push edi
push ebx
mov dword [esi + 0x1c], ecx
call fcn.0040ea20
add esp, 0xc
movzx ecx, word [esi + 0x20]
mov edx, dword [esi + 0x1c]
mov word [edx], cx
mov ecx, dword [esi + 0x1c]
add ecx, 2
cmp ecx, dword [esi + 0x34]
jae 0x411e2f
add ebx, eax
cmp ebx, edi
mov eax, dword [esi + 0x60]
mov edx, dword [esi + 0x90]
jb 0x411df0
jmp 0x411e38
mov eax, dword [esi + 0x60]
mov edx, dword [esi + 0x90]
mov word [ecx], 0
mov edi, dword [esi + 0x68]
mov dword [edi], 0
mov dword [eax], 0
mov word [edx], 0x979
mov byte [edx + 2], 0x90
mov dword [edx + 3], 0
mov dword [edx + 7], 0
mov dword [edx + 0xb], 0
mov dword [esi + 8], 0
mov eax, dword [esi + 8]
cmp eax, 0xe
ja 0x411ebc
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esi + 8]
mov ecx, dword [esi + 8]
movzx ecx, byte [edx + ecx]
lea edx, [eax - 0x69d3c03d]
and edx, ecx
add eax, ecx
add eax, 0x962c3fc3
add edx, edx
sub eax, edx
mov edx, dword [esi + 0x90]
mov dword [esi + 0x20], eax
mov eax, dword [esi + 0x20]
add al, 0xab
mov ecx, dword [esi + 8]
mov byte [edx + ecx], al
inc dword [esi + 8]
mov eax, dword [esi + 8]
cmp eax, 0xf
jb 0x411e80
push edx
push dword [ebp + 8]
call fcn.004028f0
add esp, 8
mov ecx, dword [esi + 0xc8]
mov dword [ecx], eax
xor ecx, ecx
test eax, eax
setne cl
jmp dword [ecx*4 + 0x4419ec]
push eax
call fcn.00402af0
add esp, 4
mov edi, eax
mov ecx, 0xc
mul ecx
seto dl
mov ecx, 0xffffffff
mov ebx, 0xffffffff
add eax, 4
jb 0x411f04
mov ebx, eax
mov eax, dword [esi + 0x60]
mov dword [eax], edi
test dl, dl
jne 0x411f0f
mov ecx, ebx
push ecx
call fcn.00408f00
add esp, 4
mov dword [eax], edi
add eax, 4
xor ecx, ecx
test edi, edi
sete cl
jmp dword [ecx*4 + 0x4419f4]
lea ecx, [edi + edi*2]
lea ecx, [eax + ecx*4]
mov dword [eax], 0
mov dword [eax + 4], 0
mov byte [eax + 8], 0
lea edx, [eax + 0xc]
xor ebx, ebx
cmp edx, ecx
sete bl
jmp dword [ebx*4 + 0x4419fc]
mov dword [edx], 0
mov dword [edx + 4], 0
mov byte [edx + 8], 0
add edx, 0xc
xor ebx, ebx
cmp edx, ecx
sete bl
jmp dword [ebx*4 + 0x4419fc]
mov ecx, dword [esi + 0x68]
mov dword [ecx], eax
mov eax, dword [esi + 0x110]
add eax, 3
mov dword [esi + 4], eax
xor ebx, ebx
xor eax, eax
cmp ebx, edi
mov ecx, dword [esi + 0x10c]
lea ecx, [ecx + 3]
mov dword [esi + 0x1c], ecx
mov ecx, dword [esi + 0xcc]
mov dword [ecx], ebx
setb al
mov ecx, dword [esi + 0x108]
add ecx, 4
mov dword [esi + 0x34], ecx
jmp dword [eax*4 + 0x441a04]
mov edi, dword [esi + 0x68]
mov ebx, dword [esi + 0x140]
mov ecx, ebx
push 2
call fcn.004097c0
mov edi, dword [edi]
mov eax, dword [esi + 0x60]
push dword [eax]
push edi
mov eax, dword [esi + 0xac]
push dword [eax]
mov eax, dword [esi + 0xb0]
push dword [eax]
push ebx
call fcn.00415d20
add esp, 0x14
mov ecx, ebx
call fcn.0040a160
movzx eax, al
jmp dword [eax*4 + 0x441a1c]
mov eax, dword [ebx + 4]
mov ecx, dword [esi + 0x1c0]
mov byte [ecx + 0xa], 0
cmp eax, 0x3ff
mov edx, dword [esi + 0x78]
ja 0x412b3e
lea edi, [ecx + 9]
mov byte [ecx + 9], 0x30
jmp 0x412c6c
inc ebx
mov eax, dword [esi + 0x60]
mov eax, dword [eax]
xor ecx, ecx
cmp ebx, eax
mov eax, dword [esi + 0xcc]
mov dword [eax], ebx
setb cl
jmp dword [ecx*4 + 0x441a04]
jmp dword [0x441a0c]
mov eax, dword [esi + 0xc8]
mov edi, dword [esi + 0xd0]
jmp 0x412242
push ebx
mov eax, dword [esi + 0xc8]
push dword [eax]
call fcn.00402b00
add esp, 8
mov ecx, dword [esi + 0xd0]
mov dword [ecx], eax
mov edi, dword [esi + 0x110]
mov word [edi], 0xefe5
mov byte [edi + 2], 0x5a
mov ecx, dword [esi + 4]
mov dword [ecx], 0
mov dword [ecx + 4], 0
mov byte [ecx + 8], 0
mov dword [esi + 8], 0
mov ecx, dword [esi + 8]
cmp ecx, 0xb
ja 0x4120f5
nop
nop
nop
nop
nop
mov ecx, dword [esi + 8]
mov edx, dword [esi + 8]
movzx edx, byte [edi + edx]
lea ebx, [ecx + 0x34]
add ecx, edx
and ebx, edx
add ebx, ebx
sub ecx, ebx
add ecx, 0xf034
mov dword [esi + 0x20], ecx
mov ecx, dword [esi + 0x20]
add cl, 0x94
mov edx, dword [esi + 8]
mov byte [edi + edx], cl
inc dword [esi + 8]
mov ecx, dword [esi + 8]
cmp ecx, 0xc
jb 0x4120c0
push edi
push eax
call fcn.00402850
add esp, 8
mov ecx, dword [esi + 0xd8]
mov dword [ecx], eax
mov edi, dword [esi + 0x10c]
mov word [edi], 0x83e9
mov byte [edi + 2], 2
mov eax, dword [esi + 0x1c]
mov dword [eax], 0
mov dword [eax + 4], 0
mov dword [eax + 8], 0
mov byte [eax + 0xc], 0
mov dword [esi + 8], 0
mov eax, dword [esi + 8]
cmp eax, 0xf
ja 0x412173
mov eax, dword [esi + 8]
mov ecx, dword [esi + 8]
movzx ecx, byte [edi + ecx]
lea edx, [eax + 0x56]
and edx, ecx
add eax, ecx
add edx, edx
sub eax, edx
add eax, 0xab1e8b56
mov dword [esi + 0x20], eax
mov eax, dword [esi + 0x20]
add al, 0xa6
mov ecx, dword [esi + 8]
mov byte [edi + ecx], al
inc dword [esi + 8]
mov eax, dword [esi + 8]
cmp eax, 0x10
jb 0x412140
push edi
mov ebx, dword [esi + 0xd0]
push dword [ebx]
call fcn.00402850
add esp, 8
mov ecx, dword [esi + 0xd4]
mov dword [ecx], eax
mov edi, dword [esi + 0x108]
mov dword [edi], 0x7b9a9d9a
mov eax, dword [esi + 0x34]
mov dword [eax], 0
mov byte [eax + 4], 0
mov dword [esi + 8], 0
mov eax, dword [esi + 8]
cmp eax, 8
ja 0x4121ff
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esi + 8]
mov ecx, dword [esi + 8]
movzx edx, byte [edi + ecx]
lea ecx, [eax + edx]
add ecx, 0x1c2bb12f
add eax, 0x2f
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, 0xb7
mov ecx, dword [esi + 8]
mov byte [edi + ecx], al
inc dword [esi + 8]
mov eax, dword [esi + 8]
cmp eax, 9
jb 0x4121c0
push edi
push dword [ebx]
call fcn.00402940
add esp, 8
xor edx, edx
test eax, eax
setg dl
mov eax, dword [esi + 0xcc]
mov edi, ebx
mov ebx, dword [eax]
lea ecx, [ebx + ebx*2]
shl ecx, 2
mov eax, dword [esi + 0x68]
add ecx, dword [eax]
push edx
mov eax, dword [esi + 0xd8]
push dword [eax]
mov eax, dword [esi + 0xd4]
push dword [eax]
call fcn.00415800
mov eax, dword [esi + 0xc8]
push ebx
push dword [eax]
call fcn.00402b00
add esp, 8
mov dword [edi], eax
mov edi, dword [esi + 0x110]
mov word [edi], 0xefe5
mov byte [edi + 2], 0x5a
mov ecx, dword [esi + 4]
mov dword [ecx], 0
mov dword [ecx + 4], 0
mov byte [ecx + 8], 0
mov dword [esi + 8], 0
mov ecx, dword [esi + 8]
cmp ecx, 0xb
ja 0x4122c5
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov ecx, dword [esi + 8]
mov edx, dword [esi + 8]
movzx edx, byte [edi + edx]
lea ebx, [ecx + 0x34]
add ecx, edx
and ebx, edx
add ebx, ebx
sub ecx, ebx
add ecx, 0xf034
mov dword [esi + 0x20], ecx
mov ecx, dword [esi + 0x20]
add cl, 0x94
mov edx, dword [esi + 8]
mov byte [edi + edx], cl
inc dword [esi + 8]
mov ecx, dword [esi + 8]
cmp ecx, 0xc
jb 0x412290
push edi
push eax
call fcn.00402850
add esp, 8
mov ecx, dword [esi + 0xd8]
mov dword [ecx], eax
mov edi, dword [esi + 0x10c]
mov word [edi], 0x83e9
mov byte [edi + 2], 2
mov eax, dword [esi + 0x1c]
mov dword [eax], 0
mov dword [eax + 4], 0
mov dword [eax + 8], 0
mov byte [eax + 0xc], 0
mov dword [esi + 8], 0
mov eax, dword [esi + 8]
cmp eax, 0xf
ja 0x412343
mov eax, dword [esi + 8]
mov ecx, dword [esi + 8]
movzx ecx, byte [edi + ecx]
lea edx, [eax + 0x56]
and edx, ecx
add eax, ecx
add edx, edx
sub eax, edx
add eax, 0xab1e8b56
mov dword [esi + 0x20], eax
mov eax, dword [esi + 0x20]
add al, 0xa6
mov ecx, dword [esi + 8]
mov byte [edi + ecx], al
inc dword [esi + 8]
mov eax, dword [esi + 8]
cmp eax, 0x10
jb 0x412310
push edi
mov ebx, dword [esi + 0xd0]
push dword [ebx]
call fcn.00402850
add esp, 8
mov ecx, dword [esi + 0xd4]
mov dword [ecx], eax
mov edi, dword [esi + 0x108]
mov dword [edi], 0x7b9a9d9a
mov eax, dword [esi + 0x34]
mov dword [eax], 0
mov byte [eax + 4], 0
mov dword [esi + 8], 0
mov eax, dword [esi + 8]
cmp eax, 8
ja 0x4123cf
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esi + 8]
mov ecx, dword [esi + 8]
movzx edx, byte [edi + ecx]
lea ecx, [eax + edx]
add ecx, 0x1c2bb12f
add eax, 0x2f
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, 0xb7
mov ecx, dword [esi + 8]
mov byte [edi + ecx], al
inc dword [esi + 8]
mov eax, dword [esi + 8]
cmp eax, 9
jb 0x412390
push edi
push dword [ebx]
call fcn.00402940
add esp, 8
xor edx, edx
test eax, eax
setg dl
mov eax, dword [esi + 0xcc]
mov ebx, dword [eax]
lea ecx, [ebx + ebx*2]
shl ecx, 2
mov eax, dword [esi + 0x68]
add ecx, dword [eax]
push edx
mov eax, dword [esi + 0xd8]
push dword [eax]
mov eax, dword [esi + 0xd4]
push dword [eax]
call fcn.00415800
jmp dword [0x441a18]
xor eax, eax
test edi, edi
sete al
jmp dword [eax*4 + 0x441a24]
mov eax, dword [esi + 0xac]
mov eax, dword [eax]
xor ecx, ecx
test eax, eax
sete cl
mov ebx, dword [esi + 0x3c]
jmp dword [ecx*4 + 0x441a3c]
push eax
call fcn.00408f10
add esp, 4
mov eax, dword [esi + 0xb0]
mov eax, dword [eax]
xor ecx, ecx
test eax, eax
sete cl
jmp dword [ecx*4 + 0x441a44]
mov dword [esi + 0x34], edx
mov edi, dword [esi + 4]
mov eax, edi
inc eax
lea eax, [edi + edi + 2]
jns 0x41246a
mov eax, 0xffffffff
push eax
call fcn.00408f00
add esp, 4
mov ecx, eax
mov eax, dword [esi + 0x13c]
mov dword [eax], ecx
mov dword [esi + 0x20], 0
lea eax, [ecx + edi*2]
mov dword [esi + 0x1c], eax
cmp eax, ecx
jbe 0x4124d9
cmp dword [esi + 0x40], 0
mov eax, dword [esi + 0x88]
mov edi, dword [esi + 0x34]
jle 0x4124df
nop
nop
nop
cmp byte [edi], 0
je 0x4124df
lea eax, [esi + 0x20]
push eax
push ebx
push edi
mov dword [esi + 4], ecx
call fcn.0040ea20
add esp, 0xc
movzx ecx, word [esi + 0x20]
mov edx, dword [esi + 4]
mov word [edx], cx
mov ecx, dword [esi + 4]
add ecx, 2
cmp ecx, dword [esi + 0x1c]
jae 0x4124d9
add edi, eax
cmp edi, ebx
mov eax, dword [esi + 0x88]
jb 0x4124a0
jmp 0x4124df
mov eax, dword [esi + 0x88]
mov word [ecx], 0
mov ecx, dword [eax]
mov edi, 0xfffffffe
xor eax, eax
nop
nop
nop
add edi, 2
cmp byte [ecx + eax], 0
lea eax, [eax + 1]
jne 0x4124f0
mov dword [esi + 0x1c], ecx
lea ebx, [eax - 1]
lea ecx, [edi + 2]
test eax, eax
jns 0x41250e
mov ecx, 0xffffffff
push ecx
call fcn.00408f00
add esp, 4
mov edx, eax
mov eax, dword [esi + 0x138]
mov dword [eax], edx
mov ecx, dword [esi + 0x1c]
test ecx, ecx
jne 0x412539
mov ebx, ecx
not ebx
xor eax, eax
nop
nop
inc ebx
cmp byte [eax], 0
lea eax, [eax + 1]
jne 0x412530
mov dword [esi + 0x20], 0
add edi, edx
cmp edi, edx
jbe 0x412584
test ebx, ebx
jle 0x412584
add ebx, ecx
mov dword [esi + 4], ebx
nop
cmp byte [ecx], 0
je 0x412584
lea eax, [esi + 0x20]
push eax
push dword [esi + 4]
push ecx
mov ebx, ecx
mov dword [esi + 0x1c], edx
call fcn.0040ea20
mov edx, dword [esi + 0x1c]
add esp, 0xc
movzx ecx, word [esi + 0x20]
mov word [edx], cx
add edx, 2
cmp edx, edi
jae 0x412584
add ebx, eax
cmp ebx, dword [esi + 4]
mov ecx, ebx
jb 0x412550
mov word [edx], 0
mov edi, dword [esi + 0xb8]
mov dword [edi], 0
mov eax, dword [esi + 0xc0]
mov dword [eax], 0
mov ebx, dword [esi + 0x1b8]
mov word [ebx], 0x3d25
mov byte [ebx + 2], 0xb4
mov dword [ebx + 3], 0
mov dword [ebx + 7], 0
mov dword [ebx + 0xa], 0
mov dword [esi + 8], 0
mov eax, dword [esi + 8]
cmp eax, 0xd
ja 0x412616
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 [ebx + ecx]
lea edx, [eax + 0xe9]
add eax, ecx
and edx, ecx
add edx, edx
sub eax, edx
add eax, 0x4f9b78e9
mov dword [esi + 0x20], eax
mov eax, dword [esi + 0x20]
add al, 0xa1
mov ecx, dword [esi + 8]
mov byte [ebx + ecx], al
inc dword [esi + 8]
mov eax, dword [esi + 8]
cmp eax, 0xe
jb 0x4125e0
push ebx
push dword [ebp + 8]
call fcn.004028f0
add esp, 8
mov ecx, dword [esi + 0x174]
mov dword [ecx], eax
xor ecx, ecx
test eax, eax
setne cl
mov ebx, dword [esi + 0x3c]
jmp dword [ecx*4 + 0x441a5c]
push eax
call fcn.00402af0
add esp, 4
mov edi, eax
mov ecx, 0xc
mul ecx
seto dl
mov ecx, 0xffffffff
mov ebx, 0xffffffff
add eax, 4
jb 0x412661
mov ebx, eax
mov eax, dword [esi + 0xc0]
mov dword [eax], edi
test dl, dl
jne 0x41266f
mov ecx, ebx
push ecx
call fcn.00408f00
add esp, 4
mov dword [eax], edi
add eax, 4
xor ecx, ecx
test edi, edi
sete cl
jmp dword [ecx*4 + 0x441a64]
lea ecx, [edi + edi*2]
lea ecx, [eax + ecx*4]
mov dword [eax], 0
mov dword [eax + 4], 0
mov dword [eax + 8], 0
lea edx, [eax + 0xc]
xor ebx, ebx
cmp edx, ecx
sete bl
jmp dword [ebx*4 + 0x441a6c]
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 + 0x441a6c]
mov ecx, dword [esi + 0xb8]
mov dword [ecx], eax
mov eax, dword [esi + 0x118]
add eax, 3
mov dword [esi + 0x40], eax
xor eax, eax
xor ecx, ecx
cmp eax, edi
mov edx, dword [esi + 0x114]
lea edx, [edx + 3]
mov dword [esi + 0x70], edx
mov ebx, dword [esi + 0x170]
mov dword [ebx], eax
setb cl
jmp dword [ecx*4 + 0x441a74]
mov ebx, dword [esi + 0x3c]
mov edi, dword [esi + 0xb8]
mov ecx, dword [esi + 0xa4]
push 3
call fcn.004097c0
mov edi, dword [edi]
mov eax, dword [esi + 0x138]
mov ecx, dword [eax]
mov eax, dword [esi + 0x13c]
mov edx, dword [eax]
mov eax, dword [esi + 0xc0]
push dword [eax]
push edi
mov dword [esi + 4], ecx
push ecx
mov dword [esi + 0x1c], edx
push edx
push dword [esi + 0xa4]
call fcn.004188e0
add esp, 0x14
mov ecx, dword [esi + 0xa4]
call fcn.0040a160
xor eax, eax
test edi, edi
sete al
jmp dword [eax*4 + 0x441a7c]
lea eax, [edi - 4]
mov dword [esi + 0x34], 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 + 0x441a84]
push dword [esi + 0x34]
call fcn.00408f10
add esp, 4
xor eax, eax
mov ecx, dword [esi + 0x1c]
test ecx, ecx
sete al
mov ebx, dword [esi + 0x3c]
jmp dword [eax*4 + 0x441a94]
xor eax, eax
mov ecx, dword [esi + 4]
test ecx, ecx
sete al
jmp dword [eax*4 + 0x441a9c]
push ecx
call fcn.00408f10
add esp, 4
mov ecx, dword [esi + 0xa4]
jmp 0x413966
mov word [edx], 0
mov ebx, dword [esi + 0x170]
mov eax, dword [ebx]
inc eax
mov ecx, dword [esi + 0xc0]
mov ecx, dword [ecx]
xor edx, edx
cmp eax, ecx
mov dword [ebx], eax
setb dl
jmp dword [edx*4 + 0x441a74]
push eax
mov eax, dword [esi + 0x174]
push dword [eax]
call fcn.00402b00
add esp, 8
mov ecx, dword [esi + 0x18c]
mov dword [ecx], eax
mov edi, dword [esi + 0x118]
mov word [edi], 0x2f15
mov byte [edi + 2], 0xb2
mov ecx, dword [esi + 0x40]
mov dword [ecx], 0
mov dword [ecx + 4], 0
mov word [ecx + 8], 0
mov dword [esi + 8], 0
mov ecx, dword [esi + 8]
cmp ecx, 0xc
ja 0x4128a7
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov ecx, dword [esi + 8]
mov edx, dword [esi + 8]
movzx edx, byte [edi + edx]
lea edi, [ecx - 0x20d969b8]
add ecx, 0x48
and ecx, edx
or edi, edx
sub edi, ecx
mov dword [esi + 0x20], edi
mov edi, dword [esi + 0x118]
mov ecx, dword [esi + 0x20]
add cl, 8
mov edx, dword [esi + 8]
mov byte [edi + edx], cl
mov ecx, dword [esi + 8]
mov edx, ecx
and edx, 1
xor ecx, 1
lea ecx, [ecx + edx*2]
mov dword [esi + 8], ecx
mov ecx, dword [esi + 8]
cmp ecx, 0xd
jb 0x412860
push edi
push eax
call fcn.00402850
add esp, 8
mov ecx, dword [esi + 0x188]
mov dword [ecx], eax
mov ecx, dword [esi + 0x94]
mov word [ecx], 0xebf1
mov byte [ecx + 2], 0x6a
mov dword [ecx + 3], 0
mov dword [ecx + 7], 0
mov dword [esi + 8], 0
mov eax, dword [esi + 8]
cmp eax, 0xa
ja 0x412946
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov edx, dword [esi + 8]
mov eax, dword [esi + 8]
movzx edi, byte [ecx + eax]
lea eax, [edx + 0x54b40f2]
lea ecx, [edx + edi]
add ecx, 0x54b40f2
add edx, 0xf2
and edx, edi
and eax, edi
add eax, edx
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, 0x62
mov ecx, dword [esi + 8]
mov edx, dword [esi + 0x94]
mov byte [edx + ecx], al
mov ecx, dword [esi + 0x94]
inc dword [esi + 8]
mov eax, dword [esi + 8]
cmp eax, 0xb
jb 0x4128f0
push ecx
mov edi, dword [esi + 0x18c]
push dword [edi]
call fcn.00402850
add esp, 8
mov ecx, dword [esi + 0x184]
mov dword [ecx], eax
mov edx, dword [esi + 0x114]
mov word [edx], 0xa1ad
mov byte [edx + 2], 0xd4
mov eax, dword [esi + 0x70]
mov dword [eax], 0
mov dword [eax + 4], 0
mov dword [eax + 7], 0
mov dword [esi + 8], 0
mov eax, dword [esi + 8]
cmp eax, 0xd
ja 0x4129de
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 [edx + ecx]
mov edx, 0xa2
sub edx, eax
add eax, ecx
not ecx
or ecx, edx
mov edx, dword [esi + 0x114]
lea eax, [eax + ecx*2]
add eax, 0xb81d0b5f
mov dword [esi + 0x20], eax
mov eax, dword [esi + 0x20]
add al, 0x75
mov ecx, dword [esi + 8]
mov byte [edx + ecx], al
inc dword [esi + 8]
mov eax, dword [esi + 8]
cmp eax, 0xe
jb 0x4129a0
push edx
push dword [edi]
call fcn.00402850
add esp, 8
mov dword [esi + 0x34], eax
mov ecx, dword [esi + 0xb8]
mov ecx, dword [ecx]
mov edx, dword [ebx]
lea edx, [edx + edx*2]
lea eax, [ecx + edx*4]
mov edi, dword [esi + 0x188]
mov edi, dword [edi]
mov ebx, dword [esi + 0x184]
mov ebx, dword [ebx]
mov dword [esi + 0x1c], eax
mov dword [eax], 0
mov dword [ecx + edx*4 + 4], edi
mov eax, dword [esi + 0x34]
mov dword [ecx + edx*4 + 8], eax
mov eax, ebx
mov ebx, 0xfffffffe
xor edi, edi
nop
nop
nop
nop
nop
nop
nop
add ebx, 2
cmp byte [eax + edi], 0
lea edi, [edi + 1]
jne 0x412a30
test edi, edi
mov dword [esi + 4], eax
jns 0x412a50
mov eax, 0xffffffff
jmp 0x412a53
lea eax, [ebx + 2]
push eax
call fcn.00408f00
add esp, 4
mov edx, eax
mov eax, dword [esi + 0x1c]
mov dword [eax], edx
mov ecx, dword [esi + 4]
test ecx, ecx
je 0x412a70
dec edi
jmp 0x412a89
mov edi, ecx
not edi
xor eax, eax
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
inc edi
cmp byte [eax], 0
lea eax, [eax + 1]
jne 0x412a80
mov dword [esi + 0x20], 0
add ebx, edx
cmp ebx, edx
jbe 0x4127e0
test edi, edi
jle 0x4127e0
add edi, ecx
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp byte [ecx], 0
je 0x4127e0
lea eax, [esi + 0x20]
push eax
push edi
push ecx
mov dword [esi + 4], ecx
mov dword [esi + 0x1c], edx
call fcn.0040ea20
mov edx, dword [esi + 0x1c]
add esp, 0xc
movzx ecx, word [esi + 0x20]
mov word [edx], cx
add edx, 2
cmp edx, ebx
jae 0x4127e0
mov ecx, dword [esi + 4]
add ecx, eax
cmp ecx, edi
jb 0x412ab0
jmp 0x4127e0
xor eax, eax
cmp ebx, edi
sete al
jmp dword [eax*4 + 0x441a8c]
mov eax, dword [ebx - 0xc]
add ebx, 0xfffffff4
test eax, eax
je 0x412af0
push eax
call fcn.00408f10
add esp, 4
jmp 0x412af0
xor eax, eax
mov ecx, dword [esi + 0x1c]
test ecx, ecx
sete al
jmp dword [eax*4 + 0x441a94]
push ecx
call fcn.00408f10
add esp, 4
xor eax, eax
mov ecx, dword [esi + 4]
test ecx, ecx
sete al
jmp dword [eax*4 + 0x441a9c]
lea edi, [ecx + 0xa]
mov ecx, eax
shr ecx, 0xa
cmp eax, 0x19000
jb 0x412c4f
nop
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
imul eax, edx, 0x64
mov ebx, ecx
sub ebx, eax
movzx eax, word [ebx + ebx + 0x43e528]
mov word [edi - 2], ax
add edi, 0xfffffffe
cmp ecx, 0x270f
mov ecx, edx
ja 0x412b60
cmp edx, 9
ja 0x412c5a
movzx eax, byte [edx + str.0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ]
mov byte [edi - 1], al
dec edi
jmp 0x412c69
mov word [esi + 0x1a0], 0xc2d6
mov byte [esi + 0x1a2], 0x32
mov dword [esi + 0x1a3], 0
mov dword [esi + 0x1a7], 0
mov dword [esi + 0x1ab], 0
mov byte [esi + 0x1af], 0
mov dword [esi + 0x38], 0
mov eax, dword [esi + 0x38]
cmp eax, 0xf
ja 0x412c2c
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esi + 0x38]
mov ecx, dword [esi + 0x38]
movzx ecx, byte [esi + ecx + 0x1a0]
lea edx, [eax - 0x69e8da08]
add eax, 0xf8
and eax, ecx
or edx, ecx
sub edx, eax
mov dword [esi + 0x6c], edx
mov eax, dword [esi + 0x6c]
add al, 0x38
mov ecx, dword [esi + 0x38]
mov byte [esi + ecx + 0x1a0], al
inc dword [esi + 0x38]
mov eax, dword [esi + 0x38]
cmp eax, 0x10
jb 0x412bf0
push 3
lea eax, [esi + 0x1a0]
push eax
push edi
call fcn.00402aa0
add esp, 0xc
xor ecx, ecx
test eax, eax
sete cl
mov ebx, dword [esi + 0x3c]
jmp dword [ecx*4 + 0x441884]
mov edx, ecx
cmp edx, 9
jbe 0x412b95
movzx eax, word [edx + edx + 0x43e528]
mov word [edi - 2], ax
add edi, 0xfffffffe
mov edx, dword [esi + 0x78]
mov ebx, dword [esi + 0xdc]
mov dword [edx], 0x3124b53
mov dword [edx + 4], 0
mov byte [edx + 8], 0
mov dword [esi + 8], 0
mov eax, dword [esi + 8]
cmp eax, 8
ja 0x412cda
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 [edx + ecx]
lea edx, [eax + ecx]
add edx, 0x38fbc901
add eax, 0x38fbc901
and eax, ecx
add eax, eax
sub edx, eax
mov dword [esi + 0x20], edx
mov edx, dword [esi + 0x78]
mov eax, dword [esi + 0x20]
add al, 0xf9
mov ecx, dword [esi + 8]
mov byte [edx + ecx], al
inc dword [esi + 8]
mov eax, dword [esi + 8]
cmp eax, 9
jb 0x412ca0
mov dword [ebx], 0x292a5e4b
mov dword [ebx + 4], 0x9f432f2b
mov dword [ebx + 8], 0x4f4b4258
mov dword [ebx + 0xc], 0x33844145
mov dword [ebx + 0x10], 0x4c3d8937
mov dword [ebx + 0x14], 0x4a8c4944
mov dword [ebx + 0x18], 0xbcc1c346
mov dword [ebx + 0x1c], 0x77bbc2b9
mov dword [ebx + 0x20], 0xb6bdbac6
mov dword [ebx + 0x24], 0xcb7cc9bd
mov dword [ebx + 0x28], 0xabd461cf
mov dword [ebx + 0x2c], 0xa0d165a5
mov dword [ebx + 0x30], 0xd9afdfd4
mov dword [ebx + 0x34], 0xded86d66
mov dword [ebx + 0x38], 0x539c92da
mov dword [ebx + 0x3c], 0x9a9196e2
mov dword [ebx + 0x40], 0xee58ed91
mov dword [ebx + 0x44], 0xa59be791
mov word [ebx + 0x48], 0x615e
mov word [ebx + 0x4e], 0
mov dword [ebx + 0x4a], 0
mov dword [esi + 8], 0
mov eax, dword [esi + 8]
cmp eax, 0x4f
ja 0x412db3
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esi + 8]
mov ecx, dword [esi + 8]
movzx ecx, byte [ebx + ecx]
lea edx, [eax + 0x67]
add eax, ecx
and edx, ecx
add edx, edx
sub eax, edx
add eax, 0xa5676a67
mov dword [esi + 0x20], eax
mov eax, dword [esi + 0x20]
add al, 0x2f
mov ecx, dword [esi + 8]
mov byte [ebx + ecx], al
inc dword [esi + 8]
mov eax, dword [esi + 8]
cmp eax, 0x50
jb 0x412d80
lea eax, [0x44675b]
nop
nop
nop
nop
nop
nop
nop
cmp byte [eax + 1], 0
lea eax, [eax + 1]
jne 0x412dc0
movzx ecx, byte [ebx]
test cl, cl
je 0x412def
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 0x412de0
add eax, edx
mov byte [eax], 0
movzx ecx, byte [edi]
test cl, cl
mov edx, dword [esi + 0x78]
je 0x412e0b
inc edi
nop
nop
nop
mov byte [eax], cl
inc eax
movzx ecx, byte [edi]
inc edi
test cl, cl
jne 0x412e00
mov byte [eax], 0
movzx ecx, byte [edx]
test cl, cl
je 0x412e2d
mov edx, dword [esi + 0x1b4]
mov edi, dword [esi + 0x68]
nop
nop
mov byte [eax], cl
inc eax
movzx ecx, byte [edx]
inc edx
test cl, cl
jne 0x412e20
jmp 0x412e30
mov edi, dword [esi + 0x68]
mov byte [eax], 0
mov edi, dword [edi]
xor eax, eax
test edi, edi
sete al
jmp dword [eax*4 + 0x441a24]
lea eax, [edi - 4]
mov dword [esi + 4], 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 + 0x441a2c]
push dword [esi + 4]
call fcn.00408f10
add esp, 4
mov eax, dword [esi + 0xac]
mov eax, dword [eax]
xor ecx, ecx
test eax, eax
sete cl
mov ebx, dword [esi + 0x3c]
jmp dword [ecx*4 + 0x441a3c]
mov eax, dword [esi + 0xb0]
mov eax, dword [eax]
xor ecx, ecx
test eax, eax
sete cl
jmp dword [ecx*4 + 0x441a44]
push eax
call fcn.00408f10
add esp, 4
mov ecx, dword [esi + 0x140]
jmp 0x413966
xor eax, eax
cmp ebx, edi
sete al
jmp dword [eax*4 + 0x441a34]
mov eax, dword [ebx - 0xc]
test eax, eax
je 0x412ece
push eax
call fcn.00408f10
add esp, 4
mov eax, dword [ebx - 8]
add ebx, 0xfffffff4
test eax, eax
je 0x412eb0
push eax
call fcn.00408f10
add esp, 4
jmp 0x412eb0
mov ecx, dword [esi + 0xf4]
mov eax, dword [esi + 4]
mov word [eax], 0
mov edi, dword [ecx]
mov ecx, dword [esi + 0xa8]
mov dword [ecx], 0
mov dword [ecx + 4], 0
mov dword [ecx + 8], 0
push edi
call fcn.004375c0
xor eax, eax
test edi, edi
sete al
jmp dword [eax*4 + 0x441914]
push edi
call fcn.00408f10
add esp, 4
mov edi, dword [esi + 0xa8]
mov ecx, edi
push 0x400
call fcn.00437820
not eax
shr eax, 0x1f
mov ebx, dword [esi + 0x3c]
jmp dword [eax*4 + 0x44191c]
mov eax, dword [esi + 0xe0]
mov dword [eax], 0
mov ecx, dword [edi]
mov dword [esi + 0x20], 0xb2b5b4b7
mov dword [esi + 0x24], 0
mov dword [esi + 0x28], 0
mov word [esi + 0x2c], 0
mov dword [esi + 0x48], 0
mov eax, dword [esi + 0x48]
cmp eax, 0xd
ja 0x412fd9
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov edi, dword [esi + 0x48]
mov eax, dword [esi + 0x48]
movzx ebx, byte [esi + eax + 0x20]
lea eax, [edi - 0x65e155e7]
lea edx, [edi + ebx]
add edx, 0x9a1eaa19
add edi, 0x19
and edi, ebx
and eax, ebx
add eax, edi
mov edi, edx
not edi
and edi, eax
not eax
and eax, edx
sub eax, edi
mov dword [esi + 8], eax
mov eax, dword [esi + 8]
add al, 0x51
mov edx, dword [esi + 0x48]
mov byte [esi + edx + 0x20], al
inc dword [esi + 0x48]
mov eax, dword [esi + 0x48]
cmp eax, 0xe
jb 0x412f90
mov eax, dword [esi + 0x20]
mov edx, dword [0x447768]
test edx, edx
je 0x413002
xor edi, edi
mov ebx, dword [0x44776c]
nop
nop
cmp dword [ebx + edi*8], 0xd9a9c0b
je 0x4130f0
inc edi
cmp edx, edi
jne 0x412ff0
mov ebx, dword [esi + 0x3c]
xor ecx, ecx
cmp eax, 0xc0000004
sete cl
mov edi, dword [esi + 0xa8]
jmp dword [ecx*4 + 0x441924]
jmp case.0x412f1a.0
mov ebx, dword [esi + 0xe0]
mov eax, dword [ebx]
add eax, 2
push eax
call fcn.00437460
add esp, 4
mov ecx, eax
mov eax, dword [esi + 0x64]
mov dword [esi + 4], ecx
mov dword [eax], ecx
mov eax, dword [ebx]
add eax, 2
mov ecx, dword [edi]
mov dword [esi + 0x1c], ecx
mov dword [esi + 0x20], 0xb2b5b4b7
mov dword [esi + 0x24], 0
mov dword [esi + 0x28], 0
mov word [esi + 0x2c], 0
mov dword [esi + 0x48], 0
mov ecx, dword [esi + 0x48]
cmp ecx, 0xd
ja 0x4130ca
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov ecx, dword [esi + 0x48]
mov edx, dword [esi + 0x48]
movzx edx, byte [esi + edx + 0x20]
lea edi, [ecx - 0x65e155e7]
lea ebx, [ecx + edx]
add ebx, 0x9a1eaa19
add ecx, 0x19
and ecx, edx
and edi, edx
add edi, ecx
mov ecx, ebx
not ecx
and ecx, edi
not edi
and edi, ebx
sub edi, ecx
mov dword [esi + 8], edi
mov ecx, dword [esi + 8]
add cl, 0x51
mov edx, dword [esi + 0x48]
mov byte [esi + edx + 0x20], cl
inc dword [esi + 0x48]
mov ecx, dword [esi + 0x48]
cmp ecx, 0xe
jb 0x413080
mov edi, dword [esi + 0x20]
mov ebx, dword [0x447768]
test ebx, ebx
je case.default.0x4132d7
xor edx, edx
mov ecx, dword [0x44776c]
nop
cmp dword [ecx + edx*8], 0xd9a9c0b
je 0x413122
inc edx
cmp ebx, edx
jne 0x4130e0
jmp case.default.0x4132d7
mov edx, dword [ebx + edi*8 + 4]
cmp edx, eax
mov ebx, dword [esi + 0x3c]
je 0x413005
push dword [esi + 0xe0]
push 0
push 0
push 0x2b
push ecx
push 5
push dword [0x447770]
push edx
call fcn.00438da0
add esp, 0x20
jmp 0x413005
mov ecx, dword [ecx + edx*8 + 4]
cmp ecx, edi
jne 0x4132b0
not edi
shr edi, 0x1f
mov ecx, dword [esi + 0x64]
mov ebx, dword [esi + 0x3c]
jmp dword [edi*4 + 0x44192c]
mov ecx, dword [esi + 0x44]
jmp dword [0x441938]
mov eax, dword [esi + 0xf0]
mov edx, dword [eax]
mov edi, 0xfffffffe
xor eax, eax
nop
nop
nop
nop
nop
nop
nop
nop
add edi, 2
cmp byte [edx + eax], 0
lea eax, [eax + 1]
jne 0x413160
mov dword [esi + 0x34], edx
lea ebx, [eax - 1]
mov dword [ecx], ebx
lea ecx, [edi + 2]
test eax, eax
jns 0x413180
mov ecx, 0xffffffff
push ecx
call fcn.00408f00
add esp, 4
mov ecx, eax
mov eax, dword [esi + 0x74]
mov dword [eax], ecx
mov edx, dword [esi + 0x34]
test edx, edx
jne 0x4131a9
mov ebx, edx
not ebx
xor eax, eax
nop
nop
nop
inc ebx
cmp byte [eax], 0
lea eax, [eax + 1]
jne 0x4131a0
mov dword [esi + 0x20], 0
add edi, ecx
cmp edi, ecx
mov dword [esi + 4], ecx
jbe 0x4132de
test ebx, ebx
jle 0x4132de
add ebx, edx
mov dword [esi + 0x1c], ebx
mov ecx, dword [esi + 0x44]
nop
nop
nop
cmp byte [edx], 0
je 0x4132e1
lea eax, [esi + 0x20]
push eax
push dword [esi + 0x1c]
push edx
mov ebx, edx
call fcn.0040ea20
add esp, 0xc
movzx ecx, word [esi + 0x20]
mov edx, dword [esi + 4]
mov word [edx], cx
mov ecx, edx
add ecx, 2
cmp ecx, edi
mov dword [esi + 4], ecx
jae 0x4132de
add ebx, eax
cmp ebx, dword [esi + 0x1c]
mov ecx, dword [esi + 0x44]
mov edx, ebx
jb 0x4131d0
jmp 0x4132e1
mov edx, dword [esi + 0x130]
mov word [edx], 0x4276
mov byte [edx + 2], 0xca
mov dword [edx + 3], 0
mov dword [edx + 7], 0
mov byte [edx + 0xb], 0
mov dword [esi + 8], 0
mov eax, dword [esi + 8]
cmp eax, 0xb
ja 0x413296
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esi + 8]
mov ecx, dword [esi + 8]
movzx ecx, byte [edx + ecx]
lea edx, [eax + 0xf022]
and edx, ecx
add eax, ecx
add eax, 0xf022
add edx, edx
sub eax, edx
mov edx, dword [esi + 0x130]
mov dword [esi + 0x20], eax
mov eax, dword [esi + 0x20]
mov ecx, eax
or ecx, 0x11
and eax, 0x11
add eax, ecx
inc al
mov ecx, dword [esi + 8]
mov byte [edx + ecx], al
inc dword [esi + 8]
mov eax, dword [esi + 8]
cmp eax, 0xc
jb 0x413250
push 3
push edx
push edi
call fcn.00402aa0
add esp, 0xc
xor ecx, ecx
test eax, eax
sete cl
jmp dword [ecx*4 + 0x44190c]
push 0
push eax
push dword [esi + 4]
push 0x2b
push dword [esi + 0x1c]
push 5
push dword [0x447770]
push ecx
call fcn.00438da0
add esp, 0x20
not eax
shr eax, 0x1f
mov ecx, dword [esi + 0x64]
mov ebx, dword [esi + 0x3c]
jmp dword [eax*4 + 0x44192c]
mov ecx, dword [esi + 0x44]
mov eax, dword [esi + 4]
mov word [eax], 0
jmp case.0x4132d7.3
mov eax, dword [esi + 0x64]
nop
nop
mov ecx, dword [esi + 0x44]
mov edx, dword [esi + 4]
mov word [edx], 0
jmp dword [0x44193c]
mov eax, dword [esi + 0xf0]
mov edx, dword [eax]
mov edi, 0xfffffffe
xor eax, eax
add edi, 2
cmp byte [edx + eax], 0
lea eax, [eax + 1]
jne 0x413310
lea ebx, [eax - 1]
mov dword [esi + 0x1c], ebx
mov dword [ecx], ebx
mov ebx, edx
test eax, eax
jns 0x413340
mov eax, 0xffffffff
jmp 0x413343
lea eax, [edi + 2]
push eax
call fcn.00408f00
add esp, 4
mov ecx, eax
mov eax, dword [esi + 0x74]
mov dword [esi + 4], ecx
mov dword [eax], ecx
test ebx, ebx
mov ecx, dword [esi + 0x1c]
jne 0x413379
mov ecx, ebx
not ecx
xor eax, eax
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
inc ecx
cmp byte [eax], 0
lea eax, [eax + 1]
jne 0x413370
mov dword [esi + 0x20], 0
mov eax, dword [esi + 4]
add edi, eax
cmp edi, eax
mov eax, dword [esi + 0x64]
jbe 0x4132f0
test ecx, ecx
jle 0x4132f0
add ecx, ebx
mov dword [esi + 0x1c], ecx
mov ecx, dword [esi + 0x44]
cmp byte [ebx], 0
je 0x4132f3
lea eax, [esi + 0x20]
push eax
push dword [esi + 0x1c]
push ebx
call fcn.0040ea20
add esp, 0xc
movzx ecx, word [esi + 0x20]
mov edx, dword [esi + 4]
mov word [edx], cx
add edx, 2
mov dword [esi + 4], edx
cmp edx, edi
jae 0x4132eb
add ebx, eax
cmp ebx, dword [esi + 0x1c]
mov eax, dword [esi + 0x64]
mov ecx, dword [esi + 0x44]
jb 0x4133a0
jmp 0x4132f3
mov eax, dword [eax]
mov ecx, dword [eax + 4]
mov dword [esi + 0x34], eax
movzx eax, word [eax]
and eax, 0xfffffffe
add eax, ecx
add eax, 0xfffffffe
xor ebx, ebx
mov dword [esi + 4], ecx
cmp eax, ecx
setae bl
xor edx, edx
mov ecx, eax
jmp dword [ebx*4 + 0x441944]
mov eax, dword [esi + 0xe4]
mov eax, dword [eax]
xor ecx, ecx
test eax, eax
sete cl
mov edi, dword [esi + 0xe8]
mov ebx, dword [esi + 0x3c]
jmp dword [ecx*4 + 0x4419cc]
push eax
call fcn.00408f10
add esp, 4
mov eax, dword [edi]
xor ecx, ecx
test eax, eax
sete cl
jmp dword [ecx*4 + 0x4419d4]
mov eax, dword [edi]
xor ecx, ecx
test eax, eax
sete cl
jmp dword [ecx*4 + 0x4419d4]
push eax
call fcn.00408f10
add esp, 4
mov edi, dword [esi + 0x5c]
mov ecx, edi
call fcn.0040a160
mov ecx, edi
call fcn.00409800
mov ecx, dword [esi + 0x64]
push dword [ecx]
call fcn.00437510
add esp, 4
mov edi, dword [esi + 0xa8]
mov ecx, edi
call fcn.00437960
jmp case.0x4127ff.12
mov eax, dword [esi + 0xec]
mov edi, dword [eax]
inc edi
mov ebx, dword [esi + 0xb4]
mov dword [eax], edi
mov ebx, dword [ebx]
push ebx
call fcn.00402af0
add esp, 4
xor ecx, ecx
cmp edi, eax
setb cl
jmp dword [ecx*4 + 0x44198c]
push edi
push ebx
call fcn.00402ad0
add esp, 8
push eax
call fcn.00402880
add esp, 4
xor ecx, ecx
test eax, eax
sete cl
jmp dword [ecx*4 + 0x4419a4]
inc edi
mov ebx, dword [esi + 0xb4]
mov eax, dword [esi + 0xec]
jmp 0x41349f
mov dword [esi + 0x34], eax
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov ebx, eax
inc eax
cmp byte [ebx], 0
jne 0x413500
sub ebx, dword [esi + 0x34]
mov eax, ebx
inc eax
jns 0x413520
mov eax, 0xffffffff
jmp 0x413526
lea eax, [ebx + ebx]
add eax, 2
push eax
call fcn.00408f00
add esp, 4
mov ecx, dword [esi + 0x7c]
mov dword [ecx], eax
mov edx, ebx
cmp dword [esi + 0x34], 0
jne 0x413559
mov edx, dword [esi + 0x34]
not edx
xor ecx, ecx
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
inc edx
cmp byte [ecx], 0
lea ecx, [ecx + 1]
jne 0x413550
mov dword [esi + 0x20], 0
lea ecx, [eax + ebx*2]
mov dword [esi + 0x1c], ecx
cmp ecx, eax
mov dword [esi + 4], eax
jbe 0x4135d0
test edx, edx
mov ecx, dword [esi + 0x8c]
jle 0x4135d6
mov ebx, dword [esi + 0x34]
mov edi, ebx
add edi, edx
mov edx, dword [esi + 0x7c]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp byte [ebx], 0
je 0x4135d9
lea eax, [esi + 0x20]
push eax
push edi
push ebx
call fcn.0040ea20
add esp, 0xc
movzx ecx, word [esi + 0x20]
mov edx, dword [esi + 4]
mov word [edx], cx
add edx, 2
mov dword [esi + 4], edx
cmp edx, dword [esi + 0x1c]
jae 0x4135d0
add ebx, eax
cmp ebx, edi
mov ecx, dword [esi + 0x8c]
mov edx, dword [esi + 0x7c]
jb 0x413590
jmp 0x4135d9
mov ecx, dword [esi + 0x8c]
mov edx, dword [esi + 0x7c]
mov eax, dword [esi + 4]
mov word [eax], 0
mov edi, dword [edx]
push 0
push 0
mov eax, dword [esi + 0x158]
push dword [eax]
push dword [ecx]
push edi
mov eax, dword [esi + 0xe8]
push dword [eax]
mov eax, dword [esi + 0xe4]
push dword [eax]
push dword [esi + 0x5c]
call fcn.0041b040
add esp, 0x20
xor eax, eax
test edi, edi
sete al
jmp dword [eax*4 + 0x4419ac]
jmp dword [0x4419b8]
push edi
call fcn.00408f10
add esp, 4
nop
nop
nop
nop
nop
nop
push edi
call fcn.00408f10
add esp, 4
jmp dword [0x4419c0]
jmp dword [0x441994]
jmp dword [0x44199c]
jmp dword [0x44199c]
movzx edx, dl
mov edi, eax
jmp dword [edx*4 + 0x44195c]
xor edx, edx
cmp word [ecx], 0x5c
sete dl
mov edi, ecx
jmp dword [edx*4 + 0x441964]
add ecx, 0xfffffffe
xor ebx, ebx
cmp ecx, dword [esi + 4]
setae bl
xor edx, edx
jmp dword [ebx*4 + 0x441944]
mov edi, dword [case.0x4132d7.6]
cmp word [ecx], 0
setne dl
nop
jmp edi
mov edx, edi
sub edx, dword [esi + 4]
sar edx, 1
mov eax, dword [esi + 0x44]
mov eax, dword [eax]
mov ecx, edx
and ecx, eax
mov dword [esi + 0x1c], edx
xor eax, edx
lea edx, [eax + ecx*2]
lea ecx, [eax + ecx*2]
inc ecx
lea eax, [edx + edx]
add eax, 2
test ecx, ecx
jns 0x4136cd
mov eax, 0xffffffff
push eax
call fcn.00408f00
add esp, 4
mov ebx, eax
mov eax, dword [esi + 0x80]
mov dword [eax], ebx
mov eax, dword [esi + 0x74]
mov edx, dword [eax]
cmp edi, dword [esi + 4]
je 0x4137a8
mov ecx, dword [esi + 0x34]
mov ecx, dword [ecx + 4]
mov edi, dword [esi + 0x1c]
lea eax, [edi - 1]
mov dword [esi + 0x34], eax
mov eax, edi
and eax, 3
mov dword [esi + 0x40], edx
je 0x41373d
xor edx, edx
mov dword [esi + 4], eax
nop
nop
nop
nop
movzx edi, word [ecx]
xor eax, eax
test di, di
setne al
lea ecx, [ecx + eax*2]
mov eax, dword [esi + 4]
mov word [ebx], di
add ebx, 2
inc edx
cmp eax, edx
jne 0x413710
sub dword [esi + 0x1c], edx
mov eax, dword [esi + 0x74]
mov edi, dword [esi + 0x80]
mov edx, dword [esi + 0x40]
jmp 0x413746
mov edi, dword [esi + 0x80]
mov eax, dword [esi + 0x74]
cmp dword [esi + 0x34], 3
jb 0x4137ae
mov edi, dword [esi + 0x1c]
nop
movzx eax, word [ecx]
xor edx, edx
test ax, ax
setne dl
mov word [ebx], ax
lea eax, [ecx + edx*2]
movzx ecx, word [ecx + edx*2]
xor edx, edx
test cx, cx
setne dl
mov word [ebx + 2], cx
lea ecx, [eax + edx*2]
movzx eax, word [eax + edx*2]
xor edx, edx
test ax, ax
setne dl
mov word [ebx + 4], ax
lea eax, [ecx + edx*2]
movzx edx, word [ecx + edx*2]
xor ecx, ecx
test dx, dx
setne cl
lea ecx, [eax + ecx*2]
mov word [ebx + 6], dx
add ebx, 8
add edi, 0xfffffffc
jne 0x413750
mov eax, dword [esi + 0x74]
mov edx, dword [esi + 0x40]
mov edi, dword [esi + 0x80]
movzx ecx, word [edx]
test cx, cx
je 0x4137d1
add edx, 2
nop
nop
nop
nop
nop
nop
nop
mov word [ebx], cx
add ebx, 2
movzx ecx, word [edx]
add edx, 2
test cx, cx
jne 0x4137c0
mov word [ebx], 0
mov eax, dword [eax]
xor ecx, ecx
test eax, eax
sete cl
jmp dword [ecx*4 + 0x44196c]
push eax
call fcn.00408f10
add esp, 4
jmp case.0x4132d7.17
mov edi, dword [edi]
sub ebx, edi
mov eax, 0xffffffff
cmp ebx, 0xfffffffe
jl 0x413804
add ebx, 2
mov eax, ebx
push eax
call fcn.00408f00
add esp, 4
mov ecx, dword [esi + 0xe8]
mov dword [ecx], eax
mov ecx, dword [case.0x4132d7.21]
nop
nop
nop
nop
nop
jmp ecx
push eax
push edi
call fcn.004343c0
add esp, 8
xor eax, eax
test edi, edi
sete al
jmp dword [eax*4 + 0x441984]
push edi
call fcn.00408f10
add esp, 4
mov eax, dword [esi + 0x134]
mov eax, dword [eax]
mov ebx, 0xffffffff
cmp byte [eax + ebx + 1], 0
lea ebx, [ebx + 1]
jne 0x413850
lea edx, [eax + ebx]
test ebx, ebx
mov dword [esi + 4], edx
mov dword [esi + 0x34], eax
mov dword [esi + 0x40], ebx
jle 0x4138aa
xor ebx, ebx
cmp byte [eax], 0
je 0x4138ac
xor ebx, ebx
mov edi, dword [esi + 0x34]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov dword [esi + 0x20], 0
lea eax, [esi + 0x20]
push eax
push edx
push edi
call fcn.0040ea20
mov edx, dword [esi + 4]
add esp, 0xc
lea ecx, [edi + eax]
inc ebx
cmp ecx, edx
jae 0x4138ac
cmp byte [edi + eax], 0
mov edi, ecx
jne 0x413880
jmp 0x4138ac
xor ebx, ebx
mov eax, ebx
inc eax
lea eax, [ebx + ebx + 2]
jns 0x4138ba
mov eax, 0xffffffff
push eax
call fcn.00408f00
add esp, 4
mov edx, eax
mov eax, dword [esi + 0xe4]
mov dword [eax], edx
mov dword [esi + 0x20], 0
lea eax, [edx + ebx*2]
mov dword [esi + 0x1c], eax
cmp eax, edx
jbe 0x413923
cmp dword [esi + 0x40], 0
mov edi, dword [esi + 0x34]
mov ebx, dword [esi + 4]
jle 0x413923
mov ecx, dword [esi + 0x5c]
nop
nop
nop
cmp byte [edi], 0
je 0x413926
lea eax, [esi + 0x20]
push eax
push ebx
push edi
mov dword [esi + 4], edx
call fcn.0040ea20
mov edx, dword [esi + 4]
add esp, 0xc
movzx ecx, word [esi + 0x20]
mov word [edx], cx
add edx, 2
cmp edx, dword [esi + 0x1c]
jae 0x413923
add edi, eax
cmp edi, ebx
mov ecx, dword [esi + 0x5c]
jb 0x4138f0
jmp 0x413926
mov ecx, dword [esi + 0x5c]
mov word [edx], 0
push 1
call fcn.004097c0
xor edi, edi
mov eax, dword [esi + 0xec]
jmp 0x413499
push edi
call fcn.00408f10
add esp, 4
push edi
call fcn.00408f10
add esp, 4
jmp dword [0x4418cc]
mov edi, dword [esi + 0xfc]
mov ecx, edi
call fcn.0040a160
mov ecx, edi
call fcn.00409800
nop
nop
nop
nop
nop
jmp dword [0x441aac]
mov al, 1
jmp dword [0x44182c]
mov ecx, dword [case.0x4127ff.21]
nop
nop
jmp ecx
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
mov dword [esp + 0xc], edi
jmp 0x4139eb
mov eax, esi
and eax, 1
xor esi, 1
lea esi, [esi + eax*2]
push edi
call fcn.00402af0
add esp, 4
xor ecx, ecx
cmp esi, eax
setb cl
mov al, 1
jmp dword [ecx*4 + 0x441ad4]
push esi
push edi
call fcn.00402b00
add esp, 8
mov ebx, eax
mov word [esp + 0x118], 0xd9a5
mov dword [esp + 0x11a], 0
mov dword [esp + 0x11e], 0
mov dword [esp + 0x122], 0
mov dword [esp + 0xb0], 0
mov eax, dword [esp + 0xb0]
cmp eax, 0xd
ja 0x413ab5
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 + 0x118]
lea edx, [eax + ecx]
add edx, 0xbc150d5c
add eax, 0xbc150d5c
and eax, ecx
add eax, eax
sub edx, eax
mov dword [esp + 0x48], edx
mov eax, dword [esp + 0x48]
add al, 0x7c
mov ecx, dword [esp + 0xb0]
mov byte [esp + ecx + 0x118], al
inc dword [esp + 0xb0]
mov eax, dword [esp + 0xb0]
cmp eax, 0xe
jb 0x413a60
push 2
lea eax, [esp + 0x11c]
push eax
mov dword [esp + 0x34], ebx
push ebx
call fcn.00402aa0
add esp, 0xc
xor ecx, ecx
test eax, eax
setne cl
mov bl, 1
jmp dword [ecx*4 + 0x441adc]
mov word [esp + 0x48], 0x212c
mov byte [esp + 0x4a], 0xd4
mov dword [esp + 0x4b], 0
mov dword [esp + 0x4f], 0
mov dword [esp + 0x53], 0
mov byte [esp + 0x57], 0
mov dword [esp + 4], 0
mov eax, dword [esp + 4]
cmp eax, 0xf
ja 0x413b6b
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp + 4]
mov ecx, dword [esp + 4]
movzx ecx, byte [esp + ecx + 0x48]
lea edx, [eax + 0x1d]
add eax, ecx
and edx, ecx
add edx, edx
sub eax, edx
add eax, 0xc91cd21d
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x10]
add al, 0x35
mov ecx, dword [esp + 4]
mov byte [esp + ecx + 0x48], al
mov eax, dword [esp + 4]
mov ecx, eax
and ecx, 1
xor eax, 1
lea eax, [eax + ecx*2]
mov dword [esp + 4], eax
mov eax, dword [esp + 4]
cmp eax, 0x10
jb 0x413b20
push 3
lea eax, [esp + 0x4c]
push eax
push dword [esp + 0x34]
call fcn.00402aa0
add esp, 0xc
xor ecx, ecx
test eax, eax
setne cl
jmp dword [ecx*4 + 0x441ae4]
movzx eax, bl
jmp dword [eax*4 + 0x441aec]
mov dword [esp + 0x3c], esi
mov word [esp + 0x118], 0x6dd9
mov dword [esp + 0x11a], 0
mov dword [esp + 0x11e], 0
mov dword [esp + 0x121], 0
mov dword [esp + 0xb0], 0
mov eax, dword [esp + 0xb0]
cmp eax, 0xc
ja 0x413c3f
nop
nop
nop
nop
mov eax, dword [esp + 0xb0]
mov ecx, dword [esp + 0xb0]
movzx ecx, byte [esp + ecx + 0x118]
lea edx, [eax + 0x8e]
and edx, ecx
add eax, ecx
add edx, edx
sub eax, edx
add eax, 0xdf3e568e
mov dword [esp + 0x48], eax
mov eax, dword [esp + 0x48]
mov ecx, eax
xor ecx, 0x1d
and eax, 0x1d
lea eax, [ecx + eax*2]
inc al
mov ecx, dword [esp + 0xb0]
mov byte [esp + ecx + 0x118], al
inc dword [esp + 0xb0]
mov eax, dword [esp + 0xb0]
cmp eax, 0xd
jb 0x413be0
lea eax, [esp + 0x118]
push eax
mov ebx, dword [esp + 0x30]
push ebx
call fcn.00402850
add esp, 8
mov esi, eax
mov word [esp + 0x118], 0x5956
mov byte [esp + 0x11a], 0x22
mov dword [esp + 0x11b], 0
mov byte [esp + 0x11f], 0
mov dword [esp + 0xb0], 0
mov eax, dword [esp + 0xb0]
cmp eax, 7
ja 0x413cf2
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 + 0x118]
lea edx, [eax + 0x3176e6a6]
add eax, 0xa6
and eax, ecx
or edx, ecx
sub edx, eax
mov dword [esp + 0x48], edx
mov eax, dword [esp + 0x48]
add al, 0x76
mov ecx, dword [esp + 0xb0]
mov byte [esp + ecx + 0x118], al
inc dword [esp + 0xb0]
mov eax, dword [esp + 0xb0]
cmp eax, 8
jb 0x413ca0
lea eax, [esp + 0x118]
push eax
push ebx
call fcn.004028a0
add esp, 8
fnstcw word [esp + 0xae]
movzx eax, word [esp + 0xae]
or eax, 0xc00
mov word [esp + 0xfe], ax
fldcw word [esp + 0xfe]
fistp dword [esp + 0x10c]
fldcw word [esp + 0xae]
mov eax, dword [esp + 0x10c]
mov dword [esp + 0x34], eax
mov word [esp + 0x118], 0x55cd
mov dword [esp + 0x11a], 0
mov dword [esp + 0x11e], 0
mov dword [esp + 0x122], 0
mov byte [esp + 0x126], 0
mov dword [esp + 0xb0], 0
mov eax, dword [esp + 0xb0]
cmp eax, 0xe
ja 0x413def
nop
nop
nop
nop
nop
nop
nop
mov ecx, dword [esp + 0xb0]
mov eax, dword [esp + 0xb0]
movzx edx, byte [esp + eax + 0x118]
lea eax, [ecx - 0x47a61e73]
and eax, edx
add ecx, edx
add ecx, 0xb859e18d
add eax, eax
mov edx, ecx
not edx
and edx, eax
not eax
and eax, ecx
sub eax, edx
mov dword [esp + 0x48], eax
mov eax, dword [esp + 0x48]
add al, 0x25
mov ecx, dword [esp + 0xb0]
mov byte [esp + ecx + 0x118], al
inc dword [esp + 0xb0]
mov eax, dword [esp + 0xb0]
cmp eax, 0xf
jb 0x413d90
lea eax, [esp + 0x118]
push eax
push ebx
call fcn.004028a0
add esp, 8
mov eax, 0xffffffff
mov edx, esi
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp byte [edx + eax + 1], 0
lea eax, [eax + 1]
jne 0x413e10
fnstcw word [esp + 0xac]
movzx ecx, word [esp + 0xac]
or ecx, 0xc00
mov word [esp + 0xfc], cx
fldcw word [esp + 0xfc]
fistp dword [esp + 0x108]
fldcw word [esp + 0xac]
mov ecx, dword [esp + 0x108]
mov dword [esp + 0x38], ecx
mov dword [esp + 0x48], 0
lea ecx, [esp + 0x118]
test eax, eax
jle 0x413ec0
mov esi, edx
add esi, eax
xor edi, edi
lea ecx, [esp + 0x118]
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp byte [edx], 0
je 0x413ec0
lea eax, [esp + 0x48]
push eax
push esi
push edx
mov ebx, edx
mov dword [esp + 0x3c], ecx
call fcn.0040ea20
add esp, 0xc
movzx ecx, word [esp + 0x48]
mov edx, dword [esp + 0x30]
mov word [edx], cx
mov ecx, dword [esp + 0x30]
add ecx, 2
cmp edi, 0x3fd
ja 0x413ec0
add ebx, eax
inc edi
cmp ebx, esi
mov edx, ebx
jb case.default.0x413ef2
nop
nop
mov word [ecx], 0
lea eax, [esp + 0x114]
push eax
lea eax, [esp + 0x44]
push eax
lea eax, [esp + 0x120]
push eax
call fcn.0040bf10
add esp, 0xc
movzx ecx, al
mov eax, 4
mov edi, dword [esp + 0xc]
mov esi, dword [esp + 0x3c]
jmp dword [ecx*4 + 0x441af4]
jmp dword [0x441b04]
xor eax, eax
cmp dword [esp + 0x38], 0
sete al
xor edx, edx
xor ebx, ebx
mov dword [esp + 0x104], eax
jmp dword [eax*4 + 0x441b0c]
lea esi, [esp + 0x48]
mov word [esp + 0x48], 0x6ddc
mov dword [esp + 0x4a], 0
mov dword [esp + 0x4e], 0
mov byte [esp + 0x52], 0
mov dword [esp + 0x10], 0
mov eax, dword [esp + 0x10]
cmp eax, 0xa
ja 0x413faf
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov ecx, dword [esp + 0x10]
mov eax, dword [esp + 0x10]
movzx edx, byte [esp + eax + 0x48]
add ecx, 0xfda38b0e
mov eax, ecx
and eax, edx
xor ecx, edx
lea ecx, [ecx + eax*2]
add eax, eax
mov edx, ecx
xor edx, eax
not eax
and eax, ecx
add eax, eax
sub eax, edx
mov dword [esp + 0xb0], eax
mov eax, dword [esp + 0xb0]
add al, 0x9e
mov ecx, dword [esp + 0x10]
mov byte [esp + ecx + 0x48], al
inc dword [esp + 0x10]
mov eax, dword [esp + 0x10]
cmp eax, 0xb
jb 0x413f60
push esi
push dword [esp + 0x30]
call fcn.00402850
add esp, 8
mov ecx, dword [case.0x413ef2.11]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
jmp ecx
xor ecx, ecx
test eax, eax
setne cl
mov ebx, 0x38e38e39
jmp dword [ecx*4 + 0x441b24]
mov dword [esp + 0x48], 0x7af6f9c6
mov dword [esp + 0x4c], 0
mov dword [esp + 0x10], 0
mov eax, dword [esp + 0x10]
cmp eax, 7
ja 0x414053
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x10]
movzx ecx, byte [esp + ecx + 0x48]
lea edx, [eax + 0x6af0cd9f]
add eax, 0x9f
and eax, ecx
or edx, ecx
sub edx, eax
mov dword [esp + 0xb0], edx
mov eax, dword [esp + 0xb0]
add al, 0xa7
mov ecx, dword [esp + 0x10]
mov byte [esp + ecx + 0x48], al
inc dword [esp + 0x10]
mov eax, dword [esp + 0x10]
cmp eax, 8
jb 0x414010
mov eax, dword [esp + 0x48]
push dword [eax + 0x14]
call fcn.00409610
add esp, 4
call fcn.00409630
mov esi, eax
and esi, 0xf
or esi, 0x10
xor edi, edi
xor eax, eax
cmp edi, esi
setb al
jmp dword [eax*4 + 0x441b34]
call fcn.00409630
mov ecx, eax
imul ebx
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 [esp + edi*2 + 0xb0], ax
inc edi
xor eax, eax
cmp edi, esi
setb al
jmp dword [eax*4 + 0x441b34]
mov word [esp + edi*2 + 0xb0], 0
mov dword [esp + 0x10], 0xbb4cb991
mov dword [esp + 0x14], 0xbf73bd7d
mov dword [esp + 0x18], 0xa387a14e
mov dword [esp + 0x1c], 0xa7a4a55e
mov dword [esp + 4], 0
mov eax, dword [esp + 4]
cmp eax, 0xf
ja 0x41413c
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp + 4]
mov ecx, dword [esp + 4]
movzx ecx, byte [esp + ecx + 0x10]
lea edx, [eax + 0x67]
and edx, ecx
add eax, ecx
add edx, edx
sub eax, edx
add eax, 0xe3893f67
mov dword [esp + 0x48], eax
mov eax, dword [esp + 0x48]
add al, 0x2f
mov ecx, dword [esp + 4]
mov byte [esp + ecx + 0x10], al
inc dword [esp + 4]
mov eax, dword [esp + 4]
cmp eax, 0x10
jb 0x414100
movzx eax, word [esp + 0x10]
lea edi, [esp + 0x48]
mov esi, edi
test ax, ax
je 0x414171
lea ecx, [esp + 0x12]
mov esi, edi
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov word [esi], ax
add esi, 2
movzx eax, word [ecx]
add ecx, 2
test ax, ax
jne 0x414160
mov word [esi], 0
movzx eax, word [esp + 0xb0]
test ax, ax
lea ebx, [esp + 0x110]
je 0x4141b1
lea ecx, [esp + 0xb2]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov word [esi], ax
add esi, 2
movzx eax, word [ecx]
add ecx, 2
test ax, ax
jne 0x4141a0
mov word [esi], 0
sub esi, edi
sar esi, 1
push ebx
push 0
push 0
push esi
push edi
push 0
call dword [0x447764]
mov edi, dword [esp + 0x110]
mov eax, edi
add eax, 4
lea eax, [edi + edi + 8]
jns 0x4141e0
mov eax, 0xffffffff
push eax
call fcn.00408f00
add esp, 4
push ebx
mov ebx, eax
push edi
push eax
push esi
lea eax, [esp + 0x58]
push eax
push 0
call dword [0x447764]
xor eax, eax
mov ecx, dword [esp + 0x34]
test ecx, ecx
sete al
jmp dword [eax*4 + 0x441b3c]
xor eax, eax
cmp ecx, 1
sete al
jmp dword [eax*4 + 0x441b44]
xor eax, eax
cmp ecx, 2
sete al
mov edi, dword [esp + 0xc]
jmp dword [eax*4 + 0x441b4c]
mov dword [esp + 0x10], 0x2b942554
mov dword [esp + 0x14], 0x2f5f299f
mov word [esp + 0x18], 0x2d2e
mov dword [esp + 0x1a], 0
mov dword [esp + 0x1e], 0
mov word [esp + 0x22], 0
mov dword [esp + 8], 0
mov eax, dword [esp + 8]
cmp eax, 0x13
ja 0x4142b5
nop
mov eax, dword [esp + 8]
mov ecx, dword [esp + 8]
movzx ecx, byte [esp + ecx + 0x10]
mov edx, eax
and edx, 0xc0798605
xor eax, 0x40798605
lea eax, [eax + edx*2]
lea edx, [eax + ecx]
and eax, ecx
add eax, eax
sub edx, eax
mov dword [esp + 4], edx
mov eax, dword [esp + 4]
add al, 0xdd
mov ecx, dword [esp + 8]
mov byte [esp + ecx + 0x10], al
inc dword [esp + 8]
mov eax, dword [esp + 8]
cmp eax, 0x14
jb 0x414270
mov eax, ebx
add eax, 0xfffffffe
nop
nop
nop
nop
nop
nop
cmp word [eax + 2], 0
lea eax, [eax + 2]
jne 0x4142c0
movzx ecx, word [esp + 0x10]
test cx, cx
je 0x414663
xor edx, edx
nop
nop
nop
nop
nop
nop
mov word [eax + edx], cx
movzx ecx, word [esp + edx + 0x12]
add edx, 2
test cx, cx
jne 0x4142e0
jmp 0x414661
mov ebx, esi
mov word [esp + 0xb0], 0xb52d
mov dword [esp + 0xb6], 0
mov dword [esp + 0xb2], 0
mov dword [esp + 4], 0
mov eax, dword [esp + 4]
cmp eax, 9
ja 0x414396
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp + 4]
mov ecx, dword [esp + 4]
movzx ecx, byte [esp + ecx + 0xb0]
lea edx, [eax + 0x25b815e9]
mov esi, edx
and esi, ecx
xor edx, ecx
lea edx, [edx + esi*2]
add eax, 0xe9
and eax, ecx
add eax, esi
mov ecx, edx
xor ecx, eax
not eax
and eax, edx
add eax, eax
sub eax, ecx
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x10]
add al, 0xa1
mov ecx, dword [esp + 4]
mov byte [esp + ecx + 0xb0], al
inc dword [esp + 4]
mov eax, dword [esp + 4]
cmp eax, 0xa
jb 0x414340
push 3
lea eax, [esp + 0xb4]
push eax
push dword [esp + 0x34]
call fcn.00402aa0
add esp, 0xc
xor ecx, ecx
test eax, eax
sete cl
mov esi, ebx
jmp dword [ecx*4 + 0x441aec]
xor eax, eax
mov ecx, 4
cmp ecx, 4
sete al
jmp dword [eax*4 + 0x441c44]
mov ecx, eax
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov ebx, ecx
inc ecx
cmp byte [ebx], 0
jne 0x4143e0
mov ecx, ebx
sub ecx, eax
xor edi, edi
mov dword [esp + 0xf4], ecx
test ecx, ecx
mov dword [esp + 0xf8], eax
jle 0x414437
cmp byte [eax], 0
je 0x414437
xor edi, edi
mov esi, dword [esp + 0xf8]
nop
nop
mov dword [esp + 0x48], 0
lea eax, [esp + 0x48]
push eax
push ebx
push esi
call fcn.0040ea20
add esp, 0xc
lea ecx, [esi + eax]
inc edi
cmp ecx, ebx
jae 0x414437
cmp byte [esi + eax], 0
mov esi, ecx
jne 0x414410
mov eax, edi
inc eax
lea eax, [edi + edi + 2]
jns 0x414445
mov eax, 0xffffffff
push eax
call fcn.00408f00
add esp, 4
mov dword [esp + 0x48], 0
lea ecx, [eax + edi*2]
mov esi, eax
mov dword [esp + 0x44], eax
mov dword [esp + 0x30], ecx
cmp ecx, eax
mov ecx, dword [esp + 0xf8]
jbe 0x414678
mov esi, dword [esp + 0x44]
cmp dword [esp + 0xf4], 0
jle 0x414678
mov esi, dword [esp + 0x44]
mov dword [esp + 0x38], edi
nop
nop
nop
nop
cmp byte [ecx], 0
je 0x414678
lea eax, [esp + 0x48]
push eax
push ebx
push ecx
mov edi, ecx
call fcn.0040ea20
add esp, 0xc
movzx ecx, word [esp + 0x48]
mov word [esi], cx
add esi, 2
cmp esi, dword [esp + 0x30]
jae 0x414674
add edi, eax
cmp edi, ebx
mov ecx, edi
mov edi, dword [esp + 0x38]
jb 0x414490
jmp 0x414678
mov dword [esp + 0x10], 0xdb37d9ee
mov dword [esp + 0x14], 0xe70be51c
mov word [esp + 0x18], 0xe1e0
mov dword [esp + 0x1a], 0
mov dword [esp + 0x1e], 0
mov word [esp + 0x22], 0
mov dword [esp + 8], 0
mov eax, dword [esp + 8]
cmp eax, 0x13
ja 0x41454f
nop
mov eax, dword [esp + 8]
mov ecx, dword [esp + 8]
movzx ecx, byte [esp + ecx + 0x10]
lea edx, [eax - 0x6f086464]
and edx, ecx
add eax, ecx
add eax, 0x90f79b9c
add edx, edx
sub eax, edx
mov dword [esp + 4], eax
mov eax, dword [esp + 4]
add al, 0xbc
mov ecx, dword [esp + 8]
mov byte [esp + ecx + 0x10], al
inc dword [esp + 8]
mov eax, dword [esp + 8]
cmp eax, 0x14
jb 0x414510
mov eax, ebx
add eax, 0xfffffffe
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp word [eax + 2], 0
lea eax, [eax + 2]
jne 0x414560
movzx ecx, word [esp + 0x10]
test cx, cx
mov edi, dword [esp + 0xc]
je 0x414663
xor edx, edx
nop
nop
mov word [eax + edx], cx
movzx ecx, word [esp + edx + 0x12]
add edx, 2
test cx, cx
jne 0x414580
jmp 0x414661
mov dword [esp + 0x10], 0x13fc1120
mov dword [esp + 0x14], 0x1fe81de6
mov word [esp + 0x18], 0x191e
mov dword [esp + 0x1a], 0
mov dword [esp + 0x1e], 0
mov word [esp + 0x22], 0
mov dword [esp + 8], 0
mov eax, dword [esp + 8]
cmp eax, 0x13
mov edi, dword [esp + 0xc]
ja 0x41461f
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp + 8]
mov ecx, dword [esp + 8]
movzx ecx, byte [esp + ecx + 0x10]
lea edx, [eax + 0x4944b9d3]
add eax, 0xd3
or eax, edx
and eax, ecx
or edx, ecx
sub edx, eax
mov dword [esp + 4], edx
mov eax, dword [esp + 4]
add al, 0x3b
mov ecx, dword [esp + 8]
mov byte [esp + ecx + 0x10], al
inc dword [esp + 8]
mov eax, dword [esp + 8]
cmp eax, 0x14
jb 0x4145e0
mov eax, ebx
add eax, 0xfffffffe
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp word [eax + 2], 0
lea eax, [eax + 2]
jne 0x414630
movzx ecx, word [esp + 0x10]
test cx, cx
je 0x414663
xor edx, edx
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov word [eax + edx], cx
movzx ecx, word [esp + edx + 0x12]
add edx, 2
test cx, cx
jne 0x414650
add eax, edx
mov word [eax], 0
mov eax, dword [case.0x413ef2.26]
nop
nop
nop
jmp eax
jmp 0x4146d5
mov edi, dword [esp + 0x38]
mov word [esi], 0
lea ebx, [esp + 0x48]
push ebx
push 0
push 0
push edi
mov ebx, dword [esp + 0x54]
push ebx
push 0
call dword [0x447764]
mov esi, dword [esp + 0x48]
lea eax, [esi + esi]
test esi, esi
jns 0x4146a4
mov eax, 0xffffffff
push eax
call fcn.00408f00
add esp, 4
lea ecx, [esp + 0x48]
push ecx
push esi
mov esi, eax
push eax
push edi
push ebx
push 0
call dword [0x447764]
jmp dword [0x441b2c]
push ebx
call fcn.00408f10
add esp, 4
mov edi, dword [esp + 0xc]
mov ebx, esi
push 0x80
push 0x60
push 5
push 0
push 0x100002
lea eax, [esp + 0x1c]
push eax
push ebx
call fcn.0043b4a0
add esp, 0x1c
mov esi, eax
not eax
shr eax, 0x1f
mov dword [esp + 0x38], ebx
jmp dword [eax*4 + 0x441b64]
jmp 0x4147fe
push 0
push dword [esp + 0x118]
push dword [esp + 0x48]
push dword [esp + 0x14]
call fcn.0043bcf0
add esp, 0x10
mov esi, eax
mov eax, dword [esp + 8]
mov dword [esp + 0x48], 0xb2b5b4b7
mov dword [esp + 0x4c], 0
mov dword [esp + 0x50], 0
mov word [esp + 0x54], 0
mov dword [esp + 0x10], 0
mov ecx, dword [esp + 0x10]
cmp ecx, 0xd
ja 0x4147b7
nop
nop
nop
nop
nop
nop
nop
mov edi, dword [esp + 0x10]
mov ecx, dword [esp + 0x10]
movzx ebx, byte [esp + ecx + 0x48]
lea ecx, [edi - 0x65e155e7]
lea edx, [edi + ebx]
add edx, 0x9a1eaa19
add edi, 0x19
and edi, ebx
and ecx, ebx
add ecx, edi
mov edi, edx
not edi
and edi, ecx
not ecx
and ecx, edx
sub ecx, edi
mov dword [esp + 0xb0], ecx
mov ecx, dword [esp + 0xb0]
add cl, 0x51
mov edx, dword [esp + 0x10]
mov byte [esp + edx + 0x48], cl
inc dword [esp + 0x10]
mov ecx, dword [esp + 0x10]
cmp ecx, 0xe
jb 0x414760
mov ecx, dword [0x447768]
test ecx, ecx
je case.default.0x414820
mov edx, dword [esp + 0x48]
xor edi, edi
mov ebx, dword [0x44776c]
nop
nop
nop
cmp dword [ebx + edi*8], 0x11081610
je 0x4147e0
inc edi
cmp ecx, edi
jne 0x4147d0
jmp case.default.0x414820
mov ecx, dword [ebx + edi*8 + 4]
cmp ecx, edx
je case.default.0x414820
push eax
push 1
push dword [0x447770]
push ecx
call fcn.00438da0
add esp, 0x10
mov edi, dword [esp + 0xc]
push dword [esp + 0x40]
call fcn.00437510
add esp, 4
mov dword [esp + 0x40], 0
not esi
shr esi, 0x1f
xor ecx, ecx
mov eax, 4
xor ebx, ebx
jmp dword [esi*4 + 0x441b6c]
xor edx, edx
cmp dword [esp + 0x34], 1
sete dl
xor eax, eax
mov ecx, 1
xor ebx, ebx
jmp dword [edx*4 + 0x441b74]
mov edx, dword [esp + 0x38]
mov esi, dword [esp + 0x3c]
jmp dword [ecx*4 + 0x441ba4]
mov dword [esp + 0x30], ebx
xor eax, eax
mov ecx, dword [esp + 0x34]
test ecx, ecx
setle al
jmp dword [eax*4 + 0x441bac]
xor eax, eax
cmp ecx, 2
setl al
mov ebx, edx
jmp dword [eax*4 + 0x441bb4]
sete al
movzx eax, al
jmp dword [eax*4 + 0x441bbc]
mov ecx, ebx
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, ecx
add ecx, 2
cmp word [eax], 0
jne 0x414890
sub eax, ebx
lea ecx, [eax + 0x3c]
cmp eax, 0xffffffc3
lea edi, [esp + 0x48]
jge 0x4148ae
mov ecx, 0xffffffff
push ecx
call fcn.00408f00
add esp, 4
mov dword [esp + 0x30], eax
mov dword [esp + 0xb0], 0xabaaadc2
mov dword [esp + 0xb4], 0
mov dword [esp + 0xb8], 0
mov byte [esp + 0xbc], 0
mov dword [esp + 0x10], 0
mov eax, dword [esp + 0x10]
cmp eax, 0xc
ja 0x414942
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x10]
movzx ecx, byte [esp + ecx + 0xb0]
lea edx, [eax + 0x1a]
add eax, ecx
and edx, ecx
add edx, edx
sub eax, edx
add eax, 0xdf68f41a
mov dword [esp + 0x48], eax
mov eax, dword [esp + 0x48]
add al, 0x4a
mov ecx, dword [esp + 0x10]
mov byte [esp + ecx + 0xb0], al
inc dword [esp + 0x10]
mov eax, dword [esp + 0x10]
cmp eax, 0xd
jb 0x414900
mov dword [esp + 0x48], 0xbb29b926
mov dword [esp + 0x4c], 0xbf5bbd23
mov dword [esp + 0x50], 0xa335a12c
mov dword [esp + 0x54], 0xa743a54a
mov dword [esp + 0x58], 0xab44a94a
mov dword [esp + 0x5c], 0xaf83ad8a
mov dword [esp + 0x60], 0x53c85149
mov dword [esp + 0x64], 0x57b155b5
mov dword [esp + 0x68], 0x5bba5976
mov dword [esp + 0x6c], 0x5fcc5dc1
mov dword [esp + 0x70], 0x43d541bd
mov dword [esp + 0x74], 0x476445d7
mov dword [esp + 0x78], 0x4bae4969
mov dword [esp + 0x7c], 0x4f6e4d6a
mov word [esp + 0x80], 0x714e
mov dword [esp + 0x82], 0
mov dword [esp + 0x85], 0
mov dword [esp + 4], 0
mov eax, dword [esp + 4]
cmp eax, 0x40
ja 0x414a35
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp + 4]
mov ecx, dword [esp + 4]
movzx ecx, byte [esp + ecx + 0x48]
lea edx, [eax + 0x67]
mov esi, 0x36c34098
sub esi, eax
or esi, ecx
not ecx
or ecx, edx
add esi, ecx
mov eax, 0xfffffffe
sub eax, esi
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x10]
add al, 0x2f
mov ecx, dword [esp + 4]
mov byte [esp + ecx + 0x48], al
inc dword [esp + 4]
mov eax, dword [esp + 4]
cmp eax, 0x41
jb 0x4149f0
movzx ecx, word [esp + 0x48]
mov esi, dword [esp + 0x30]
mov eax, esi
test cx, cx
je 0x414a61
lea edx, [esp + 0x4a]
mov eax, esi
nop
nop
nop
nop
nop
mov word [eax], cx
add eax, 2
movzx ecx, word [edx]
add edx, 2
test cx, cx
jne 0x414a50
mov word [eax], 0
movzx ecx, word [ebx]
test cx, cx
je 0x414a91
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 0x414a80
mov word [eax], 0
movzx ecx, word [esp + 0xb0]
test cx, cx
je 0x414ac1
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 0x414ab0
mov word [eax], 0
mov dword [esp + 0x88], 0
mov dword [esp + 0x84], 0
mov dword [esp + 0x80], 0
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], 0x44
push 0xd3a7a30
push dword [0x44775c]
call fcn.0043aaf0
add esp, 8
lea ecx, [esp + 0x10]
push ecx
push edi
push 0
push 0
push 0x8000000
push 0
push 0
push 0
push esi
push 0
call eax
xor ecx, ecx
test eax, eax
setne cl
jmp dword [ecx*4 + 0x441c04]
mov eax, dword [esp + 0x40]
xor ecx, ecx
test eax, eax
setne cl
mov edi, dword [esp + 0xc]
mov esi, dword [esp + 0x3c]
jmp dword [ecx*4 + 0x441c1c]
sete al
movzx eax, al
mov ebx, edx
jmp dword [eax*4 + 0x441bc4]
mov eax, dword [esp + 0x104]
jmp dword [eax*4 + 0x441bcc]
jmp dword [0x441bf8]
push 0xa013361e
push dword [0x44775c]
call fcn.0043aaf0
add esp, 8
push 0
push 0
push dword [esp + 0x48]
push 0x41ce00
push 0
push 0
call eax
mov esi, eax
xor eax, eax
test esi, esi
setne al
jmp dword [eax*4 + 0x441bfc]
mov eax, dword [esp + 0x40]
xor ecx, ecx
test eax, eax
setne cl
mov esi, dword [esp + 0x3c]
jmp dword [ecx*4 + 0x441c1c]
xor eax, eax
test ebx, ebx
sete al
jmp dword [eax*4 + 0x441c24]
push ebx
call fcn.00408f10
add esp, 4
xor ecx, ecx
mov ebx, dword [esp + 0x30]
test ebx, ebx
sete cl
xor eax, eax
jmp dword [ecx*4 + 0x441c2c]
mov dword [esp + 0xb4], 0xffffffff
mov dword [esp + 0xb0], 0xb8797400
mov dword [esp + 0x48], 0xb2b5b4b7
mov dword [esp + 0x4c], 0
mov dword [esp + 0x50], 0
mov word [esp + 0x54], 0
mov dword [esp + 4], 0
mov eax, dword [esp + 4]
cmp eax, 0xd
ja 0x414cf0
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov edx, dword [esp + 4]
mov eax, dword [esp + 4]
movzx edi, byte [esp + eax + 0x48]
lea eax, [edx - 0x65e155e7]
lea ecx, [edx + edi]
add ecx, 0x9a1eaa19
add edx, 0x19
and edx, edi
and eax, edi
add eax, edx
mov edx, ecx
not edx
and edx, eax
not eax
and eax, ecx
sub eax, edx
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x10]
add al, 0x51
mov ecx, dword [esp + 4]
mov byte [esp + ecx + 0x48], al
inc dword [esp + 4]
mov eax, dword [esp + 4]
cmp eax, 0xe
jb 0x414ca0
mov eax, dword [0x447768]
test eax, eax
je 0x41547b
mov ecx, dword [esp + 0x48]
xor edx, edx
mov edi, dword [0x44776c]
nop
nop
nop
nop
nop
nop
nop
cmp dword [edi + edx*8], 0xb33e16a3
je 0x415457
inc edx
cmp eax, edx
jne 0x414d10
jmp 0x41547b
mov word [esp + 0x48], 0xafb6
mov byte [esp + 0x4a], 0xda
mov dword [esp + 0x4b], 0
mov byte [esp + 0x4f], 0
mov dword [esp + 0x10], 0
mov eax, dword [esp + 0x10]
cmp eax, 7
ja 0x414da3
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x10]
movzx ecx, byte [esp + ecx + 0x48]
lea edx, [eax - 0x406bd924]
add eax, 0xdc
and eax, ecx
or edx, ecx
sub edx, eax
mov dword [esp + 0xb0], edx
mov eax, dword [esp + 0xb0]
add al, 0xfc
mov ecx, dword [esp + 0x10]
mov byte [esp + ecx + 0x48], al
inc dword [esp + 0x10]
mov eax, dword [esp + 0x10]
cmp eax, 8
jb 0x414d60
lea esi, [esp + 0x48]
push esi
push dword [esp + 0x30]
call fcn.00402850
add esp, 8
mov dword [esp + 0x34], eax
mov word [esp + 0x48], 0x3bc9
mov byte [esp + 0x4a], 0xb4
mov dword [esp + 0x4b], 0
mov byte [esp + 0x4f], 0
mov dword [esp + 0x10], 0
mov eax, dword [esp + 0x10]
cmp eax, 7
mov edi, dword [esp + 0x38]
ja 0x414e32
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x10]
movzx ecx, byte [esp + ecx + 0x48]
lea edx, [eax + 0x39]
add eax, ecx
and edx, ecx
add edx, edx
sub eax, edx
add eax, 0x948f2d39
mov dword [esp + 0xb0], eax
mov eax, dword [esp + 0xb0]
add al, 0x71
mov ecx, dword [esp + 0x10]
mov byte [esp + ecx + 0x48], al
inc dword [esp + 0x10]
mov eax, dword [esp + 0x10]
cmp eax, 8
jb 0x414df0
push esi
push dword [esp + 0x30]
call fcn.00402850
add esp, 8
mov ecx, eax
mov eax, 0xfffffffe
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp word [edi + eax + 2], 0
lea eax, [eax + 2]
jne case.default.0x414e73
sar eax, 1
xor ebx, ebx
mov edx, dword [esp + 0x34]
test edx, edx
setne bl
mov dword [esp + 0x2c], ecx
mov dword [esp + 0xf8], ebx
jmp dword [ebx*4 + 0x441b7c]
xor ebx, ebx
xor edx, edx
test ecx, ecx
setne dl
mov dword [esp + 0x44], edx
jmp dword [edx*4 + 0x441b84]
nop
nop
mov esi, ecx
inc ecx
cmp byte [esi], 0
jne 0x414e90
sub esi, dword [esp + 0x2c]
inc esi
jmp 0x41508f
mov dword [esp + 0x88], 0
mov dword [esp + 0x84], 0
mov dword [esp + 0x80], 0
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], 0x44
push 0xd3a7a30
push dword [0x44775c]
call fcn.0043aaf0
add esp, 8
lea ecx, [esp + 0x10]
push ecx
lea ecx, [esp + 0x4c]
push ecx
push 0
push 0
push 0
push 0
push 0
push 0
push dword [esp + 0x50]
push ebx
call eax
xor ecx, ecx
test eax, eax
setne cl
jmp dword [ecx*4 + 0x441bd4]
mov eax, dword [esp + 0x10]
mov dword [esp + 0xb0], 0xb2b5b4b7
mov dword [esp + 0xb4], 0
mov dword [esp + 0xb8], 0
mov word [esp + 0xbc], 0
mov dword [esp + 8], 0
mov ecx, dword [esp + 8]
cmp ecx, 0xd
ja 0x415017
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov esi, dword [esp + 8]
mov ecx, dword [esp + 8]
movzx edi, byte [esp + ecx + 0xb0]
lea ecx, [esi - 0x65e155e7]
lea edx, [esi + edi]
add edx, 0x9a1eaa19
add esi, 0x19
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 + 4], ecx
mov ecx, dword [esp + 4]
add cl, 0x51
mov edx, dword [esp + 8]
mov byte [esp + edx + 0xb0], cl
inc dword [esp + 8]
mov ecx, dword [esp + 8]
cmp ecx, 0xe
jb 0x414fc0
mov ecx, dword [0x447768]
test ecx, ecx
je case.0x414820.26
mov edx, dword [esp + 0xb0]
xor esi, esi
mov edi, dword [0x44776c]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp dword [edi + esi*8], 0x11081610
je 0x4155be
inc esi
cmp ecx, esi
jne 0x415040
jmp case.0x414820.26
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov ecx, edx
inc edx
cmp byte [ecx], 0
jne case.default.0x415086
sub ecx, dword [esp + 0x34]
mov edx, ecx
and edx, 1
xor ecx, 1
lea ebx, [ecx + edx*2]
xor edx, edx
mov ecx, dword [esp + 0x2c]
test ecx, ecx
setne dl
mov dword [esp + 0x44], edx
jmp dword [edx*4 + 0x441b84]
xor esi, esi
mov dword [esp + 0x48], 0xd34fd144
mov dword [esp + 0x4c], 0xdf70dd44
mov dword [esp + 0x50], 0xdb4cd94a
mov dword [esp + 0x54], 0xc716c507
mov word [esp + 0x58], 0xc1c6
mov dword [esp + 0x5e], 0
mov dword [esp + 0x5a], 0
mov dword [esp + 4], 0
mov ecx, dword [esp + 4]
cmp ecx, 0x19
ja 0x41511c
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov ecx, dword [esp + 4]
mov edx, dword [esp + 4]
movzx edx, byte [esp + edx + 0x48]
lea edi, [ecx - 0x593eacdd]
add ecx, 0x23
and ecx, edx
or edi, edx
sub edi, ecx
mov dword [esp + 0x10], edi
mov ecx, dword [esp + 0x10]
add cl, 0xb
mov edx, dword [esp + 4]
mov byte [esp + edx + 0x48], cl
inc dword [esp + 4]
mov ecx, dword [esp + 4]
cmp ecx, 0x1a
jb 0x4150e0
lea edx, [esp + 0x48]
lea edi, [esp + 0xb0]
mov ecx, 4
xchg esi, edx
rep movsd dword es:[edi], dword [esi]
xchg esi, edx
lea edx, [esp + 0x58]
mov ecx, 1
lea edi, [esp + 0xc0]
xchg esi, edx
rep movsw word es:[edi], word [esi]
xchg esi, edx
mov ecx, 0xfffffffe
nop
nop
cmp word [esp + ecx + 0xb2], 0
lea ecx, [ecx + 2]
jne 0x415150
sar ecx, 1
mov edx, ebx
mov dword [esp + 0xf4], ebx
add eax, ebx
add eax, esi
lea edx, [eax + ecx]
add ecx, eax
add ecx, 2
lea eax, [edx + edx]
add eax, 4
test ecx, ecx
jns 0x415184
mov eax, 0xffffffff
push eax
call fcn.00408f00
add esp, 4
mov ebx, eax
movzx eax, word [esp + 0xb0]
mov dword [esp + 0x30], ebx
test ax, ax
je 0x4151c1
lea ecx, [esp + 0xb2]
mov ebx, dword [esp + 0x30]
nop
nop
nop
nop
nop
mov word [ebx], ax
add ebx, 2
movzx eax, word [ecx]
add ecx, 2
test ax, ax
jne 0x4151b0
mov dword [ebx], 0x220020
add ebx, 4
mov ecx, dword [esp + 0x38]
movzx eax, word [ecx]
test ax, ax
mov edx, dword [esp + 0x34]
je 0x4151f1
add ecx, 2
nop
nop
nop
mov word [ebx], ax
add ebx, 2
movzx eax, word [ecx]
add ecx, 2
test ax, ax
jne 0x4151e0
lea edi, [ebx + 2]
mov word [ebx], 0x22
jmp dword [0x441b8c]
push dword [esp + 0x38]
call fcn.00408f10
mov edx, dword [esp + 0x38]
add esp, 4
mov eax, dword [esp + 0xf8]
jmp dword [eax*4 + 0x441b94]
mov ecx, dword [esp + 0x2c]
mov eax, dword [esp + 0x44]
jmp dword [eax*4 + 0x441b9c]
mov word [edi], 0x2c
mov eax, 0xffffffff
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp byte [ecx + eax + 1], 0
lea eax, [eax + 1]
jne 0x415240
lea ebx, [edi + 2]
mov dword [esp + 0x48], 0
cmp esi, 2
jl 0x415595
test eax, eax
jle 0x415595
mov edx, ecx
add edx, eax
lea eax, [edi + esi*2]
mov dword [esp + 0x2c], eax
mov edi, dword [esp + 0xc]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp byte [ecx], 0
je 0x415599
lea eax, [esp + 0x48]
push eax
push edx
push ecx
mov esi, ecx
mov edi, edx
call fcn.0040ea20
add esp, 0xc
movzx ecx, word [esp + 0x48]
mov word [ebx], cx
add ebx, 2
cmp ebx, dword [esp + 0x2c]
jae 0x415595
add esi, eax
cmp esi, edi
mov ecx, esi
mov edx, edi
mov edi, dword [esp + 0xc]
jb 0x415280
jmp 0x415599
mov word [edi], 0x2c
mov eax, 0xffffffff
mov ecx, dword [esp + 0x2c]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp byte [edx + eax + 1], 0
lea eax, [eax + 1]
jne 0x4152e0
lea edi, [ebx + 4]
mov dword [esp + 0x48], 0
cmp dword [esp + 0xf4], 2
mov dword [esp + 0x100], esi
jl 0x4155fc
test eax, eax
jle 0x4155fc
mov esi, edx
add esi, eax
mov eax, dword [esp + 0xf4]
lea eax, [ebx + eax*2]
add eax, 2
mov dword [esp + 0x34], eax
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp byte [edx], 0
je 0x4155fc
lea eax, [esp + 0x48]
push eax
push esi
push edx
mov ebx, edx
call fcn.0040ea20
add esp, 0xc
movzx ecx, word [esp + 0x48]
mov word [edi], cx
add edi, 2
cmp edi, dword [esp + 0x34]
jae 0x4155f8
add ebx, eax
cmp ebx, esi
mov ecx, dword [esp + 0x2c]
mov edx, ebx
jb 0x415330
jmp 0x4155fc
jmp dword [0x441c0c]
mov eax, dword [esp + 0x10]
mov dword [esp + 0xb0], 0xb2b5b4b7
mov dword [esp + 0xb4], 0
mov dword [esp + 0xb8], 0
mov word [esp + 0xbc], 0
mov dword [esp + 8], 0
mov ecx, dword [esp + 8]
cmp ecx, 0xd
ja 0x415417
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov esi, dword [esp + 8]
mov ecx, dword [esp + 8]
movzx edi, byte [esp + ecx + 0xb0]
lea ecx, [esi - 0x65e155e7]
lea edx, [esi + edi]
add edx, 0x9a1eaa19
add esi, 0x19
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 + 4], ecx
mov ecx, dword [esp + 4]
add cl, 0x51
mov edx, dword [esp + 8]
mov byte [esp + edx + 0xb0], cl
inc dword [esp + 8]
mov ecx, dword [esp + 8]
cmp ecx, 0xe
jb 0x4153c0
mov ecx, dword [0x447768]
test ecx, ecx
je case.0x414820.40
mov edx, dword [esp + 0xb0]
xor esi, esi
mov edi, dword [0x44776c]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp dword [edi + esi*8], 0x11081610
je 0x415637
inc esi
cmp ecx, esi
jne 0x415440
jmp case.0x414820.40
mov eax, dword [edi + edx*8 + 4]
cmp eax, ecx
je 0x41547b
lea ecx, [esp + 0xb0]
push ecx
push 0
push esi
push 3
push dword [0x447770]
push eax
call fcn.00438da0
add esp, 0x18
mov dword [esp + 0x48], 0xb2b5b4b7
mov dword [esp + 0x4c], 0
mov dword [esp + 0x50], 0
mov word [esp + 0x54], 0
mov dword [esp + 4], 0
mov eax, dword [esp + 4]
cmp eax, 0xd
ja 0x415500
nop
nop
nop
nop
nop
mov edx, dword [esp + 4]
mov eax, dword [esp + 4]
movzx edi, byte [esp + eax + 0x48]
lea eax, [edx - 0x65e155e7]
lea ecx, [edx + edi]
add ecx, 0x9a1eaa19
add edx, 0x19
and edx, edi
and eax, edi
add eax, edx
mov edx, ecx
not edx
and edx, eax
not eax
and eax, ecx
sub eax, edx
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x10]
add al, 0x51
mov ecx, dword [esp + 4]
mov byte [esp + ecx + 0x48], al
inc dword [esp + 4]
mov eax, dword [esp + 4]
cmp eax, 0xe
jb 0x4154b0
mov eax, dword [0x447768]
test eax, eax
je case.default.0x41555d
mov ecx, dword [esp + 0x48]
xor edx, edx
mov edi, dword [0x44776c]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp dword [edi + edx*8], 0x11081610
je 0x415530
inc edx
cmp eax, edx
jne 0x415520
jmp case.default.0x41555d
mov eax, dword [edi + edx*8 + 4]
cmp eax, ecx
je case.default.0x41555d
push esi
push 1
push dword [0x447770]
push eax
call fcn.00438da0
add esp, 0x10
mov eax, dword [esp + 0x40]
xor ecx, ecx
test eax, eax
setne cl
mov edi, dword [esp + 0xc]
mov esi, dword [esp + 0x3c]
jmp dword [ecx*4 + 0x441c1c]
push eax
call fcn.00437510
add esp, 4
xor eax, eax
test ebx, ebx
sete al
jmp dword [eax*4 + 0x441c24]
xor ecx, ecx
mov ebx, dword [esp + 0x30]
test ebx, ebx
sete cl
xor eax, eax
jmp dword [ecx*4 + 0x441c2c]
jmp dword [0x441c38]
mov edi, dword [esp + 0xc]
mov word [ebx], 0
xor edx, edx
mov dword [esp + 0x34], 0
xor eax, eax
mov esi, dword [esp + 0x3c]
mov ecx, 1
mov ebx, dword [esp + 0x30]
jmp dword [ecx*4 + 0x441ba4]
mov ecx, dword [edi + esi*8 + 4]
cmp ecx, edx
jne 0x415773
mov edi, dword [esp + 0xc]
mov esi, dword [esp + 0x3c]
jmp dword [0x441be0]
nop
nop
nop
nop
nop
nop
nop
nop
jmp dword [0x441be8]
mov eax, dword [esp + 0x40]
xor ecx, ecx
test eax, eax
setne cl
jmp dword [ecx*4 + 0x441c1c]
mov ecx, dword [esp + 0x2c]
mov word [edi], 0
mov eax, dword [esp + 0x44]
mov esi, dword [esp + 0x100]
jmp dword [eax*4 + 0x441b9c]
xor edx, edx
mov dword [esp + 0x34], 0
xor eax, eax
mov edi, dword [esp + 0xc]
mov esi, dword [esp + 0x3c]
mov ecx, 1
mov ebx, dword [esp + 0x30]
jmp dword [ecx*4 + 0x441ba4]
mov ecx, dword [edi + esi*8 + 4]
cmp ecx, edx
je case.0x414820.40
push eax
push 1
push dword [0x447770]
push ecx
call fcn.00438da0
add esp, 0x10
jmp case.0x414820.40
jmp dword [0x441c18]
mov eax, dword [esp + 0x10]
mov dword [esp + 0xb0], 0xb2b5b4b7
mov dword [esp + 0xb4], 0
mov dword [esp + 0xb8], 0
mov word [esp + 0xbc], 0
mov dword [esp + 8], 0
mov ecx, dword [esp + 8]
cmp ecx, 0xd
ja 0x415707
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov esi, dword [esp + 8]
mov ecx, dword [esp + 8]
movzx edi, byte [esp + ecx + 0xb0]
lea ecx, [esi - 0x65e155e7]
lea edx, [esi + edi]
add edx, 0x9a1eaa19
add esi, 0x19
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 + 4], ecx
mov ecx, dword [esp + 4]
add cl, 0x51
mov edx, dword [esp + 8]
mov byte [esp + edx + 0xb0], cl
inc dword [esp + 8]
mov ecx, dword [esp + 8]
cmp ecx, 0xe
jb 0x4156b0
mov ecx, dword [0x447768]
test ecx, ecx
je 0x415660
mov edx, dword [esp + 0xb0]
xor esi, esi
mov edi, dword [0x44776c]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp dword [edi + esi*8], 0x11081610
je 0x415750
inc esi
cmp ecx, esi
jne 0x415730
jmp 0x415660
mov ecx, dword [edi + esi*8 + 4]
cmp ecx, edx
je 0x415660
push eax
push 1
push dword [0x447770]
push ecx
call fcn.00438da0
add esp, 0x10
jmp 0x415660
push eax
push 1
push dword [0x447770]
push ecx
call fcn.00438da0
add esp, 0x10
mov edi, dword [esp + 0xc]
mov esi, dword [esp + 0x3c]
jmp dword [0x441be0]
mov eax, dword [case.0x41555d.11]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
jmp eax
xor ecx, ecx
cmp eax, 4
sete cl
jmp dword [ecx*4 + 0x441c44]
push ebx
call fcn.00408f10
add esp, 4
push ebx
call fcn.00408f10
add esp, 4
xor eax, eax
jmp dword [0x441c3c]
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret