Function at 0x40fdd9
Capabilities:
Encode data using xor
Resolve function by parsing pe exports

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff8
sub esp, 0x338
mov esi, esp
push eax
mov dword [esi + 0x40], esp
sub esp, 0x10
mov eax, esp
and eax, 0xfffffff8
mov dword [esi + 0x84], eax
mov esp, eax
push eax
sub esp, 0xc
mov eax, esp
and eax, 0xfffffff8
mov dword [esi + 0x2c], eax
mov esp, eax
push eax
mov dword [esi + 0x48], esp
sub esp, 0x10
mov eax, esp
and eax, 0xfffffff8
mov dword [esi + 0xa0], eax
mov esp, eax
push eax
sub esp, 0xc
mov eax, esp
and eax, 0xfffffff8
mov dword [esi + 0xa4], eax
mov esp, eax
push eax
sub esp, 0x64
mov eax, esp
and eax, 0xfffffff8
mov dword [esi + 0x7c], eax
mov esp, eax
push eax
sub esp, 0x64
mov eax, esp
and eax, 0xfffffff8
mov dword [esi + 0x78], eax
mov esp, eax
push eax
sub esp, 0x64
mov eax, esp
and eax, 0xfffffff8
mov dword [esi + 0x74], eax
mov esp, eax
push eax
sub esp, 0x64
mov eax, esp
and eax, 0xfffffff8
mov dword [esi + 0x70], eax
mov esp, eax
push eax
sub esp, 0x64
mov eax, esp
and eax, 0xfffffff8
mov dword [esi + 0x6c], eax
mov esp, eax
push eax
sub esp, 0x64
mov eax, esp
and eax, 0xfffffff8
mov esp, eax
push eax
sub esp, 0x20
mov edi, esp
sub esp, 0x100
mov dword [esi + 0x3c], esp
sub esp, 8
mov ecx, esp
and ecx, 0xfffffff8
mov dword [esi + 0x4c], ecx
mov esp, ecx
push eax
sub esp, 0xc
mov ecx, esp
and ecx, 0xfffffff8
mov dword [esi + 0x64], ecx
mov esp, ecx
push eax
sub esp, 0x24
mov ecx, esp
and ecx, 0xfffffff8
mov dword [esi + 0x8c], ecx
mov esp, ecx
push eax
mov dword [esi + 0x44], esp
push eax
mov edx, esp
push eax
mov dword [esi + 0x94], esp
sub esp, 0x70
mov ecx, esp
and ecx, 0xfffffff8
mov dword [esi + 0x34], ecx
mov esp, ecx
push eax
sub esp, 0x14
mov ecx, esp
and ecx, 0xfffffff8
mov dword [esi + 0x90], ecx
mov esp, ecx
push eax
sub esp, 0xc
mov ecx, esp
and ecx, 0xfffffff8
mov dword [esi + 0x98], ecx
mov esp, ecx
push eax
sub esp, 0x64
mov ecx, esp
and ecx, 0xfffffff8
mov dword [esi + 0x5c], ecx
mov esp, ecx
push eax
sub esp, 0x14
mov ecx, esp
and ecx, 0xfffffff8
mov dword [esi + 0x9c], ecx
mov esp, ecx
push eax
mov dword [esi + 0x58], esp
mov dword [esi + 0x50], edi
mov dword [esi + 0x60], edx
mov dword [esi + 0x68], eax
sub esp, 0x800
mov dword [esi + 0x30], esp
sub esp, 0x88
mov eax, esp
and eax, 0xfffffff8
mov dword [esi + 0x28], eax
mov esp, eax
push eax
sub esp, 0x40
mov dword [esi + 0x80], esp
sub esp, 0x10
mov dword [esi + 0x54], esp
mov ebx, dword [0x442b44]
mov dword [esi + 8], 0x236f5316
mov dword [esi + 0x10], 0
mov dword [esi + 0xc], 0
mov dword [esi + 0x2b0], 0
mov eax, dword [esi + 0x2b0]
cmp eax, 0xb
ja 0x40f6de
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov edx, dword [esi + 0x2b0]
mov eax, dword [esi + 0x2b0]
movzx ecx, byte [esi + eax + 8]
lea eax, [edx + 0x26]
and eax, ecx
mov edi, 0xc97b4cd9
sub edi, edx
or edi, ecx
not edi
add edi, ecx
sub edi, eax
mov dword [esi + 0xa8], edi
mov eax, dword [esi + 0xa8]
add al, 0xf6
mov ecx, dword [esi + 0x2b0]
mov byte [esi + ecx + 8], al
inc dword [esi + 0x2b0]
mov eax, dword [esi + 0x2b0]
cmp eax, 0xc
jb 0x40f690
mov edx, dword [str.xlKStP___DolphinLoaderBot]
mov dword [esi + 0xa8], 0x2ee6f2cd
mov dword [esi + 0xac], 0xfef9f4e6
mov dword [esi + 0xb0], 0xf6c1f8ee
mov dword [esi + 0xb4], 0xfed1eefd
mov dword [esi + 0xb8], 0xd100c0c7
mov dword [esi + 0xbc], 0x1b13d7c5
mov dword [esi + 0xc0], 0xc7080506
mov dword [esi + 0xc4], 0x4f0bcdc9
mov word [esi + 0xc8], 0
mov byte [esi + 0xca], 0
mov dword [esi + 4], 0
mov eax, dword [esi + 4]
cmp eax, 0x22
ja 0x40f7b4
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esi + 4]
mov ecx, dword [esi + 4]
movzx ecx, byte [esi + ecx + 0xa8]
lea edi, [eax + ecx]
add edi, 0x42272652
add eax, 0x42272652
and eax, ecx
add eax, eax
sub edi, eax
mov dword [esi + 0x2b0], edi
mov eax, dword [esi + 0x2b0]
mov ecx, eax
or ecx, 0xc1
and eax, 0xc1
add eax, ecx
inc al
mov ecx, dword [esi + 4]
mov byte [esi + ecx + 0xa8], al
inc dword [esi + 4]
mov eax, dword [esi + 4]
cmp eax, 0x23
jb 0x40f760
movzx eax, byte [esi + 0xa8]
lea ecx, [esi + 0x2b0]
test al, al
je 0x40f7db
lea edi, [esi + 0xa9]
nop
nop
nop
nop
nop
mov byte [ecx], al
inc ecx
movzx eax, byte [edi]
inc edi
test al, al
jne 0x40f7d0
mov byte [ecx], 0
movzx eax, byte [edx]
test al, al
je 0x40f7fb
inc edx
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov byte [ecx], al
inc ecx
movzx eax, byte [edx]
inc edx
test al, al
jne 0x40f7f0
mov byte [ecx], 0
movzx eax, byte [esi + 8]
test al, al
je 0x40f81b
lea edx, [esi + 9]
nop
nop
nop
nop
nop
nop
nop
mov byte [ecx], al
inc ecx
movzx eax, byte [edx]
inc edx
test al, al
jne 0x40f810
mov byte [ecx], 0
movzx eax, byte [ebx]
test al, al
je 0x40f83b
inc ebx
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov byte [ecx], al
inc ecx
movzx eax, byte [ebx]
inc ebx
test al, al
jne 0x40f830
mov byte [ecx], 0
lea edx, [esi + 0x2b0]
mov edi, ecx
xor edi, edx
not edx
and edx, ecx
add edx, edx
mov dword [esi + 0xa8], 0x33a5358b
mov dword [esi + 0xac], 0x2fbc31a0
mov dword [esi + 0xb0], 0x2bbe2db5
mov dword [esi + 0xb4], 0x277b29a6
mov dword [esi + 0xb8], 0x23a3258a
mov dword [esi + 0xbc], 0x1fbb21b2
mov dword [esi + 0xc0], 0x1b7c1d58
mov dword [esi + 0xc4], 0x17881985
mov dword [esi + 0xc8], 0x13801586
mov dword [esi + 0xcc], 0xf8d1185
mov dword [esi + 0xd0], 0xb800d91
mov dword [esi + 0xd4], 0x799099d
mov dword [esi + 0xd8], 0x3550594
mov dword [esi + 0xdc], 0x7f53018a
mov dword [esi + 0xe0], 0x7bf57df7
mov dword [esi + 0xe4], 0x772b79f3
mov dword [esi + 0xe8], 0x73e575ec
mov dword [esi + 0xec], 0x6fe371fc
mov dword [esi + 0xf0], 0x6be76d3d
mov dword [esi + 0xf4], 0x67fc69e4
mov dword [esi + 0xf8], 0x63f665fd
mov dword [esi + 0xfc], 0x5ff161ff
mov dword [esi + 0x100], 0x5bc75dc2
mov dword [esi + 0x104], 0x572b59c6
mov dword [esi + 0x108], 0x53545520
mov dword [esi + 0x10f], 0
mov dword [esi + 0x10c], 0
mov dword [esi + 4], 0
mov eax, dword [esi + 4]
cmp eax, 0x6a
ja 0x40f9ac
nop
nop
nop
nop
nop
mov ecx, dword [esi + 4]
mov eax, dword [esi + 4]
movzx ebx, byte [esi + eax + 0xa8]
lea eax, [ecx + 0x5d0fa509]
add ecx, 9
or ecx, eax
and ecx, ebx
or eax, ebx
sub eax, ecx
mov dword [esi + 8], eax
mov eax, dword [esi + 8]
add al, 0xc1
mov ecx, dword [esi + 4]
mov byte [esi + ecx + 0xa8], al
inc dword [esi + 4]
mov eax, dword [esi + 4]
cmp eax, 0x6b
jb 0x40f970
sub edx, edi
mov dword [esi + 8], 0xab03a557
mov dword [esi + 0xc], 0xaf07a91a
mov word [esi + 0x10], 0xadae
mov dword [esi + 0x12], 0
mov dword [esi + 0x16], 0
mov dword [esi + 0x1a], 0
mov dword [esi + 0x24], 0
mov eax, dword [esi + 0x24]
cmp eax, 0x15
ja 0x40fa24
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esi + 0x24]
mov ecx, dword [esi + 0x24]
movzx ecx, byte [esi + ecx + 8]
lea edi, [eax + 0x739445]
add eax, 0x45
and eax, ecx
or edi, ecx
sub edi, eax
mov dword [esi + 4], edi
mov eax, dword [esi + 4]
add al, 0x1d
mov ecx, dword [esi + 0x24]
mov byte [esi + ecx + 8], al
inc dword [esi + 0x24]
mov eax, dword [esi + 0x24]
cmp eax, 0x16
jb 0x40f9f0
lea eax, [esi + 0x88]
lea ecx, [esi + 0x24]
lea ebx, [esi + 0xa8]
lea edi, [esi + 8]
push eax
push ecx
push edx
lea eax, [esi + 0x2b0]
push eax
push ebx
push edi
push 0x4486f8
call fcn.0040c640
add esp, 0x1c
movzx eax, al
xor ebx, ebx
jmp dword [eax*4 + 0x44377c]
jmp dword [0x443784]
mov edi, dword [esi + 0x28]
mov dword [ecx], 0x220022
mov dword [ecx + 4], 0x22
mov ebx, dword [esi + 0x80]
mov dword [ebx + 0x40], 0
mov dword [ebx + 0x3c], 0
mov dword [ebx + 0x38], 0
mov dword [ebx + 0x34], 0
mov dword [ebx + 0x30], 0
mov dword [ebx + 0x28], 0
mov dword [ebx + 0x24], 0
mov dword [ebx + 0x20], 0
mov dword [ebx + 0x1c], 0
mov dword [ebx + 0x18], 0
mov dword [ebx + 0x14], 0
mov dword [ebx + 0x10], 0
mov dword [ebx + 0xc], 0
mov dword [ebx + 8], 0
mov dword [ebx + 4], 0
mov dword [ebx], 0x44
mov dword [ebx + 0x2c], 1
push 0xd3a7a30
push dword [0x449a00]
call fcn.0043c6f0
add esp, 8
push dword [esi + 0x54]
push ebx
push 0
push 0
push 0x8000000
push 0
push 0
push 0
push dword [esi + 0x30]
push 0
call eax
jmp dword [0x443814]
mov eax, dword [esi + 0x58]
mov eax, dword [eax]
mov dword [edi], 0x235f2d4b
mov dword [edi + 4], 0x27142144
mov dword [edi + 8], 0x3bb22541
mov dword [edi + 0xc], 0x3f1e395d
mov dword [edi + 0x10], 0x33453d1a
mov dword [edi + 0x14], 0x37573144
mov dword [edi + 0x18], 0x4b3e3542
mov dword [edi + 0x1c], 0x4f7d4968
mov dword [edi + 0x20], 0x433b4d31
mov dword [edi + 0x24], 0x47664132
mov dword [edi + 0x28], 0x5b274523
mov dword [edi + 0x2c], 0x5f6c593c
mov dword [edi + 0x30], 0x53da5d39
mov dword [edi + 0x34], 0x57765135
mov dword [edi + 0x38], 0x6b595572
mov dword [edi + 0x3c], 0x6f4e690f
mov dword [edi + 0x40], 0x631b6d18
mov dword [edi + 0x44], 0x6703611d
mov dword [edi + 0x48], 0x7b0f6517
mov dword [edi + 0x4c], 0x7f5e790c
mov dword [edi + 0x50], 0x73067d4f
mov dword [edi + 0x54], 0x77417150
mov dword [edi + 0x58], 0x8bb97554
mov dword [edi + 0x5c], 0x8ffd89fa
mov dword [edi + 0x60], 0x83f48dea
mov dword [edi + 0x64], 0x87e781e5
mov dword [edi + 0x68], 0x9bba85fb
mov dword [edi + 0x6c], 0x9fbe99a2
mov dword [edi + 0x70], 0x93f79df8
mov dword [edi + 0x74], 0x97b691ec
mov dword [edi + 0x78], 0xabaa95b2
mov word [edi + 0x80], 0
mov dword [edi + 0x7c], 0
mov dword [esi + 8], 0
mov ecx, dword [esi + 8]
cmp ecx, 0x81
ja 0x40fc6f
nop
nop
mov ecx, dword [esi + 8]
mov edx, dword [esi + 8]
movzx edx, byte [edi + edx]
lea edi, [ecx + 0xa4a1e26]
add ecx, 0x26
and ecx, edx
or edi, edx
sub edi, ecx
mov dword [esi + 0xa8], edi
mov edi, dword [esi + 0x28]
mov ecx, dword [esi + 0xa8]
add cl, 0xf6
mov edx, dword [esi + 8]
mov byte [edi + edx], cl
inc dword [esi + 8]
mov ecx, dword [esi + 8]
cmp ecx, 0x82
jb 0x40fc30
movzx edx, word [edi]
mov ecx, dword [esi + 0x30]
test dx, dx
je 0x40fca1
mov ecx, dword [esi + 0x28]
lea edi, [ecx + 2]
mov ecx, dword [esi + 0x30]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov word [ecx], dx
add ecx, 2
movzx edx, word [edi]
add edi, 2
test dx, dx
jne 0x40fc90
mov word [ecx], 0
movzx edx, word [eax]
test dx, dx
je 0x40fa70
add eax, 2
mov edi, dword [esi + 0x28]
nop
nop
nop
nop
nop
nop
nop
nop
mov word [ecx], dx
add ecx, 2
movzx edx, word [eax]
add eax, 2
test dx, dx
jne 0x40fcc0
jmp 0x40fa73
xor ecx, ecx
test eax, eax
setne cl
jmp dword [ecx*4 + 0x44381c]
jmp case.0x410666.0
mov eax, dword [esi + 0x54]
mov eax, dword [eax]
mov dword [esi + 0xa8], 0x88898e8f
mov dword [esi + 0xac], 0
mov dword [esi + 0xb0], 0
mov word [esi + 0xb4], 0
mov dword [esi + 4], 0
mov ecx, dword [esi + 4]
cmp ecx, 0xd
ja 0x40fd71
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov ecx, dword [esi + 4]
mov edx, dword [esi + 4]
movzx edx, byte [esi + edx + 0xa8]
lea edi, [ecx + edx]
add edi, 0x540cdf42
add ecx, 0x540cdf42
and ecx, edx
add ecx, ecx
sub edi, ecx
mov dword [esi + 8], edi
mov ecx, dword [esi + 8]
add cl, 0x32
mov edx, dword [esi + 4]
mov byte [esi + edx + 0xa8], cl
inc dword [esi + 4]
mov ecx, dword [esi + 4]
cmp ecx, 0xe
jb 0x40fd30
mov ecx, dword [0x449a0c]
test ecx, ecx
je case.0x410666.0
mov edx, dword [esi + 0xa8]
xor edi, edi
mov ebx, dword [0x449a10]
nop
nop
nop
cmp dword [ebx + edi*8], 0x11081610
je 0x40fda3
inc edi
cmp ecx, edi
jne 0x40fd90
jmp case.0x410666.0
mov ecx, dword [ebx + edi*8 + 4]
cmp ecx, edx
je case.0x410666.0
push eax
push 1
push dword [0x449a14]
push ecx
call fcn.0043a960
add esp, 0x10
jmp case.0x410666.0
mov eax, dword [esi + 0x44]
mov ebx, dword [eax]
xor eax, eax
test ebx, ebx
setne al
jmp dword [eax*4 + 0x4437e4]
movzx eax, al
mov ebx, dword [esi + 0xa4]
jmp dword [eax*4 + 0x4437cc]
mov word [edi], 0xddd5
mov byte [edi + 2], 0x38
mov dword [edi + 3], 0
mov dword [edi + 7], 0
mov word [edi + 0xb], 0
mov dword [esi + 8], 0
mov eax, dword [esi + 8]
cmp eax, 0xc
ja 0x40fe67
nop
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 - 0x29b32e89]
add eax, 0x77
and eax, ecx
or edx, ecx
sub edx, eax
mov dword [esi + 0xa8], edx
mov eax, dword [esi + 0xa8]
mov ecx, eax
or ecx, 0xbe
and eax, 0xbe
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, 0xd
jb 0x40fe20
push edi
mov eax, dword [esi + 0x40]
push dword [eax]
call fcn.00402950
add esp, 8
test eax, eax
mov eax, dword [esi + 0x48]
setg byte [eax]
mov word [ebx], 0x4e53
mov byte [ebx + 2], 0x24
mov dword [ebx + 6], 0
mov dword [ebx + 3], 0
mov dword [esi + 8], 0
mov eax, dword [esi + 8]
cmp eax, 9
ja 0x40feea
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]
lea edx, [eax - 0x1d0cff5b]
add eax, 0xa5
and eax, ecx
or edx, ecx
sub edx, eax
mov dword [esi + 0xa8], edx
mov eax, dword [esi + 0xa8]
add al, 0x7d
mov ecx, dword [esi + 8]
mov byte [ebx + ecx], al
inc dword [esi + 8]
mov eax, dword [esi + 8]
cmp eax, 0xa
jb 0x40feb0
mov eax, dword [esi + 0x40]
mov edi, dword [eax]
push ebx
push edi
call fcn.00402950
add esp, 8
xor ebx, ebx
test eax, eax
setg bl
push edi
call fcn.00410c10
add esp, 4
push dword [esi + 0x38]
call fcn.00402b40
add esp, 4
mov edi, dword [esi + 0x7c]
mov ecx, edi
push 1
call fcn.00409650
push edi
call fcn.0041f050
add esp, 4
mov ecx, edi
call fcn.00409fd0
mov edi, dword [esi + 0x78]
mov ecx, edi
push 3
call fcn.00409650
push edi
call fcn.0041f990
add esp, 4
mov ecx, edi
call fcn.00409fd0
mov edi, dword [esi + 0x74]
mov ecx, edi
push 1
call fcn.00409650
push edi
call fcn.0041fbf0
add esp, 4
mov ecx, edi
call fcn.00409fd0
mov edi, dword [esi + 0x70]
mov ecx, edi
push 1
call fcn.00409650
push edi
call fcn.00421bf0
add esp, 4
push edi
call fcn.00422570
add esp, 4
push edi
call fcn.004229e0
add esp, 4
mov ecx, edi
call fcn.00409fd0
mov edi, dword [esi + 0x6c]
mov ecx, edi
push 1
call fcn.00409650
push edi
call fcn.00424dc0
add esp, 4
mov ecx, edi
call fcn.00409fd0
mov edi, dword [esi + 0x68]
mov ecx, edi
push 1
call fcn.00409650
push edi
call fcn.00427090
add esp, 4
push edi
call fcn.0042ebd0
add esp, 4
jmp dword [ebx*4 + 0x4437d4]
push edi
call fcn.0042ed90
add esp, 4
mov ecx, edi
call fcn.00409fd0
push dword [esi + 0x50]
call fcn.004357d0
add esp, 4
mov edi, dword [esi + 0x4c]
mov dword [edi], 0xe4dded2c
mov dword [edi + 4], 0x480aee
mov dword [esi + 8], 0
mov eax, dword [esi + 8]
cmp eax, 7
ja 0x410067
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 edx, byte [edi + ecx]
lea ecx, [eax + edx]
add ecx, 0x795458f5
add eax, 0x795458f5
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 + 0xa8], eax
mov eax, dword [esi + 0xa8]
add al, 0x4d
mov ecx, dword [esi + 8]
mov byte [edi + ecx], al
inc dword [esi + 8]
mov eax, dword [esi + 8]
cmp eax, 8
jb 0x410020
mov eax, dword [0x442b44]
mov dword [esi + 0x2c], eax
mov ebx, dword [esi + 0x64]
mov dword [ebx], 0xb377236c
mov dword [ebx + 4], 0
mov word [ebx + 8], 0
mov dword [esi + 8], 0
mov eax, dword [esi + 8]
cmp eax, 9
ja 0x4100ec
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esi + 8]
mov edx, dword [esi + 8]
movzx edx, byte [ebx + edx]
lea edi, [eax + edx]
add edi, 0x3d654bc9
add eax, 0x3d654bc9
and eax, edx
add eax, eax
sub edi, eax
mov dword [esi + 0xa8], edi
mov eax, dword [esi + 0xa8]
mov edx, eax
or edx, 0x80
and eax, 0x80
add eax, edx
inc al
mov edx, dword [esi + 8]
mov byte [ebx + edx], al
inc dword [esi + 8]
mov eax, dword [esi + 8]
cmp eax, 0xa
jb 0x4100a0
mov edx, dword [str.xlKStP___DolphinLoaderBot]
mov ecx, dword [esi + 0x8c]
mov dword [ecx], 0xe42c3c05
mov dword [ecx + 4], 0x3e10023b
mov dword [ecx + 8], 0x16150609
mov dword [ecx + 0xc], 0xc90b0c39
mov dword [ecx + 0x10], 0xd4020e18
mov dword [ecx + 0x14], 0xd1dcdbde
mov dword [ecx + 0x18], 0xcc14121a
mov byte [ecx + 0x1c], 0x8a
mov dword [ecx + 0x1d], 0
mov word [ecx + 0x21], 0
mov dword [esi + 8], 0
mov eax, dword [esi + 8]
cmp eax, 0x22
ja 0x41018d
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esi + 8]
mov edi, dword [esi + 8]
movzx edi, byte [ecx + edi]
lea ebx, [eax + edi]
add ebx, 0xd711c41b
add eax, 0xd711c41b
and eax, edi
add eax, eax
sub ebx, eax
mov dword [esi + 0xa8], ebx
mov eax, dword [esi + 0xa8]
add al, 0x43
mov edi, dword [esi + 8]
mov byte [ecx + edi], al
inc dword [esi + 8]
mov eax, dword [esi + 8]
cmp eax, 0x23
jb 0x410150
movzx ebx, byte [ecx]
mov eax, dword [esi + 0x3c]
test bl, bl
je 0x4101ab
inc ecx
mov eax, dword [esi + 0x3c]
nop
nop
nop
nop
nop
mov byte [eax], bl
inc eax
movzx ebx, byte [ecx]
inc ecx
test bl, bl
jne 0x4101a0
mov byte [eax], 0
movzx ebx, byte [edx]
test bl, bl
je 0x4101dd
inc edx
mov edi, dword [esi + 0x50]
nop
nop
nop
nop
nop
nop
nop
mov byte [eax], bl
inc eax
movzx ebx, byte [edx]
inc edx
test bl, bl
jne 0x4101c0
jmp 0x4101e0
push dword [esi + 0x38]
call fcn.00402b40
add esp, 4
jmp case.0x40fa54.7
mov edi, dword [esi + 0x50]
mov byte [eax], 0
mov ecx, dword [esi + 0x64]
movzx edx, byte [ecx]
test dl, dl
je 0x41020d
inc ecx
mov ebx, dword [esi + 0x4c]
nop
nop
nop
nop
nop
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 0x410200
jmp 0x410210
mov ebx, dword [esi + 0x4c]
mov byte [eax], 0
mov ecx, dword [esi + 0x2c]
movzx edx, byte [ecx]
test dl, dl
je 0x41022b
inc ecx
nop
nop
mov byte [eax], dl
inc eax
movzx edx, byte [ecx]
inc ecx
test dl, dl
jne 0x410220
mov byte [eax], 0
movzx ecx, byte [ebx]
test cl, cl
je 0x41024d
inc ebx
mov edx, dword [esi + 0x34]
nop
nop
nop
nop
nop
nop
nop
mov byte [eax], cl
inc eax
movzx ecx, byte [ebx]
inc ebx
test cl, cl
jne 0x410240
jmp 0x410250
mov edx, dword [esi + 0x34]
mov byte [eax], 0
movzx ecx, byte [edi]
test cl, cl
je 0x41026b
inc edi
nop
nop
nop
nop
nop
mov byte [eax], cl
inc eax
movzx ecx, byte [edi]
inc edi
test cl, cl
jne 0x410260
mov byte [eax], 0
mov ecx, dword [esi + 0x44]
mov dword [ecx], 0
mov dword [edx], 0x9bed99db
mov dword [edx + 4], 0x971a95e2
mov dword [edx + 8], 0x93e491ed
mov dword [edx + 0xc], 0xaf9bad20
mov dword [edx + 0x10], 0xab23a9c4
mov dword [edx + 0x14], 0xa7dba5d4
mov dword [edx + 0x18], 0xa382a1ea
mov dword [edx + 0x1c], 0xbfcebddd
mov dword [edx + 0x20], 0xbbceb9c8
mov dword [edx + 0x24], 0xb7d5b5cd
mov dword [edx + 0x28], 0xb33eb1d1
mov dword [edx + 0x2c], 0xcfb9cdb5
mov dword [edx + 0x30], 0xcbfdc9be
mov dword [edx + 0x34], 0xc7f3c54c
mov dword [edx + 0x38], 0xc34dc14f
mov dword [edx + 0x3c], 0xdfebdd53
mov dword [edx + 0x40], 0xdbadd9a6
mov dword [edx + 0x44], 0xd7a3d5a6
mov dword [edx + 0x48], 0xd35fd1e5
mov dword [edx + 0x4c], 0xef9aed9e
mov dword [edx + 0x50], 0xeb9ce995
mov dword [edx + 0x54], 0xe791e587
mov dword [edx + 0x58], 0xe39fe19c
mov dword [edx + 0x5c], 0xffebfd80
mov dword [edx + 0x60], 0xfbfaf9e2
mov dword [edx + 0x6b], 0
mov dword [edx + 0x68], 0
mov dword [edx + 0x64], 0
mov dword [esi + 8], 0
mov ecx, dword [esi + 8]
cmp ecx, 0x6e
ja 0x4103a9
nop
nop
nop
nop
nop
nop
nop
mov ecx, dword [esi + 8]
mov dword [esi + 0x2c], ecx
lea edx, [ecx + 0xcd5b494]
lea edi, [ecx + 0x94]
mov ebx, edi
and ebx, edx
xor edi, edx
mov edx, dword [esi + 8]
mov ecx, dword [esi + 0x34]
movzx edx, byte [ecx + edx]
and ebx, edx
and edi, edx
mov ecx, dword [esi + 0x2c]
add ecx, edx
add ecx, 0xcd5b494
lea edx, [edi + ebx*2]
sub ecx, edx
mov dword [esi + 0xa8], ecx
mov ecx, dword [esi + 0xa8]
add cl, 0xf4
mov edx, dword [esi + 8]
mov edi, dword [esi + 0x34]
mov byte [edi + edx], cl
inc dword [esi + 8]
mov ecx, dword [esi + 8]
cmp ecx, 0x6f
jb 0x410350
sub eax, dword [esi + 0x3c]
mov ebx, dword [esi + 0x90]
mov dword [ebx], 0x43e34d1f
mov dword [ebx + 4], 0x47df41d0
mov word [ebx + 8], 0x4544
mov dword [ebx + 0xa], 0
mov dword [ebx + 0xe], 0
mov dword [ebx + 0x12], 0
mov word [ebx + 0x16], 0
mov dword [esi + 8], 0
mov ecx, dword [esi + 8]
cmp ecx, 0x17
ja 0x410437
nop
mov ecx, dword [esi + 8]
mov edx, dword [esi + 8]
movzx edx, byte [ebx + edx]
lea edi, [ecx + 0xf6]
and edi, edx
add ecx, edx
add edi, edi
sub ecx, edi
add ecx, 0x3db93af6
mov dword [esi + 0xa8], ecx
mov ecx, dword [esi + 0xa8]
mov edx, ecx
or edx, 0x45
and ecx, 0x45
add ecx, edx
inc cl
mov edx, dword [esi + 8]
mov byte [ebx + edx], cl
inc dword [esi + 8]
mov ecx, dword [esi + 8]
cmp ecx, 0x18
jb 0x4103f0
mov ecx, ebx
mov ebx, dword [esi + 0x94]
push ebx
mov edi, dword [esi + 0x60]
push edi
push eax
push dword [esi + 0x3c]
push dword [esi + 0x34]
push ecx
push 0x4486f8
call fcn.0040c640
add esp, 0x1c
movzx eax, al
jmp dword [eax*4 + 0x4437dc]
mov ecx, dword [ebx]
mov edi, dword [edi]
lea eax, [ecx + ecx*2]
shr eax, 2
movzx edx, byte [ecx + edi - 1]
cmp edx, 0x3d
je 0x41047c
cmp edx, 0x2e
jne 0x41047d
dec eax
movzx ecx, byte [ecx + edi - 2]
cmp ecx, 0x3d
je 0x41048c
cmp ecx, 0x2e
jne 0x41048d
dec eax
push eax
call fcn.00408da0
add esp, 4
mov ebx, dword [esi + 0x44]
mov dword [ebx], eax
push eax
push edi
call fcn.00435d50
add esp, 8
mov eax, dword [esi + 0x60]
push dword [eax]
call fcn.00438ea0
add esp, 4
mov ebx, dword [ebx]
xor eax, eax
test ebx, ebx
setne al
jmp dword [eax*4 + 0x4437e4]
push ebx
call fcn.00401f30
add esp, 4
mov edi, eax
xor eax, eax
test ebx, ebx
sete al
jmp dword [eax*4 + 0x4437ec]
push ebx
call fcn.00408db0
add esp, 4
push edi
call fcn.00413fd0
add esp, 4
push edi
call fcn.00402b40
add esp, 4
mov ebx, dword [esi + 0x98]
mov dword [ebx], 0x1bb5bbb4
mov dword [ebx + 4], 0
mov dword [ebx + 7], 0
mov dword [esi + 8], 0
mov eax, dword [esi + 8]
cmp eax, 0xa
ja 0x410570
nop
mov edx, dword [esi + 8]
mov eax, dword [esi + 8]
movzx edi, byte [ebx + eax]
lea eax, [edx + 0x1639ffc]
lea ecx, [edx + edi]
add ecx, 0x1639ffc
add edx, 0xfc
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 [esi + 0xa8], eax
mov eax, dword [esi + 0xa8]
add al, 0x1c
mov ecx, dword [esi + 8]
mov byte [ebx + ecx], al
inc dword [esi + 8]
mov eax, dword [esi + 8]
cmp eax, 0xb
jb 0x410520
push ebx
mov eax, dword [esi + 0x40]
push dword [eax]
call fcn.00402950
add esp, 8
xor ecx, ecx
test eax, eax
setg cl
mov edi, dword [esi + 0x58]
mov ebx, dword [esi + 0x9c]
jmp dword [ecx*4 + 0x4437f4]
mov eax, dword [esi + 0x48]
movzx eax, byte [eax]
jmp dword [eax*4 + 0x4437fc]
mov ecx, dword [esi + 0x5c]
push 1
call fcn.00409650
mov eax, 0xffffffff
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp byte [eax + 0x448a01], 0
lea eax, [eax + 1]
jne 0x4105c0
mov dword [ebx], 0xb8aaae4a
mov dword [ebx + 4], 0xa7bc63ab
mov word [ebx + 8], 0x2da2
mov dword [ebx + 0xa], 0
mov dword [ebx + 0xd], 0
mov dword [esi + 8], 0
mov ecx, dword [esi + 8]
cmp ecx, 0x10
ja 0x41063e
nop
nop
nop
nop
mov ecx, dword [esi + 8]
mov edx, dword [esi + 8]
movzx edx, byte [ebx + edx]
lea edi, [ecx + 0xa9]
add ecx, edx
and edi, edx
add edi, edi
sub ecx, edi
add ecx, 0xc7017aa9
mov dword [esi + 0xa8], ecx
mov ecx, dword [esi + 0xa8]
add cl, 0x61
mov edx, dword [esi + 8]
mov byte [ebx + edx], cl
inc dword [esi + 8]
mov ecx, dword [esi + 8]
cmp ecx, 0x11
jb 0x410600
mov edi, dword [esi + 0x5c]
mov ecx, edi
push eax
push 0x448a00
push ebx
call fcn.00409850
mov ecx, edi
call fcn.00409fd0
mov ecx, edi
call fcn.00409690
mov eax, dword [esi + 0x48]
movzx eax, byte [eax]
mov edi, dword [esi + 0x58]
jmp dword [eax*4 + 0x4437fc]
push 0
call fcn.0043c550
add esp, 4
mov dword [edi], eax
xor ecx, ecx
test eax, eax
setne cl
jmp dword [ecx*4 + 0x443804]
mov ecx, dword [esi + 0x68]
call fcn.00409690
mov ecx, dword [esi + 0x6c]
call fcn.00409690
mov ecx, dword [esi + 0x70]
call fcn.00409690
mov ecx, dword [esi + 0x74]
call fcn.00409690
mov ecx, dword [esi + 0x78]
call fcn.00409690
mov ecx, dword [esi + 0x7c]
call fcn.00409690
mov al, 1
jmp 0x410a20
mov edi, dword [esi + 0x28]
jmp dword [0x44380c]
mov dword [edi], 0x235f2d4b
mov dword [edi + 4], 0x27142144
mov dword [edi + 8], 0x3bb22541
mov dword [edi + 0xc], 0x3f1e395d
mov dword [edi + 0x10], 0x33453d1a
mov dword [edi + 0x14], 0x37573144
mov dword [edi + 0x18], 0x4b3e3542
mov dword [edi + 0x1c], 0x4f7d4968
mov dword [edi + 0x20], 0x433b4d31
mov dword [edi + 0x24], 0x47664132
mov dword [edi + 0x28], 0x5b274523
mov dword [edi + 0x2c], 0x5f6c593c
mov dword [edi + 0x30], 0x53da5d39
mov dword [edi + 0x34], 0x57765135
mov dword [edi + 0x38], 0x6b595572
mov dword [edi + 0x3c], 0x6f4e690f
mov dword [edi + 0x40], 0x631b6d18
mov dword [edi + 0x44], 0x6703611d
mov dword [edi + 0x48], 0x7b0f6517
mov dword [edi + 0x4c], 0x7f5e790c
mov dword [edi + 0x50], 0x73067d4f
mov dword [edi + 0x54], 0x77417150
mov dword [edi + 0x58], 0x8bb97554
mov dword [edi + 0x5c], 0x8ffd89fa
mov dword [edi + 0x60], 0x83f48dea
mov dword [edi + 0x64], 0x87e781e5
mov dword [edi + 0x68], 0x9bba85fb
mov dword [edi + 0x6c], 0x9fbe99a2
mov dword [edi + 0x70], 0x93f79df8
mov dword [edi + 0x74], 0x97b691ec
mov dword [edi + 0x78], 0xabaa95b2
mov word [edi + 0x80], 0
mov dword [edi + 0x7c], 0
mov dword [esi + 8], 0
mov ecx, dword [esi + 8]
cmp ecx, 0x81
ja 0x41080f
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 edi, [ecx + 0xa4a1e26]
add ecx, 0x26
and ecx, edx
or edi, edx
sub edi, ecx
mov dword [esi + 0xa8], edi
mov edi, dword [esi + 0x28]
mov ecx, dword [esi + 0xa8]
add cl, 0xf6
mov edx, dword [esi + 8]
mov byte [edi + edx], cl
inc dword [esi + 8]
mov ecx, dword [esi + 8]
cmp ecx, 0x82
jb 0x4107d0
movzx edx, word [edi]
mov ecx, dword [esi + 0x30]
test dx, dx
je 0x410841
mov ecx, dword [esi + 0x28]
lea edi, [ecx + 2]
mov ecx, dword [esi + 0x30]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov word [ecx], dx
add ecx, 2
movzx edx, word [edi]
add edi, 2
test dx, dx
jne 0x410830
mov word [ecx], 0
movzx edx, word [eax]
test dx, dx
je 0x410873
add eax, 2
mov edi, dword [esi + 0x28]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov word [ecx], dx
add ecx, 2
movzx edx, word [eax]
add eax, 2
test dx, dx
jne 0x410860
jmp 0x410876
mov edi, dword [esi + 0x28]
mov dword [ecx], 0x220022
mov dword [ecx + 4], 0x22
mov ebx, dword [esi + 0x80]
mov dword [ebx + 0x40], 0
mov dword [ebx + 0x3c], 0
mov dword [ebx + 0x38], 0
mov dword [ebx + 0x34], 0
mov dword [ebx + 0x30], 0
mov dword [ebx + 0x28], 0
mov dword [ebx + 0x24], 0
mov dword [ebx + 0x20], 0
mov dword [ebx + 0x1c], 0
mov dword [ebx + 0x18], 0
mov dword [ebx + 0x14], 0
mov dword [ebx + 0x10], 0
mov dword [ebx + 0xc], 0
mov dword [ebx + 8], 0
mov dword [ebx + 4], 0
mov dword [ebx], 0x44
mov dword [ebx + 0x2c], 1
push 0xd3a7a30
push dword [0x449a00]
call fcn.0043c6f0
add esp, 8
push dword [esi + 0x54]
push ebx
push 0
push 0
push 0x8000000
push 0
push 0
push 0
push dword [esi + 0x30]
push 0
call eax
jmp case.0x410666.4
push ebx
call fcn.00408db0
add esp, 4
mov dword [esi + 0x38], edi
push edi
call fcn.004028e0
add esp, 4
mov ecx, dword [esi + 0x40]
mov dword [ecx], eax
mov edi, dword [esi + 0x84]
mov word [edi], 0x61c
mov byte [edi + 2], 0x94
mov word [edi + 0xb], 0
mov dword [edi + 7], 0
mov dword [edi + 3], 0
mov dword [esi + 8], 0
mov ecx, dword [esi + 8]
cmp ecx, 0xc
ja 0x4109dd
nop
nop
nop
mov ecx, dword [esi + 8]
mov edx, dword [esi + 8]
movzx ebx, byte [edi + edx]
mov edi, ecx
and edi, 0xd6c2676d
xor ecx, 0xd6c2676d
lea edi, [ecx + edi*2]
lea ecx, [edi + ebx]
mov edx, ebx
not edx
or edx, edi
add edx, ebx
and edi, ebx
add edx, edi
inc edx
mov edi, edx
xor edi, ecx
not edx
and edx, ecx
add edx, edx
sub edx, edi
mov edi, dword [esi + 0x84]
mov dword [esi + 0xa8], edx
mov ecx, dword [esi + 0xa8]
add cl, 5
mov edx, dword [esi + 8]
mov byte [edi + edx], cl
inc dword [esi + 8]
mov ecx, dword [esi + 8]
cmp ecx, 0xd
jb 0x410980
push edi
push eax
call fcn.00402950
add esp, 8
xor ecx, ecx
test eax, eax
setg cl
xor eax, eax
mov edi, dword [esi + 0xa0]
mov ebx, dword [esi + 0x2c]
jmp dword [ecx*4 + 0x4437a4]
jmp dword [0x4437b0]
push ebx
mov dword [esi + 0x38], eax
call fcn.00401f30
add esp, 4
mov edi, eax
mov eax, dword [esi + 0x38]
jmp dword [eax*4 + 0x44379c]
xor eax, eax
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
push 0x104
lea eax, [esi + 0xa8]
push eax
call dword [sym.imp.KERNEL32.dll_GetSystemDirectoryW]
mov ecx, dword [esi + 0x88]
mov edi, dword [esi + 0x24]
lea eax, [ecx + ecx*2]
shr eax, 2
movzx edx, byte [ecx + edi - 1]
cmp edx, 0x3d
je 0x410a58
cmp edx, 0x2e
jne 0x410a59
dec eax
movzx ecx, byte [ecx + edi - 2]
cmp ecx, 0x3d
je 0x410a68
cmp ecx, 0x2e
jne 0x410a69
dec eax
push eax
call fcn.00408da0
add esp, 4
push eax
push edi
call fcn.00435d50
add esp, 8
push dword [esi + 0x24]
call fcn.00438ea0
add esp, 4
push 0x104
lea eax, [esi + 0xa8]
push eax
call dword [sym.imp.KERNEL32.dll_GetSystemDirectoryW]
mov ecx, dword [esi + 0x88]
mov edi, dword [esi + 0x24]
lea eax, [ecx + ecx*2]
shr eax, 2
movzx edx, byte [ecx + edi - 1]
cmp edx, 0x3d
je 0x410ab7
cmp edx, 0x2e
jne 0x410ab8
dec eax
movzx ecx, byte [ecx + edi - 2]
cmp ecx, 0x3d
je 0x410ac7
cmp ecx, 0x2e
jne 0x410ac8
dec eax
push eax
call fcn.00408da0
add esp, 4
mov ebx, eax
push eax
push edi
call fcn.00435d50
add esp, 8
push dword [esi + 0x24]
call fcn.00438ea0
add esp, 4
jmp dword [0x44378c]
xor eax, eax
test ebx, ebx
sete al
jmp dword [eax*4 + 0x443794]
mov ecx, dword [case.0x4109f9.8]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
jmp ecx
mov dword [ebx], 0xf3b2b1b0
mov dword [ebx + 4], 0
mov dword [ebx + 8], 0
mov word [ebx + 0xc], 0
mov dword [esi + 8], 0
mov eax, dword [esi + 8]
cmp eax, 0xd
ja 0x410b7d
nop
nop
nop
nop
nop
mov eax, dword [esi + 8]
mov ecx, dword [esi + 8]
movzx ecx, byte [ebx + ecx]
lea edx, [eax + 0x6514deb8]
add eax, 0xb8
and eax, ecx
or edx, ecx
sub edx, eax
mov dword [esi + 0xa8], edx
mov ebx, dword [esi + 0x2c]
mov eax, dword [esi + 0xa8]
add al, 0xf8
mov ecx, dword [esi + 8]
mov byte [ebx + ecx], al
inc dword [esi + 8]
mov eax, dword [esi + 8]
cmp eax, 0xe
jb 0x410b40
push dword [ebx]
call fcn.00434b20
add esp, 4
jmp dword [0x4437b4]
mov dword [ebx], 0xf3b2b1b0
mov dword [ebx + 4], 0
mov dword [ebx + 8], 0
mov word [ebx + 0xc], 0
mov dword [esi + 8], 0
mov eax, dword [esi + 8]
cmp eax, 0xd
ja 0x410bfd
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 + 0x6514deb8]
add eax, 0xb8
and eax, ecx
or edx, ecx
sub edx, eax
mov dword [esi + 0xa8], edx
mov ebx, dword [esi + 0x2c]
mov eax, dword [esi + 0xa8]
add al, 0xf8
mov ecx, dword [esi + 8]
mov byte [ebx + ecx], al
inc dword [esi + 8]
mov eax, dword [esi + 8]
cmp eax, 0xe
jb 0x410bc0
push dword [ebx]
call fcn.00434b20
add esp, 4
jmp case.0x4109f9.3
mov eax, dword [esi + 0x100]
inc eax
mov dword [esi + 0x1c8], eax
xor ebx, ebx
mov dword [esi + 0x1fc], edi
mov dword [esi + 0x1f8], ecx
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
push ecx
mov edi, ecx
call fcn.00402b00
add esp, 4
xor ecx, ecx
cmp ebx, eax
setb cl
jmp dword [ecx*4 + 0x44382c]
mov dword [esi + 0x200], ebx
push ebx
push edi
call fcn.00402b10
add esp, 8
mov ebx, eax
mov word [esi + 0x48], 0x1994
mov dword [esi + 0x4a], 0
mov dword [esi + 0x4d], 0
mov dword [esi + 0x28], 0
mov eax, dword [esi + 0x28]
cmp eax, 8
ja 0x410fc3
nop
nop
mov eax, dword [esi + 0x28]
mov ecx, dword [esi + 0x28]
movzx ecx, byte [esi + ecx + 0x48]
lea edx, [eax + 0x35718e04]
add eax, 4
and eax, ecx
or edx, ecx
sub edx, eax
mov dword [esi + 8], edx
mov eax, dword [esi + 8]
mov ecx, eax
or ecx, 0xe3
and eax, 0xe3
add eax, ecx
inc al
mov ecx, dword [esi + 0x28]
mov byte [esi + ecx + 0x48], al
inc dword [esi + 0x28]
mov eax, dword [esi + 0x28]
cmp eax, 9
jb 0x410f80
push 3
lea eax, [esi + 0x48]
push eax
push ebx
call fcn.00402ab0
add esp, 0xc
xor ecx, ecx
test eax, eax
sete cl
mov edi, dword [esi + 0x1fc]
jmp dword [ecx*4 + 0x443844]
mov word [esi + 0x48], 0x45d2
mov dword [esi + 0x4a], 0
mov dword [esi + 0x4e], 0
mov dword [esi + 0x52], 0
mov dword [esi + 0x28], 0
mov eax, dword [esi + 0x28]
cmp eax, 0xd
ja 0x411044
mov eax, dword [esi + 0x28]
mov ecx, dword [esi + 0x28]
movzx ecx, byte [esi + ecx + 0x48]
lea edx, [eax - 0x3cf38a8b]
add eax, 0x75
and eax, ecx
or edx, ecx
sub edx, eax
mov dword [esi + 8], edx
mov eax, dword [esi + 8]
add al, 0xcd
mov ecx, dword [esi + 0x28]
mov byte [esi + ecx + 0x48], al
inc dword [esi + 0x28]
mov eax, dword [esi + 0x28]
cmp eax, 0xe
jb case.default.0x41108a
lea eax, [esi + 0x48]
push eax
push ebx
call fcn.004028b0
add esp, 8
fnstcw word [esi + 0xca]
movzx eax, word [esi + 0xca]
or eax, 0xc00
mov word [esi + 0x12a], ax
fldcw word [esi + 0x12a]
fistp dword [esi + 0x214]
fldcw word [esi + 0xca]
mov eax, dword [esi + 0x214]
xor ecx, ecx
cmp eax, 2
setl cl
jmp dword [ecx*4 + 0x44384c]
xor ecx, ecx
cmp eax, 3
setl cl
jmp dword [ecx*4 + 0x443854]
sete al
movzx eax, al
jmp dword [eax*4 + 0x44385c]
mov dword [esi], ebx
mov word [esi + 0x48], 0x91ff
mov dword [esi + 0x4a], 0
mov dword [esi + 0x4e], 0
mov word [esi + 0x52], 0
mov dword [esi + 0x28], 0
mov eax, dword [esi + 0x28]
cmp eax, 0xb
ja 0x411132
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esi + 0x28]
mov ecx, dword [esi + 0x28]
movzx ecx, byte [esi + ecx + 0x48]
lea edx, [eax - 0x60921b6d]
lea edi, [eax + 0x93]
xor edi, edx
and edx, ecx
and edi, ecx
add eax, ecx
add eax, 0x9f6de493
lea ecx, [edi + edx*2]
sub eax, ecx
mov dword [esi + 8], eax
mov eax, dword [esi + 8]
mov ecx, eax
or ecx, 0xfa
and eax, 0xfa
add eax, ecx
inc al
mov ecx, dword [esi + 0x28]
mov byte [esi + ecx + 0x48], al
inc dword [esi + 0x28]
mov eax, dword [esi + 0x28]
cmp eax, 0xc
jb 0x4110e0
push 2
lea eax, [esi + 0x48]
push eax
mov edi, dword [esi]
push edi
call fcn.00402ab0
add esp, 0xc
xor ecx, ecx
test eax, eax
setne cl
mov bl, 1
jmp dword [ecx*4 + 0x443904]
mov word [esi + 8], 0xad3c
mov dword [esi + 0xa], 0
mov dword [esi + 0xe], 0
mov dword [esi + 0x12], 0
mov word [esi + 0x16], 0
mov dword [esi + 0x20], 0
mov eax, dword [esi + 0x20]
cmp eax, 0xf
ja 0x4111c4
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esi + 0x20]
mov ecx, dword [esi + 0x20]
movzx ecx, byte [esi + ecx + 8]
lea edx, [eax + 0x1383a]
add eax, 0x3a
and eax, ecx
or edx, ecx
sub edx, eax
mov dword [esi + 0x18], edx
mov eax, dword [esi + 0x18]
add al, 0x6a
mov ecx, dword [esi + 0x20]
mov byte [esi + ecx + 8], al
inc dword [esi + 0x20]
mov eax, dword [esi + 0x20]
cmp eax, 0x10
jb 0x411190
push 2
lea eax, [esi + 8]
push eax
push edi
call fcn.00402ab0
add esp, 0xc
xor ecx, ecx
test eax, eax
setne cl
jmp dword [ecx*4 + 0x44390c]
mov word [esi + 0x28], 0x11e1
mov dword [esi + 0x2a], 0
mov dword [esi + 0x2d], 0
mov dword [esi + 0x20], 0
mov eax, dword [esi + 0x20]
cmp eax, 8
ja 0x411248
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esi + 0x20]
mov ecx, dword [esi + 0x20]
movzx ecx, byte [esi + ecx + 0x28]
lea edx, [eax - 0x29bdf2d]
and edx, ecx
add eax, ecx
add eax, 0xfd6420d3
add edx, edx
sub eax, edx
mov dword [esi + 0x18], eax
mov eax, dword [esi + 0x18]
add al, 0x3b
mov ecx, dword [esi + 0x20]
mov byte [esi + ecx + 0x28], al
inc dword [esi + 0x20]
mov eax, dword [esi + 0x20]
cmp eax, 9
jb 0x411210
push 5
lea eax, [esi + 0x28]
push eax
push edi
call fcn.00402ab0
add esp, 0xc
xor ecx, ecx
test eax, eax
setne cl
jmp dword [ecx*4 + 0x443914]
mov word [esi + 0x140], 0x35b0
mov dword [esi + 0x146], 0
mov dword [esi + 0x142], 0
mov dword [esi + 0x20], 0
mov eax, dword [esi + 0x20]
cmp eax, 9
ja 0x4112dc
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esi + 0x20]
mov ecx, dword [esi + 0x20]
movzx ecx, byte [esi + ecx + 0x140]
lea edx, [eax - 0x2bc47f57]
add eax, 0xa9
and eax, ecx
or edx, ecx
sub edx, eax
mov dword [esi + 0x18], edx
mov eax, dword [esi + 0x18]
add al, 0x61
mov ecx, dword [esi + 0x20]
mov byte [esi + ecx + 0x140], al
inc dword [esi + 0x20]
mov eax, dword [esi + 0x20]
cmp eax, 0xa
jb 0x4112a0
push 2
lea eax, [esi + 0x140]
push eax
push edi
call fcn.00402ab0
add esp, 0xc
xor ecx, ecx
test eax, eax
setne cl
jmp dword [ecx*4 + 0x44391c]
mov word [esi + 0x130], 0x21ba
mov dword [esi + 0x132], 0
mov dword [esi + 0x136], 0
mov byte [esi + 0x13a], 0
mov dword [esi + 0x20], 0
mov eax, dword [esi + 0x20]
cmp eax, 0xa
ja 0x41136e
nop
mov eax, dword [esi + 0x20]
mov ecx, dword [esi + 0x20]
movzx ecx, byte [esi + ecx + 0x130]
lea edx, [eax + 0xdb]
add eax, ecx
and edx, ecx
add edx, edx
sub eax, edx
add eax, 0xb08732db
mov dword [esi + 0x18], eax
mov eax, dword [esi + 0x18]
add al, 3
mov ecx, dword [esi + 0x20]
mov byte [esi + ecx + 0x130], al
inc dword [esi + 0x20]
mov eax, dword [esi + 0x20]
cmp eax, 0xb
jb 0x411330
push 3
lea eax, [esi + 0x130]
push eax
push edi
call fcn.00402ab0
add esp, 0xc
xor ecx, ecx
test eax, eax
setne cl
jmp dword [ecx*4 + 0x443924]
movzx eax, bl
jmp dword [eax*4 + 0x44392c]
mov word [esi + 0x48], 0xc167
mov dword [esi + 0x4a], 0
mov word [esi + 0x4e], 0
mov dword [esi + 0x28], 0
mov eax, dword [esi + 0x28]
cmp eax, 7
ja 0x411408
nop
nop
nop
nop
nop
nop
mov eax, dword [esi + 0x28]
mov ecx, dword [esi + 0x28]
movzx ecx, byte [esi + ecx + 0x48]
mov edx, eax
and edx, 0x19a146a0
xor eax, 0x99a146a0
lea eax, [eax + edx*2]
mov edx, eax
and edx, ecx
mov edi, eax
xor edi, ecx
or eax, ecx
xor eax, edi
lea ecx, [edi + edx*2]
add eax, edx
sub ecx, eax
mov dword [esi + 8], ecx
mov eax, dword [esi + 8]
add al, 0xa0
mov ecx, dword [esi + 0x28]
mov byte [esi + ecx + 0x48], al
inc dword [esi + 0x28]
mov eax, dword [esi + 0x28]
cmp eax, 8
jb 0x4113c0
lea eax, [esi + 0x48]
push eax
push dword [esi]
call fcn.00402860
add esp, 8
mov dword [esi + 0x3c], eax
mov word [esi + 0x48], 0xd928
mov dword [esi + 0x4a], 0
mov dword [esi + 0x4e], 0
mov byte [esi + 0x52], 0
mov dword [esi + 0x28], 0
mov eax, dword [esi + 0x28]
cmp eax, 0xa
ja 0x411479
mov edx, dword [esi + 0x28]
mov eax, dword [esi + 0x28]
movzx ecx, byte [esi + eax + 0x48]
lea eax, [edx + 0x1c]
and eax, ecx
mov edi, 0x381421e3
sub edi, edx
or edi, ecx
not edi
add edi, ecx
sub edi, eax
mov dword [esi + 8], edi
mov eax, dword [esi + 8]
add al, 0x3c
mov ecx, dword [esi + 0x28]
mov byte [esi + ecx + 0x48], al
inc dword [esi + 0x28]
mov eax, dword [esi + 0x28]
cmp eax, 0xb
jb 0x411440
lea eax, [esi + 0x48]
push eax
push dword [esi]
call fcn.00402860
add esp, 8
mov dword [esi + 0x40], eax
mov edx, dword [esi + 0x1b0]
mov word [edx], 0x610d
mov dword [edx + 2], 0
mov dword [edx + 5], 0
mov dword [esi + 8], 0
mov eax, dword [esi + 8]
cmp eax, 8
ja 0x41150c
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 + 0x5772baf0]
mov edi, ecx
not edi
or edi, edx
add edi, ecx
inc edi
and edx, ecx
mov ebx, edi
and ebx, edx
xor edx, edi
add eax, ecx
add eax, 0x5772baf0
lea ecx, [edx + ebx*2]
mov edx, dword [esi + 0x1b0]
sub eax, ecx
mov dword [esi + 0x48], eax
mov eax, dword [esi + 0x48]
add al, 0x70
mov ecx, dword [esi + 8]
mov byte [edx + ecx], al
inc dword [esi + 8]
mov eax, dword [esi + 8]
cmp eax, 9
jb 0x4114c0
push edx
mov edi, dword [esi]
push edi
call fcn.00402900
add esp, 8
mov dword [esi + 4], eax
mov edx, dword [esi + 0x11c]
mov word [edx], 0xb13a
mov dword [edx + 2], 0
mov dword [edx + 6], 0
mov byte [edx + 0xa], 0
mov dword [esi + 8], 0
mov eax, dword [esi + 8]
cmp eax, 0xa
ja 0x411591
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esi + 8]
mov ecx, dword [esi + 8]
mov edx, dword [esi + 0x11c]
movzx edx, byte [edx + ecx]
lea ecx, [eax + edx]
add eax, 0x18
and eax, edx
mov edx, dword [esi + 0x11c]
add eax, eax
sub ecx, eax
add ecx, 0xc0081818
mov dword [esi + 0x48], ecx
mov eax, dword [esi + 0x48]
add al, 0x58
mov ecx, dword [esi + 8]
mov byte [edx + ecx], al
inc dword [esi + 8]
mov eax, dword [esi + 8]
cmp eax, 0xb
jb 0x411550
push edx
push edi
call fcn.00402860
add esp, 8
mov ecx, dword [esi + 0x15c]
mov dword [ecx], eax
mov edx, dword [esi + 0x118]
mov word [edx], 0xcd28
mov dword [edx + 0xa], 0
mov dword [edx + 6], 0
mov dword [edx + 2], 0
mov dword [esi + 8], 0
mov eax, dword [esi + 8]
cmp eax, 0xd
ja 0x41162b
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esi + 8]
mov ecx, dword [esi + 8]
mov edx, dword [esi + 0x118]
movzx edx, byte [edx + ecx]
lea ecx, [eax + edx]
add ecx, 0xa810681e
add eax, 0x1e
and eax, edx
add eax, eax
mov edx, eax
xor edx, ecx
not eax
and eax, ecx
add eax, eax
sub eax, edx
mov edx, dword [esi + 0x118]
mov dword [esi + 0x48], eax
mov eax, dword [esi + 0x48]
add al, 0x2e
mov ecx, dword [esi + 8]
mov byte [edx + ecx], al
inc dword [esi + 8]
mov eax, dword [esi + 8]
cmp eax, 0xe
jb 0x4115e0
push edx
push edi
call fcn.004028b0
add esp, 8
fnstcw word [esi + 0xc8]
movzx eax, word [esi + 0xc8]
or eax, 0xc00
mov word [esi + 0x128], ax
fldcw word [esi + 0x128]
fistp dword [esi + 0x208]
fldcw word [esi + 0xc8]
mov eax, dword [esi + 0x208]
mov ecx, dword [esi + 0x174]
mov dword [ecx], eax
mov edx, dword [esi + 0x1ac]
mov word [edx], 0x6c20
mov byte [edx + 2], 0xf8
mov dword [edx + 0xa], 0
mov dword [edx + 7], 0
mov dword [edx + 3], 0
mov dword [esi + 8], 0
mov eax, dword [esi + 8]
cmp eax, 0xd
ja 0x4116eb
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 [edx + ecx]
mov edx, eax
and edx, 0xd62c6abf
xor eax, 0xd62c6abf
lea eax, [eax + edx*2]
mov edx, dword [esi + 0x1ac]
xor eax, ecx
mov dword [esi + 0x48], eax
mov eax, dword [esi + 0x48]
add al, 0xc7
mov ecx, dword [esi + 8]
mov byte [edx + ecx], al
inc dword [esi + 8]
mov eax, dword [esi + 8]
cmp eax, 0xe
jb 0x4116b0
push edx
push edi
call fcn.004028b0
add esp, 8
fnstcw word [esi + 0xc6]
movzx eax, word [esi + 0xc6]
or eax, 0xc00
mov word [esi + 0x126], ax
fldcw word [esi + 0x126]
fistp dword [esi + 0x204]
fldcw word [esi + 0xc6]
mov eax, dword [esi + 0x204]
mov ecx, dword [esi + 0x170]
mov dword [ecx], eax
mov ebx, 0xfffffffe
xor eax, eax
mov ecx, dword [esi + 0x3c]
nop
nop
nop
nop
nop
nop
nop
nop
add ebx, 2
cmp byte [ecx + eax], 0
lea eax, [eax + 1]
jne 0x411740
lea edi, [eax - 1]
lea ecx, [ebx + 2]
test eax, eax
jns 0x41175b
mov ecx, 0xffffffff
push ecx
call fcn.00408da0
add esp, 4
mov ecx, eax
mov eax, dword [esi + 0x16c]
mov dword [esi + 0x24], ecx
mov dword [eax], ecx
mov ecx, dword [esi + 0x3c]
test ecx, ecx
jne 0x411789
mov edi, ecx
not edi
xor eax, eax
nop
nop
inc edi
cmp byte [eax], 0
lea eax, [eax + 1]
jne 0x411780
mov dword [esi + 0x48], 0
mov eax, dword [esi + 0x24]
add ebx, eax
mov edx, eax
cmp ebx, eax
jbe 0x4117e4
mov edx, dword [esi + 0x24]
test edi, edi
jle 0x4117e4
mov eax, ecx
add eax, edi
mov edx, dword [esi + 0x24]
mov dword [esi + 0x1c], eax
nop
nop
nop
nop
cmp byte [ecx], 0
je 0x4117e4
mov edi, eax
lea eax, [esi + 0x48]
push eax
push edi
push ecx
mov edi, ecx
mov dword [esi], edx
call fcn.0040f370
mov edx, dword [esi]
add esp, 0xc
movzx ecx, word [esi + 0x48]
mov word [edx], cx
add edx, 2
cmp edx, ebx
jae 0x4117e4
add edi, eax
mov eax, dword [esi + 0x1c]
cmp edi, eax
mov ecx, edi
jb 0x4117b0
mov word [edx], 0
mov ecx, dword [esi + 0xb8]
mov dword [ecx], 0
mov dword [ecx + 4], 0
mov dword [ecx + 8], 0
push dword [esi + 0x24]
call fcn.00438fa0
mov eax, dword [esi + 0x16c]
mov eax, dword [eax]
xor ecx, ecx
test eax, eax
sete cl
jmp dword [ecx*4 + 0x443934]
push eax
call fcn.00408db0
add esp, 4
mov ecx, dword [esi + 0xb8]
push 0x400
call fcn.00439200
not eax
shr eax, 0x1f
jmp dword [eax*4 + 0x44393c]
mov eax, dword [esi + 0xfc]
mov dword [eax], 0
mov eax, dword [esi + 0xb8]
mov eax, dword [eax]
mov dword [esi + 0x48], 0x88898e8f
mov dword [esi + 0x4c], 0
mov dword [esi + 0x50], 0
mov word [esi + 0x54], 0
mov dword [esi + 0x28], 0
mov ecx, dword [esi + 0x28]
cmp ecx, 0xd
ja 0x4118cb
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov ecx, dword [esi + 0x28]
mov edx, dword [esi + 0x28]
movzx edx, byte [esi + edx + 0x48]
lea edi, [ecx + edx]
add edi, 0x540cdf42
add ecx, 0x540cdf42
and ecx, edx
add ecx, ecx
sub edi, ecx
mov dword [esi + 8], edi
mov ecx, dword [esi + 8]
add cl, 0x32
mov edx, dword [esi + 0x28]
mov byte [esi + edx + 0x48], cl
inc dword [esi + 0x28]
mov ecx, dword [esi + 0x28]
cmp ecx, 0xe
jb 0x411890
mov ecx, dword [esi + 0x48]
mov edx, dword [0x449a0c]
test edx, edx
je case.default.0x412b7e
xor edi, edi
mov ebx, dword [0x449a10]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp dword [ebx + edi*8], 0xd9a9c0b
je 0x41299d
inc edi
cmp edx, edi
jne 0x4118f0
jmp case.default.0x412b7e
xor ecx, ecx
test eax, eax
setle cl
jmp dword [ecx*4 + 0x443864]
mov edi, dword [esi + 0x1e0]
mov word [edi], 0x8d3c
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 0x411982
nop
nop
nop
nop
mov eax, dword [esi + 8]
mov ecx, dword [esi + 8]
movzx ecx, byte [edi + ecx]
lea edx, [eax + 0x38f5606a]
add eax, 0x6a
and eax, ecx
or edx, ecx
sub edx, eax
mov dword [esi + 0x48], edx
mov eax, dword [esi + 0x48]
add al, 0x1a
mov ecx, dword [esi + 8]
mov byte [edi + ecx], al
inc dword [esi + 8]
mov eax, dword [esi + 8]
cmp eax, 0xc
jb 0x411950
push edi
push ebx
call fcn.00402860
add esp, 8
mov ecx, dword [esi + 0x188]
mov dword [ecx], eax
mov edi, dword [esi + 0x1dc]
mov word [edi], 0x51ec
mov word [edi + 6], 0
mov dword [edi + 2], 0
mov dword [esi + 8], 0
mov eax, dword [esi + 8]
cmp eax, 7
ja 0x4119f6
nop
nop
nop
nop
nop
mov eax, dword [esi + 8]
mov ecx, dword [esi + 8]
movzx edx, byte [edi + ecx]
lea ecx, [eax - 0x371f990d]
add eax, 0xf3
or eax, ecx
and eax, edx
or ecx, edx
sub ecx, eax
mov dword [esi + 0x48], ecx
mov eax, dword [esi + 0x48]
add al, 0x5b
mov ecx, dword [esi + 8]
mov byte [edi + ecx], al
inc dword [esi + 8]
mov eax, dword [esi + 8]
cmp eax, 8
jb 0x4119c0
push edi
push ebx
call fcn.00402860
add esp, 8
mov ecx, dword [esi + 0x180]
mov dword [ecx], eax
mov ecx, dword [esi + 0x188]
mov edx, dword [ecx]
xor ecx, ecx
test edx, edx
sete cl
jmp dword [ecx*4 + 0x443a3c]
xor ecx, ecx
test eax, eax
sete cl
jmp dword [ecx*4 + 0x443a44]
mov eax, edx
mov dword [esi + 0x24], edx
jmp dword [0x443a50]
mov ecx, edx
jmp 0x413310
mov word [edi], 0x59e8
mov dword [edi + 2], 0
mov dword [edi + 6], 0
mov dword [edi + 0xa], 0
mov dword [esi + 8], 0
mov eax, dword [esi + 8]
cmp eax, 0xd
ja 0x411aa7
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov ecx, dword [esi + 8]
mov eax, dword [esi + 8]
movzx eax, byte [edi + eax]
mov edx, 0xa12d05cb
sub edx, ecx
add ecx, 0x34
and ecx, eax
or edx, eax
not edx
add edx, eax
sub edx, ecx
mov dword [esi + 0x48], edx
mov eax, dword [esi + 0x48]
add al, 0x94
mov ecx, dword [esi + 8]
mov byte [edi + ecx], al
inc dword [esi + 8]
mov eax, dword [esi + 8]
cmp eax, 0xe
jb 0x411a70
push edi
push ebx
call fcn.00402860
add esp, 8
mov ecx, dword [esi + 0x184]
mov dword [ecx], eax
mov edx, dword [esi + 0x1c4]
mov word [edx], 0x8d02
mov word [edx + 0xa], 0
mov dword [edx + 6], 0
mov dword [edx + 2], 0
mov dword [esi + 8], 0
mov eax, dword [esi + 8]
cmp eax, 0xb
ja 0x411b2c
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 + 0x5e2696]
and edx, ecx
add eax, ecx
add eax, 0x5e2696
add edx, edx
sub eax, edx
mov edx, dword [esi + 0x1c4]
mov dword [esi + 0x48], eax
mov eax, dword [esi + 0x48]
add al, 0xe6
mov ecx, dword [esi + 8]
mov byte [edx + ecx], al
inc dword [esi + 8]
mov eax, dword [esi + 8]
cmp eax, 0xc
jb 0x411af0
push edx
push ebx
call fcn.00402860
add esp, 8
mov ecx, dword [esi + 0xbc]
jmp dword [0x443ac0]
mov dword [ecx], eax
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov dword [ecx], eax
jmp dword [0x443ac8]
mov ecx, dword [esi + 0x184]
mov edx, dword [ecx]
xor ecx, ecx
test edx, edx
sete cl
jmp dword [ecx*4 + 0x443acc]
xor ecx, ecx
test eax, eax
sete cl
jmp dword [ecx*4 + 0x443ad4]
mov eax, edx
nop
nop
mov ebx, eax
inc eax
cmp byte [ebx], 0
jne 0x411b80
mov eax, ebx
sub eax, edx
mov dword [esi + 4], 0
mov dword [esi + 0x24], eax
test eax, eax
mov dword [esi + 0x1c], edx
jle 0x411bd7
cmp byte [edx], 0
je 0x411bd7
mov dword [esi + 4], 0
mov edi, dword [esi + 0x1c]
nop
nop
nop
nop
mov dword [esi + 0x48], 0
lea eax, [esi + 0x48]
push eax
push ebx
push edi
call fcn.0040f370
add esp, 0xc
lea ecx, [edi + eax]
inc dword [esi + 4]
cmp ecx, ebx
jae 0x411bd7
cmp byte [edi + eax], 0
mov edi, ecx
jne 0x411bb0
mov edi, dword [esi + 4]
mov eax, edi
inc eax
lea eax, [edi + edi + 2]
jns 0x411be8
mov eax, 0xffffffff
push eax
call fcn.00408da0
add esp, 4
mov ecx, eax
mov eax, dword [esi + 0x164]
mov dword [eax], ecx
mov dword [esi + 0x48], 0
lea eax, [ecx + edi*2]
mov dword [esi], eax
cmp eax, ecx
jbe 0x412381
cmp dword [esi + 0x24], 0
mov eax, dword [esi + 0xbc]
mov edi, dword [esi + 0x1c]
jle 0x412387
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp byte [edi], 0
je 0x412387
lea eax, [esi + 0x48]
push eax
push ebx
push edi
mov dword [esi + 4], ecx
call fcn.0040f370
add esp, 0xc
movzx ecx, word [esi + 0x48]
mov edx, dword [esi + 4]
mov word [edx], cx
mov ecx, dword [esi + 4]
add ecx, 2
cmp ecx, dword [esi]
jae 0x412381
add edi, eax
cmp edi, ebx
mov eax, dword [esi + 0xbc]
jb 0x411c30
jmp 0x412387
sete al
movzx eax, al
jmp dword [eax*4 + 0x44386c]
mov word [esi + 0x48], 0xd146
mov dword [esi + 0x4a], 0
mov dword [esi + 0x4d], 0
mov dword [esi + 0x28], 0
mov eax, dword [esi + 0x28]
cmp eax, 8
ja 0x411ce6
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esi + 0x28]
mov ecx, dword [esi + 0x28]
movzx ecx, byte [esi + ecx + 0x48]
lea edx, [eax + 0x41ea3ae3]
add eax, 0xe3
and eax, ecx
or edx, ecx
sub edx, eax
mov dword [esi + 8], edx
mov eax, dword [esi + 8]
add al, 0xcb
mov ecx, dword [esi + 0x28]
mov byte [esi + ecx + 0x48], al
inc dword [esi + 0x28]
mov eax, dword [esi + 0x28]
cmp eax, 9
jb 0x411cb0
push 2
lea eax, [esi + 0x48]
push eax
mov dword [esi], ebx
push ebx
call fcn.00402ab0
add esp, 0xc
xor ecx, ecx
test eax, eax
setne cl
mov bl, 1
jmp dword [ecx*4 + 0x443874]
mov word [esi + 8], 0x65f5
mov dword [esi + 0xe], 0
mov dword [esi + 0xa], 0
mov dword [esi + 0x18], 0
mov eax, dword [esi + 0x18]
cmp eax, 9
ja 0x411d6e
nop
nop
nop
nop
nop
nop
mov eax, dword [esi + 0x18]
mov ecx, dword [esi + 0x18]
movzx ecx, byte [esi + ecx + 8]
lea edx, [eax + 0x91]
add eax, ecx
and edx, ecx
add edx, edx
sub eax, edx
add eax, 0x8d615491
mov dword [esi + 0xe8], eax
mov eax, dword [esi + 0xe8]
add al, 9
mov ecx, dword [esi + 0x18]
mov byte [esi + ecx + 8], al
inc dword [esi + 0x18]
mov eax, dword [esi + 0x18]
cmp eax, 0xa
jb 0x411d30
push 5
lea eax, [esi + 8]
push eax
push dword [esi]
call fcn.00402ab0
add esp, 0xc
xor ecx, ecx
test eax, eax
setne cl
jmp dword [ecx*4 + 0x44387c]
mov word [esi + 0x28], 0x79ec
mov dword [esi + 0x2a], 0
mov dword [esi + 0x2e], 0
mov dword [esi + 0x32], 0
mov dword [esi + 0x18], 0
mov eax, dword [esi + 0x18]
cmp eax, 0xd
ja 0x411e0e
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esi + 0x18]
mov ecx, dword [esi + 0x18]
movzx edx, byte [esi + ecx + 0x28]
mov ecx, eax
and ecx, 0x11f6f96f
xor eax, 0x11f6f96f
lea eax, [eax + ecx*2]
lea ecx, [eax + edx]
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 + 0xe8], eax
mov eax, dword [esi + 0xe8]
add al, 0xf7
mov ecx, dword [esi + 0x18]
mov byte [esi + ecx + 0x28], al
inc dword [esi + 0x18]
mov eax, dword [esi + 0x18]
cmp eax, 0xe
jb 0x411dc0
push 2
lea eax, [esi + 0x28]
push eax
push dword [esi]
call fcn.00402ab0
add esp, 0xc
xor ecx, ecx
test eax, eax
setne cl
jmp dword [ecx*4 + 0x443884]
mov word [esi + 0x140], 0xd532
mov dword [esi + 0x146], 0
mov dword [esi + 0x142], 0
mov dword [esi + 0x18], 0
mov eax, dword [esi + 0x18]
cmp eax, 9
ja 0x411ea5
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esi + 0x18]
mov ecx, dword [esi + 0x18]
movzx ecx, byte [esi + ecx + 0x140]
lea edx, [eax + ecx]
add edx, 0xbba9d49d
add eax, 0xbba9d49d
and eax, ecx
add eax, eax
sub edx, eax
mov dword [esi + 0xe8], edx
mov eax, dword [esi + 0xe8]
add al, 0xb5
mov ecx, dword [esi + 0x18]
mov byte [esi + ecx + 0x140], al
inc dword [esi + 0x18]
mov eax, dword [esi + 0x18]
cmp eax, 0xa
jb 0x411e60
push 3
lea eax, [esi + 0x140]
push eax
push dword [esi]
call fcn.00402ab0
add esp, 0xc
xor ecx, ecx
test eax, eax
setne cl
jmp dword [ecx*4 + 0x44388c]
movzx eax, bl
mov ebx, dword [esi]
jmp dword [eax*4 + 0x443894]
mov word [esi + 0x48], 0x51e6
mov dword [esi + 0x4a], 0
mov dword [esi + 0x4e], 0
mov dword [esi + 0x52], 0
mov word [esi + 0x56], 0
mov dword [esi + 0x28], 0
mov eax, dword [esi + 0x28]
cmp eax, 0xf
ja 0x411f45
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esi + 0x28]
mov ecx, dword [esi + 0x28]
movzx ecx, byte [esi + ecx + 0x48]
lea edx, [eax + 0x33]
and edx, ecx
add eax, ecx
add edx, edx
sub eax, edx
add eax, 0x13833
mov dword [esi + 8], eax
mov eax, dword [esi + 8]
add al, 0x9b
mov ecx, dword [esi + 0x28]
mov byte [esi + ecx + 0x48], al
inc dword [esi + 0x28]
mov eax, dword [esi + 0x28]
cmp eax, 0x10
jb 0x411f10
lea eax, [esi + 0x48]
push eax
push ebx
call fcn.00402860
add esp, 8
mov dword [esi + 0x40], eax
mov word [esi + 0x48], 0x992d
mov dword [esi + 0x4e], 0
mov dword [esi + 0x4a], 0
mov dword [esi + 0x28], 0
mov eax, dword [esi + 0x28]
cmp eax, 9
ja 0x411fbe
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esi + 0x28]
mov ecx, dword [esi + 0x28]
movzx edx, byte [esi + ecx + 0x48]
lea ecx, [eax + 0x7bce4cbc]
mov edi, edx
not edi
or edi, ecx
and ecx, edx
add ecx, edi
neg ecx
add eax, ecx
add eax, 0x7bce4cbb
mov dword [esi + 8], eax
mov eax, dword [esi + 8]
add al, 0xdc
mov ecx, dword [esi + 0x28]
mov byte [esi + ecx + 0x48], al
inc dword [esi + 0x28]
mov eax, dword [esi + 0x28]
cmp eax, 0xa
jb 0x411f80
lea eax, [esi + 0x48]
push eax
push ebx
call fcn.00402900
add esp, 8
mov dword [esi + 0x3c], eax
mov word [esi + 0x48], 0xa12c
mov dword [esi + 0x4a], 0
mov dword [esi + 0x4d], 0
mov dword [esi + 0x28], 0
mov eax, dword [esi + 0x28]
cmp eax, 8
ja 0x41203e
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esi + 0x28]
mov ecx, dword [esi + 0x28]
movzx edx, byte [esi + ecx + 0x48]
lea ecx, [eax + 0x678f569b]
mov edi, edx
not edi
or edi, ecx
and ecx, edx
add ecx, edi
neg ecx
add eax, ecx
add eax, 0x678f569a
mov dword [esi + 8], eax
mov eax, dword [esi + 8]
add al, 0xc3
mov ecx, dword [esi + 0x28]
mov byte [esi + ecx + 0x48], al
inc dword [esi + 0x28]
mov eax, dword [esi + 0x28]
cmp eax, 9
jb 0x412000
lea eax, [esi + 0x48]
push eax
push ebx
call fcn.00402860
add esp, 8
mov dword [esi + 0x24], eax
mov word [esi + 0x48], 0x3194
mov dword [esi + 0x4e], 0
mov dword [esi + 0x4a], 0
mov dword [esi + 0x28], 0
mov eax, dword [esi + 0x28]
cmp eax, 9
ja 0x4120bc
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov edx, dword [esi + 0x28]
mov eax, dword [esi + 0x28]
movzx ecx, byte [esi + eax + 0x48]
lea eax, [edx + 0xd8]
and eax, ecx
mov edi, 0xc6dc5a27
sub edi, edx
or edi, ecx
not edi
add edi, ecx
sub edi, eax
mov dword [esi + 8], edi
mov eax, dword [esi + 8]
add al, 0x18
mov ecx, dword [esi + 0x28]
mov byte [esi + ecx + 0x48], al
inc dword [esi + 0x28]
mov eax, dword [esi + 0x28]
cmp eax, 0xa
jb 0x412080
lea eax, [esi + 0x48]
push eax
push ebx
call fcn.004028b0
add esp, 8
fnstcw word [esi + 0xce]
movzx eax, word [esi + 0xce]
or eax, 0xc00
mov word [esi + 0x12e], ax
fldcw word [esi + 0x12e]
fistp dword [esi + 0x210]
fldcw word [esi + 0xce]
mov eax, dword [esi + 0x210]
mov dword [esi + 0x1ec], eax
mov word [esi + 0x48], 0xf80c
mov byte [esi + 0x4a], 0x64
mov dword [esi + 0x4b], 0
mov dword [esi + 0x4e], 0
mov dword [esi + 0x28], 0
mov eax, dword [esi + 0x28]
cmp eax, 9
ja 0x412169
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esi + 0x28]
mov ecx, dword [esi + 0x28]
movzx ecx, byte [esi + ecx + 0x48]
lea edx, [eax + ecx]
add edx, 0x643f9ff1
add eax, 0x643f9ff1
and eax, ecx
add eax, eax
sub edx, eax
mov dword [esi + 8], edx
mov eax, dword [esi + 8]
add al, 0x69
mov ecx, dword [esi + 0x28]
mov byte [esi + ecx + 0x48], al
inc dword [esi + 0x28]
mov eax, dword [esi + 0x28]
cmp eax, 0xa
jb 0x412130
lea eax, [esi + 0x48]
push eax
push ebx
call fcn.004028b0
add esp, 8
fnstcw word [esi + 0xcc]
movzx eax, word [esi + 0xcc]
or eax, 0xc00
mov word [esi + 0x12c], ax
fldcw word [esi + 0x12c]
fistp dword [esi + 0x20c]
fldcw word [esi + 0xcc]
mov eax, dword [esi + 0x20c]
mov dword [esi + 0x1e8], eax
mov word [esi + 0x48], 0xd5d0
mov byte [esi + 0x4a], 0x38
mov dword [esi + 0x4b], 0
mov dword [esi + 0x4f], 0
mov byte [esi + 0x53], 0
mov dword [esi + 0x28], 0
mov eax, dword [esi + 0x28]
cmp eax, 0xb
ja 0x412215
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esi + 0x28]
mov ecx, dword [esi + 0x28]
movzx ecx, byte [esi + ecx + 0x48]
lea edx, [eax + 0x77]
and edx, ecx
add eax, ecx
add edx, edx
sub eax, edx
add eax, 0x8c8e2e77
mov dword [esi + 8], eax
mov eax, dword [esi + 8]
add al, 0xbf
mov ecx, dword [esi + 0x28]
mov byte [esi + ecx + 0x48], al
inc dword [esi + 0x28]
mov eax, dword [esi + 0x28]
cmp eax, 0xc
jb 0x4121e0
lea eax, [esi + 0x48]
push eax
push ebx
call fcn.00402950
add esp, 8
mov dword [esi + 0x1e4], eax
mov ebx, 0xffffffff
mov eax, dword [esi + 0x40]
cmp byte [eax + ebx + 1], 0
lea ebx, [ebx + 1]
jne 0x412230
mov edx, eax
add edx, ebx
mov dword [esi], 0
test ebx, ebx
mov dword [esi + 4], edx
jle 0x412289
cmp byte [eax], 0
je 0x412289
mov dword [esi], 0
mov edi, dword [esi + 0x40]
nop
nop
nop
nop
nop
nop
nop
mov dword [esi + 0x48], 0
lea eax, [esi + 0x48]
push eax
push edx
push edi
call fcn.0040f370
mov edx, dword [esi + 4]
add esp, 0xc
lea ecx, [edi + eax]
inc dword [esi]
cmp ecx, edx
jae 0x412289
cmp byte [edi + eax], 0
mov edi, ecx
jne 0x412260
mov ecx, dword [esi]
mov eax, ecx
inc eax
lea eax, [ecx + ecx + 2]
jns 0x412299
mov eax, 0xffffffff
push eax
call fcn.00408da0
add esp, 4
mov ecx, eax
mov dword [esi + 0x48], 0
mov eax, dword [esi]
lea eax, [ecx + eax*2]
mov edi, ecx
mov dword [esi + 0x44], ecx
mov dword [esi + 0x1c], eax
cmp eax, ecx
mov ecx, dword [esi + 0x40]
mov edx, dword [esi + 4]
jbe 0x4122ff
mov edi, dword [esi + 0x44]
test ebx, ebx
jle 0x4122ff
mov edi, dword [esi + 0x44]
nop
nop
nop
nop
cmp byte [ecx], 0
je 0x4122ff
lea eax, [esi + 0x48]
push eax
push edx
push ecx
mov ebx, ecx
call fcn.0040f370
add esp, 0xc
movzx ecx, word [esi + 0x48]
mov word [edi], cx
add edi, 2
cmp edi, dword [esi + 0x1c]
jae 0x4122ff
add ebx, eax
mov edx, dword [esi + 4]
cmp ebx, edx
mov ecx, ebx
jb 0x4122d0
mov word [edi], 0
lea eax, [esi + 0x28]
push eax
push 0
push 0
push dword [esi]
mov ebx, dword [esi + 0x44]
push ebx
push 0
call dword [0x449a08]
mov edi, dword [esi + 0x28]
lea eax, [edi + edi]
test edi, edi
jns 0x412329
mov eax, 0xffffffff
push eax
call fcn.00408da0
add esp, 4
mov ecx, eax
lea eax, [esi + 0x28]
push eax
push edi
mov dword [esi + 0x190], ecx
push ecx
push dword [esi]
push ebx
push 0
call dword [0x449a08]
jmp dword [0x4438ac]
push ebx
call fcn.00408db0
add esp, 4
mov ecx, dword [esi + 0x24]
mov eax, ecx
jmp 0x413ccb
mov eax, dword [case.0x413267.62]
nop
nop
nop
nop
nop
nop
nop
jmp eax
jmp case.0x41108a.4
mov ecx, dword [esi + 0x24]
mov edx, ecx
jmp 0x413cc3
mov eax, dword [esi + 0xbc]
mov word [ecx], 0
mov ecx, dword [eax]
mov edi, 0xfffffffe
xor eax, eax
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
add edi, 2
cmp byte [ecx + eax], 0
lea eax, [eax + 1]
jne 0x4123a0
mov dword [esi], ecx
lea ebx, [eax - 1]
lea ecx, [edi + 2]
test eax, eax
jns 0x4123bd
mov ecx, 0xffffffff
push ecx
call fcn.00408da0
add esp, 4
mov edx, eax
mov eax, dword [esi + 0x160]
mov dword [eax], edx
mov ecx, dword [esi]
test ecx, ecx
jne 0x4123e9
mov ebx, ecx
not ebx
xor eax, eax
nop
nop
nop
nop
inc ebx
cmp byte [eax], 0
lea eax, [eax + 1]
jne 0x4123e0
mov dword [esi + 0x48], 0
add edi, edx
cmp edi, edx
jbe 0x412432
test ebx, ebx
jle 0x412432
add ebx, ecx
mov dword [esi + 4], ebx
nop
cmp byte [ecx], 0
je 0x412432
lea eax, [esi + 0x48]
push eax
push dword [esi + 4]
push ecx
mov ebx, ecx
mov dword [esi], edx
call fcn.0040f370
mov edx, dword [esi]
add esp, 0xc
movzx ecx, word [esi + 0x48]
mov word [edx], cx
add edx, 2
cmp edx, edi
jae 0x412432
add ebx, eax
cmp ebx, dword [esi + 4]
mov ecx, ebx
jb 0x412400
mov word [edx], 0
mov eax, dword [esi + 0xe4]
mov dword [eax], 0
mov eax, dword [esi + 0xe0]
mov dword [eax], 0
mov edi, dword [esi + 0x1d4]
mov word [edi], 0x7159
mov byte [edi + 2], 0xf8
mov dword [edi + 3], 0
mov byte [edi + 7], 0
mov dword [esi + 8], 0
mov eax, dword [esi + 8]
cmp eax, 7
ja 0x4124ba
nop
nop
nop
nop
nop
nop
nop
nop
mov ecx, dword [esi + 8]
mov eax, dword [esi + 8]
movzx eax, byte [edi + eax]
mov edx, 0x14828660
sub edx, ecx
add ecx, 0x9f
and ecx, eax
or edx, eax
not edx
add edx, eax
sub edx, ecx
mov dword [esi + 0x48], edx
mov eax, dword [esi + 0x48]
add al, 0xa7
mov ecx, dword [esi + 8]
mov byte [edi + ecx], al
inc dword [esi + 8]
mov eax, dword [esi + 8]
cmp eax, 8
jb 0x412480
push edi
push dword [ebp + 8]
call fcn.00402900
add esp, 8
mov ecx, dword [esi + 0x1a8]
mov dword [ecx], eax
xor ecx, ecx
test eax, eax
setne cl
jmp dword [ecx*4 + 0x443aec]
push eax
call fcn.00402b00
add esp, 4
mov edi, eax
mov ecx, 0xc
mul ecx
seto dl
mov ecx, 0xffffffff
mov ebx, 0xffffffff
add eax, 4
jb 0x412502
mov ebx, eax
mov eax, dword [esi + 0xe0]
mov dword [eax], edi
test dl, dl
jne 0x412510
mov ecx, ebx
push ecx
call fcn.00408da0
add esp, 4
mov dword [eax], edi
add eax, 4
xor ecx, ecx
test edi, edi
sete cl
jmp dword [ecx*4 + 0x443af4]
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 + 0x443afc]
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 + 0x443afc]
mov ecx, dword [esi + 0xe4]
mov dword [ecx], eax
mov ebx, dword [esi + 0x19c]
lea eax, [ebx + 3]
mov dword [esi + 0x1c], eax
xor eax, eax
xor ecx, ecx
cmp eax, edi
mov edx, dword [esi + 0x198]
lea edx, [edx + 3]
mov dword [esi + 0x24], edx
mov edx, dword [esi + 0x110]
mov dword [edx], eax
setb cl
mov edx, dword [esi + 0x194]
add edx, 3
mov dword [esi + 0x3c], edx
jmp dword [ecx*4 + 0x443b04]
mov ebx, dword [esi + 0x168]
mov ecx, ebx
push 3
call fcn.00409650
mov eax, dword [esi + 0xe4]
mov edi, dword [eax]
mov eax, dword [esi + 0x160]
mov ecx, dword [eax]
mov eax, dword [esi + 0x164]
mov edx, dword [eax]
mov eax, dword [esi + 0xe0]
push dword [eax]
push edi
mov dword [esi + 4], ecx
push ecx
mov dword [esi], edx
push edx
push ebx
call fcn.00418eb0
add esp, 0x14
mov ecx, ebx
call fcn.00409fd0
xor eax, eax
test edi, edi
sete al
jmp dword [eax*4 + 0x443b0c]
lea eax, [edi - 4]
mov dword [esi + 0x1c], 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 + 0x443b14]
push dword [esi + 0x1c]
call fcn.00408db0
add esp, 4
xor eax, eax
mov ecx, dword [esi]
test ecx, ecx
sete al
jmp dword [eax*4 + 0x443b24]
xor eax, eax
mov ecx, dword [esi + 4]
test ecx, ecx
sete al
jmp dword [eax*4 + 0x443b2c]
push ecx
call fcn.00408db0
add esp, 4
mov ecx, dword [esi + 0x168]
call fcn.00409690
jmp case.0x41108a.4
mov word [edx], 0
mov edi, dword [esi + 0x110]
mov eax, dword [edi]
inc eax
mov ecx, dword [esi + 0xe0]
mov ecx, dword [ecx]
xor edx, edx
cmp eax, ecx
mov dword [edi], eax
setb dl
mov ebx, dword [esi + 0x19c]
jmp dword [edx*4 + 0x443b04]
push eax
mov eax, dword [esi + 0x1a8]
push dword [eax]
call fcn.00402b10
add esp, 8
mov edi, dword [esi + 0x1f0]
mov dword [edi], eax
mov word [ebx], 0x9fe9
mov byte [ebx + 2], 2
mov ecx, dword [esi + 0x1c]
mov dword [ecx], 0
mov word [ecx + 4], 0
mov dword [esi + 8], 0
mov ecx, dword [esi + 8]
cmp ecx, 8
ja 0x41271c
nop
nop
nop
nop
mov ecx, dword [esi + 8]
mov edx, dword [esi + 8]
movzx edx, byte [ebx + edx]
add ecx, 0xfe4aef56
xor ecx, edx
mov dword [esi + 0x48], ecx
mov ecx, dword [esi + 0x48]
add cl, 0xa6
mov edx, dword [esi + 8]
mov byte [ebx + edx], cl
inc dword [esi + 8]
mov ecx, dword [esi + 8]
cmp ecx, 9
jb 0x4126f0
push ebx
push eax
call fcn.00402860
add esp, 8
mov ecx, dword [esi + 0x1b8]
mov dword [ecx], eax
mov ebx, dword [esi + 0x198]
mov word [ebx], 0x836d
mov byte [ebx + 2], 4
mov eax, dword [esi + 0x24]
mov dword [eax], 0
mov dword [eax + 4], 0
mov dword [eax + 8], 0
mov dword [esi + 8], 0
mov eax, dword [esi + 8]
cmp eax, 0xe
ja 0x4127a6
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]
lea edx, [eax + 0x81]
and edx, ecx
add eax, ecx
add edx, edx
sub eax, edx
add eax, 0xd1314b81
mov dword [esi + 0x48], eax
mov eax, dword [esi + 0x48]
add al, 0x79
mov ecx, dword [esi + 8]
mov byte [ebx + ecx], al
inc dword [esi + 8]
mov eax, dword [esi + 8]
cmp eax, 0xf
jb 0x412770
push ebx
push dword [edi]
call fcn.00402860
add esp, 8
mov ecx, dword [esi + 0x1b4]
mov dword [ecx], eax
mov ebx, dword [esi + 0x194]
mov word [ebx], 0xe1f1
mov byte [ebx + 2], 0x6a
mov eax, dword [esi + 0x3c]
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 0x412845
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov ecx, dword [esi + 8]
mov eax, dword [esi + 8]
movzx eax, byte [ebx + eax]
mov edx, 0xfffec7ad
sub edx, ecx
add ecx, 0x52
and ecx, eax
or edx, eax
not edx
add edx, eax
sub edx, ecx
mov dword [esi + 0x48], edx
mov eax, dword [esi + 0x48]
mov ecx, eax
xor ecx, 0xc1
and eax, 0x41
lea eax, [ecx + eax*2]
inc al
mov ecx, dword [esi + 8]
mov byte [ebx + ecx], al
inc dword [esi + 8]
mov eax, dword [esi + 8]
cmp eax, 0x10
jb 0x412800
push ebx
push dword [edi]
call fcn.00402860
add esp, 8
mov ecx, dword [esi + 0xe4]
mov ecx, dword [ecx]
mov edx, dword [esi + 0x110]
mov edx, dword [edx]
lea edx, [edx + edx*2]
mov edi, dword [esi + 0x1b8]
mov edi, dword [edi]
mov ebx, dword [esi + 0x1b4]
mov ebx, dword [ebx]
mov dword [ecx + edx*4], 0
mov dword [ecx + edx*4 + 4], edi
mov dword [ecx + edx*4 + 8], eax
lea eax, [ecx + edx*4]
mov dword [esi], eax
mov eax, ebx
mov edi, 0xfffffffe
xor ebx, ebx
add edi, 2
cmp byte [eax + ebx], 0
lea ebx, [ebx + 1]
jne 0x412890
test ebx, ebx
mov dword [esi + 4], eax
jns 0x4128b0
mov eax, 0xffffffff
jmp 0x4128b3
lea eax, [edi + 2]
push eax
call fcn.00408da0
add esp, 4
mov edx, eax
mov eax, dword [esi]
mov dword [eax], edx
mov ecx, dword [esi + 4]
test ecx, ecx
je 0x4128d0
dec ebx
jmp 0x4128e9
mov ebx, ecx
not ebx
xor eax, eax
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
inc ebx
cmp byte [eax], 0
lea eax, [eax + 1]
jne 0x4128e0
mov dword [esi + 0x48], 0
add edi, edx
cmp edi, edx
jbe 0x412680
test ebx, ebx
jle 0x412680
add ebx, ecx
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp byte [ecx], 0
je 0x412680
lea eax, [esi + 0x48]
push eax
push ebx
push ecx
mov dword [esi + 4], ecx
mov dword [esi], edx
call fcn.0040f370
mov edx, dword [esi]
add esp, 0xc
movzx ecx, word [esi + 0x48]
mov word [edx], cx
add edx, 2
cmp edx, edi
jae 0x412680
mov ecx, dword [esi + 4]
add ecx, eax
cmp ecx, ebx
jb 0x412910
jmp 0x412680
xor eax, eax
cmp ebx, edi
sete al
jmp dword [eax*4 + 0x443b1c]
mov eax, dword [ebx - 0xc]
add ebx, 0xfffffff4
test eax, eax
je 0x412950
push eax
call fcn.00408db0
add esp, 4
jmp 0x412950
xor eax, eax
mov ecx, dword [esi]
test ecx, ecx
sete al
jmp dword [eax*4 + 0x443b24]
push ecx
call fcn.00408db0
add esp, 4
xor eax, eax
mov ecx, dword [esi + 4]
test ecx, ecx
sete al
jmp dword [eax*4 + 0x443b2c]
mov edx, dword [ebx + edi*8 + 4]
cmp edx, ecx
jne 0x412b56
xor eax, eax
cmp ecx, 0xc0000004
sete al
jmp dword [eax*4 + 0x443944]
mov edi, dword [esi + 0xfc]
mov eax, dword [edi]
add eax, 2
push eax
call fcn.00438de0
add esp, 4
mov ecx, eax
mov eax, dword [esi + 0xd0]
mov dword [esi], ecx
mov dword [eax], ecx
mov eax, dword [edi]
add eax, 2
mov ecx, dword [esi + 0xb8]
mov ecx, dword [ecx]
mov dword [esi + 0x1c], ecx
mov dword [esi + 0x48], 0x88898e8f
mov dword [esi + 0x4c], 0
mov dword [esi + 0x50], 0
mov word [esi + 0x54], 0
mov dword [esi + 0x28], 0
mov ecx, dword [esi + 0x28]
cmp ecx, 0xd
ja 0x412a5b
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov ecx, dword [esi + 0x28]
mov edx, dword [esi + 0x28]
movzx edx, byte [esi + edx + 0x48]
lea edi, [ecx + edx]
add edi, 0x540cdf42
add ecx, 0x540cdf42
and ecx, edx
add ecx, ecx
sub edi, ecx
mov dword [esi + 8], edi
mov ecx, dword [esi + 8]
add cl, 0x32
mov edx, dword [esi + 0x28]
mov byte [esi + edx + 0x48], cl
inc dword [esi + 0x28]
mov ecx, dword [esi + 0x28]
cmp ecx, 0xe
jb 0x412a20
mov ecx, dword [esi + 0x48]
mov ebx, dword [0x449a0c]
test ebx, ebx
je case.default.0x412baf
xor edi, edi
mov edx, dword [0x449a10]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp dword [edx + edi*8], 0xd9a9c0b
je 0x412b85
inc edi
cmp ebx, edi
jne 0x412a80
jmp case.default.0x412baf
mov ebx, dword [esi]
mov word [esi + 0x130], 0xc00
mov byte [esi + 0x132], pe_nt_image_headers32
mov dword [esi + 0x133], 0
mov dword [esi + 0x137], 0
mov byte [esi + 0x13b], 0
mov dword [esi + 0x18], 0
mov eax, dword [esi + 0x18]
cmp eax, 0xb
ja 0x412b30
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esi + 0x18]
lea ecx, [eax - 0x58395d91]
lea edx, [eax + 0x6f]
mov edi, edx
and edi, ecx
xor edx, ecx
mov ecx, dword [esi + 0x18]
movzx ecx, byte [esi + ecx + 0x130]
and edi, ecx
and edx, ecx
add eax, ecx
add eax, 0xa7c6a26f
lea ecx, [edx + edi*2]
sub eax, ecx
mov dword [esi + 0xe8], eax
mov eax, dword [esi + 0xe8]
add al, 0xf7
mov ecx, dword [esi + 0x18]
mov byte [esi + ecx + 0x130], al
inc dword [esi + 0x18]
mov eax, dword [esi + 0x18]
cmp eax, 0xc
jb 0x412ae0
push 3
lea eax, [esi + 0x130]
push eax
push ebx
call fcn.00402ab0
add esp, 0xc
xor ecx, ecx
test eax, eax
sete cl
jmp dword [ecx*4 + 0x443894]
jmp dword [0x4438a8]
push dword [esi + 0xfc]
push 0
push 0
push 0x2b
push eax
push 5
push dword [0x449a14]
push edx
call fcn.0043a960
add esp, 0x20
xor ecx, ecx
cmp eax, 0xc0000004
sete cl
jmp dword [ecx*4 + 0x443944]
mov edx, dword [edx + edi*8 + 4]
cmp edx, ecx
je case.default.0x412baf
push 0
push eax
push dword [esi]
push 0x2b
push dword [esi + 0x1c]
push 5
push dword [0x449a14]
push edx
call fcn.0043a960
add esp, 0x20
mov ecx, eax
not ecx
shr ecx, 0x1f
jmp dword [ecx*4 + 0x44394c]
jmp dword [0x443a2c]
mov ebx, 0xfffffffe
xor eax, eax
mov ecx, dword [esi + 0x40]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
add ebx, 2
cmp byte [ecx + eax], 0
lea eax, [eax + 1]
jne 0x412bd0
lea edi, [eax - 1]
mov ecx, dword [esi + 0x158]
mov dword [ecx], edi
lea ecx, [ebx + 2]
test eax, eax
jns 0x412bf3
mov ecx, 0xffffffff
push ecx
call fcn.00408da0
add esp, 4
mov ecx, eax
mov eax, dword [esi + 0xf8]
mov dword [eax], ecx
cmp dword [esi + 0x40], 0
jne 0x412c29
mov edi, dword [esi + 0x40]
not edi
xor eax, eax
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
inc edi
cmp byte [eax], 0
lea eax, [eax + 1]
jne 0x412c20
mov dword [esi + 0x48], 0
add ebx, ecx
cmp ebx, ecx
jbe 0x412c80
test edi, edi
jle 0x412c80
mov eax, dword [esi + 0x40]
mov edx, eax
add edx, edi
mov edi, eax
mov dword [esi + 0x1c], edx
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp byte [edi], 0
je 0x412c80
lea eax, [esi + 0x48]
push eax
push edx
push edi
mov dword [esi], ecx
call fcn.0040f370
add esp, 0xc
movzx ecx, word [esi + 0x48]
mov edx, dword [esi]
mov word [edx], cx
mov ecx, dword [esi]
add ecx, 2
cmp ecx, ebx
jae 0x412c80
add edi, eax
mov edx, dword [esi + 0x1c]
cmp edi, edx
jb 0x412c50
mov word [ecx], 0
mov eax, dword [esi + 0xd0]
mov eax, dword [eax]
mov ecx, dword [eax + 4]
mov dword [esi + 0x24], eax
movzx eax, word [eax]
and eax, 0xfffffffe
lea edi, [ecx + eax]
add edi, 0xfffffffe
xor eax, eax
mov dword [esi], ecx
cmp edi, ecx
setae al
mov ecx, dword [case.0x412cb0.6]
mov edx, edi
jmp dword [eax*4 + 0x443954]
xor eax, eax
cmp word [edx], 0
setne al
mov ebx, edi
jmp dword [eax*4 + 0x44395c]
mov word [esi + 0xe8], 0x1a16
mov byte [esi + 0xea], 0x82
mov dword [esi + 0xeb], 0
mov dword [esi + 0xef], 0
mov word [esi + 0xf3], 0
mov dword [esi + 0x20], 0
mov eax, dword [esi + 0x20]
cmp eax, 0xc
ja 0x412d4a
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esi + 0x20]
mov ecx, dword [esi + 0x20]
movzx ecx, byte [esi + ecx + 0xe8]
lea edx, [eax + 0x18a41a16]
add eax, 0x16
and eax, ecx
or edx, ecx
sub edx, eax
mov dword [esi + 0x18], edx
mov eax, dword [esi + 0x18]
add al, 0x66
mov ecx, dword [esi + 0x20]
mov byte [esi + ecx + 0xe8], al
inc dword [esi + 0x20]
mov eax, dword [esi + 0x20]
cmp eax, 0xd
jb 0x412d10
push 3
lea eax, [esi + 0xe8]
push eax
push edi
call fcn.00402ab0
add esp, 0xc
xor ecx, ecx
test eax, eax
sete cl
jmp dword [ecx*4 + 0x44392c]
push eax
call fcn.00408db0
add esp, 4
mov eax, dword [esi + 0xb4]
mov eax, dword [eax]
xor ecx, ecx
test eax, eax
sete cl
jmp dword [ecx*4 + 0x443a24]
mov ebx, dword [esi + 0x3c]
push ebx
call fcn.00402b00
add esp, 4
xor ecx, ecx
cmp edi, eax
setb cl
jmp dword [ecx*4 + 0x4438b4]
mov dword [esi + 0x24], edi
push edi
push ebx
call fcn.00402ae0
add esp, 8
push eax
call fcn.00402890
add esp, 4
xor ecx, ecx
test eax, eax
sete cl
jmp dword [ecx*4 + 0x4438bc]
mov ecx, eax
mov ebx, eax
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov edi, ecx
inc ecx
cmp byte [edi], 0
jne 0x412de0
mov dword [esi + 0x40], eax
sub edi, eax
mov eax, edi
inc eax
lea eax, [edi + edi + 2]
jns 0x412dfb
mov eax, 0xffffffff
push eax
call fcn.00408da0
add esp, 4
mov dword [esi + 0x1c], eax
mov eax, edi
mov edx, dword [esi + 0x40]
test edx, edx
jne 0x412e29
mov eax, edx
not eax
xor ecx, ecx
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
inc eax
cmp byte [ecx], 0
lea ecx, [ecx + 1]
jne 0x412e20
mov dword [esi + 8], 0
mov ecx, dword [esi + 0x1c]
lea edi, [ecx + edi*2]
mov dword [esi + 4], ecx
mov dword [esi], edi
cmp edi, ecx
jbe 0x412ea0
mov edi, dword [esi + 0x1c]
mov dword [esi + 4], edi
test eax, eax
jle 0x412ea0
mov ecx, ebx
add edx, eax
mov eax, dword [esi + 0x1c]
mov dword [esi + 4], eax
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp byte [ecx], 0
je 0x412ea0
lea eax, [esi + 8]
push eax
push edx
push ecx
mov ebx, edx
mov edi, ecx
call fcn.0040f370
add esp, 0xc
movzx ecx, word [esi + 8]
mov edx, dword [esi + 4]
mov word [edx], cx
mov ecx, edx
add ecx, 2
cmp ecx, dword [esi]
mov dword [esi + 4], ecx
jae 0x412ea0
add edi, eax
cmp edi, ebx
mov edx, ebx
mov ecx, edi
jb 0x412e60
nop
nop
nop
nop
nop
nop
nop
nop
nop
xor eax, eax
cmp dword [esi + 0x1e4], 0
setg al
mov ecx, dword [esi + 4]
mov word [ecx], 0
push 0
push eax
push dword [esi + 0x1ec]
push dword [esi + 0x1e8]
push dword [esi + 0x1c]
push dword [esi + 0x190]
push dword [esi + 0x44]
lea eax, [esi + 0x48]
push eax
call fcn.0041bc40
add esp, 0x20
mov eax, dword [case.0x4104bb.58]
jmp eax
jmp dword [0x4438d4]
push dword [esi + 0x1c]
call fcn.00408db0
add esp, 4
mov eax, dword [0x4438e4]
nop
nop
nop
nop
nop
nop
nop
nop
jmp eax
jmp dword [0x4438f4]
xor eax, eax
cmp dx, 0x5c
sete al
jmp dword [eax*4 + 0x443974]
add ebx, 0xfffffffe
xor eax, eax
cmp ebx, dword [esi]
setae al
mov edx, ebx
jmp dword [eax*4 + 0x443954]
xor eax, eax
movzx eax, al
mov ebx, edi
jmp dword [eax*4 + 0x44395c]
mov ebx, edx
movzx edx, word [edx]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
jmp ecx
mov edx, ebx
sub edx, dword [esi]
sar edx, 1
mov eax, dword [esi + 0x158]
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 0x412fbf
mov eax, 0xffffffff
push eax
call fcn.00408da0
add esp, 4
mov edi, eax
mov eax, dword [esi + 0x154]
mov dword [eax], edi
mov eax, dword [esi + 0xf8]
mov eax, dword [eax]
cmp ebx, dword [esi]
je 0x413089
mov ecx, dword [esi + 0x24]
mov ecx, dword [ecx + 4]
mov edx, dword [esi + 0x1c]
lea ebx, [edx - 1]
mov dword [esi + 0x24], ebx
mov ebx, edx
and ebx, 3
mov dword [esi + 0x3c], eax
je 0x413023
xor edx, edx
mov dword [esi], ebx
nop
movzx ebx, word [ecx]
xor eax, eax
test bx, bx
setne al
lea ecx, [ecx + eax*2]
mov word [edi], bx
add edi, 2
inc edx
cmp dword [esi], edx
jne 0x413000
mov ebx, dword [esi + 0x1c]
sub ebx, edx
mov edx, ebx
mov eax, dword [esi + 0x3c]
mov ebx, dword [esi + 0x24]
cmp ebx, 3
jb 0x413089
nop
nop
nop
nop
nop
movzx eax, word [ecx]
mov ebx, edx
xor edx, edx
test ax, ax
setne dl
mov word [edi], ax
lea eax, [ecx + edx*2]
movzx ecx, word [ecx + edx*2]
xor edx, edx
test cx, cx
setne dl
mov word [edi + 2], cx
lea ecx, [eax + edx*2]
movzx eax, word [eax + edx*2]
xor edx, edx
test ax, ax
setne dl
mov word [edi + 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 [edi + 6], dx
mov edx, ebx
add edi, 8
add edx, 0xfffffffc
jne 0x413030
mov eax, dword [esi + 0x3c]
movzx ecx, word [eax]
test cx, cx
je 0x4130b1
add eax, 2
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 0x4130a0
mov word [edi], 0
mov eax, dword [esi + 0xf8]
mov eax, dword [eax]
xor ecx, ecx
test eax, eax
sete cl
jmp dword [ecx*4 + 0x44397c]
push eax
call fcn.00408db0
add esp, 4
mov eax, dword [case.0x412cb0.14]
nop
nop
nop
nop
nop
nop
jmp eax
mov eax, dword [esi + 0x154]
mov ebx, dword [eax]
jmp dword [0x443994]
jmp dword [0x443aac]
mov ebx, dword [esi + 4]
push ebx
call fcn.00402b00
add esp, 4
xor ecx, ecx
cmp edi, eax
setb cl
jmp dword [ecx*4 + 0x4439bc]
mov ebx, edi
jmp dword [0x4439d4]
push ebx
push dword [esi + 4]
call fcn.00402ae0
add esp, 8
push eax
call fcn.00402890
add esp, 4
nop
nop
nop
nop
nop
nop
nop
nop
nop
push ebx
push dword [esi + 4]
call fcn.00402ae0
add esp, 8
push eax
call fcn.00402890
add esp, 4
jmp dword [0x4439dc]
mov edi, eax
xor eax, eax
test edi, edi
sete al
jmp dword [eax*4 + 0x4439e4]
mov eax, edi
nop
nop
nop
mov ebx, eax
inc eax
cmp byte [ebx], 0
jne 0x413170
sub ebx, edi
mov eax, ebx
inc eax
jns 0x413190
mov eax, 0xffffffff
jmp 0x413196
lea eax, [ebx + ebx]
add eax, 2
push eax
call fcn.00408da0
add esp, 4
mov edx, eax
mov eax, dword [esi + 0x178]
mov dword [eax], edx
mov eax, ebx
test edi, edi
jne 0x4131c9
mov eax, edi
not eax
xor ecx, ecx
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
inc eax
cmp byte [ecx], 0
lea ecx, [ecx + 1]
jne 0x4131c0
mov dword [esi + 0x48], 0
lea ecx, [edx + ebx*2]
mov dword [esi + 0x1c], ecx
cmp ecx, edx
jbe 0x413220
test eax, eax
jle 0x413220
mov ebx, edi
add ebx, eax
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp byte [edi], 0
je 0x413220
lea eax, [esi + 0x48]
push eax
push ebx
push edi
mov dword [esi], edx
call fcn.0040f370
mov edx, dword [esi]
add esp, 0xc
movzx ecx, word [esi + 0x48]
mov word [edx], cx
add edx, 2
cmp edx, dword [esi + 0x1c]
jae 0x413220
add edi, eax
cmp edi, ebx
jb case.default.0x413267
nop
nop
nop
nop
mov word [edx], 0
mov eax, dword [esi + 0x178]
mov edi, dword [eax]
push 0
push 0
mov eax, dword [esi + 0x174]
push dword [eax]
mov eax, dword [esi + 0x170]
push dword [eax]
push edi
mov eax, dword [esi + 0xb4]
push dword [eax]
mov eax, dword [esi + 0x108]
push dword [eax]
push dword [esi + 0x104]
call fcn.0041bc40
add esp, 0x20
xor eax, eax
test edi, edi
sete al
jmp dword [eax*4 + 0x4439ec]
push edi
call fcn.00408db0
add esp, 4
mov eax, dword [case.0x413267.4]
nop
nop
nop
nop
jmp eax
mov eax, dword [esi + 0x17c]
mov edi, dword [eax]
inc edi
mov dword [eax], edi
mov eax, dword [case.0x413267.11]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
jmp eax
jmp dword [0x4439c4]
nop
nop
nop
nop
nop
nop
nop
nop
jmp dword [0x4439cc]
mov eax, dword [esi + 0x108]
mov eax, dword [eax]
xor ecx, ecx
test eax, eax
sete cl
jmp dword [ecx*4 + 0x443a1c]
mov eax, dword [esi + 0xb4]
mov eax, dword [eax]
xor ecx, ecx
test eax, eax
sete cl
jmp dword [ecx*4 + 0x443a24]
push eax
call fcn.00408db0
add esp, 4
mov edi, dword [esi + 0x104]
mov ecx, edi
call fcn.00409fd0
mov ecx, edi
call fcn.00409690
jmp dword [0x443a2c]
lea eax, [ecx + 1]
cmp byte [ecx], 0
jne 0x4133c9
mov dword [esi + 4], ecx
sub ecx, edx
mov dword [esi], 0
mov dword [esi + 0x3c], ecx
test ecx, ecx
jle 0x413369
cmp byte [edx], 0
je 0x413369
mov dword [esi], 0
mov edi, dword [esi + 0x24]
nop
nop
nop
nop
mov dword [esi + 0x48], 0
lea eax, [esi + 0x48]
push eax
mov ebx, dword [esi + 4]
push ebx
push edi
call fcn.0040f370
add esp, 0xc
lea ecx, [edi + eax]
inc dword [esi]
cmp ecx, ebx
jae 0x413369
cmp byte [edi + eax], 0
mov edi, ecx
jne 0x413340
mov edx, dword [esi + 0x24]
mov eax, edx
jmp dword [0x443a58]
mov edi, eax
inc eax
cmp byte [edi], 0
jne case.0x413267.24
mov ecx, edi
sub ecx, edx
mov eax, edx
test ecx, ecx
jle 0x4133c9
cmp byte [edx], 0
mov eax, edx
je 0x4133c9
mov ebx, edx
nop
nop
nop
nop
nop
mov dword [esi + 0x48], 0
lea eax, [esi + 0x48]
push eax
push edi
push ebx
call fcn.0040f370
add esp, 0xc
lea ecx, [ebx + eax]
cmp ecx, edi
jae 0x4133c4
cmp byte [ebx + eax], 0
mov ebx, ecx
jne 0x4133a0
mov edx, dword [esi + 0x24]
mov eax, edx
mov ecx, eax
jmp 0x413310
mov edi, dword [esi]
mov eax, edi
inc eax
lea eax, [edi + edi + 2]
jns 0x4133e0
mov eax, 0xffffffff
push eax
call fcn.00408da0
add esp, 4
mov ecx, eax
mov eax, dword [esi + 0xd4]
mov dword [eax], ecx
mov dword [esi + 0x48], 0
lea eax, [ecx + edi*2]
mov dword [esi + 0x1c], eax
cmp eax, ecx
jbe 0x413441
cmp dword [esi + 0x3c], 0
jle 0x413441
mov ebx, dword [esi + 0x24]
nop
nop
nop
cmp byte [ebx], 0
je 0x413441
lea eax, [esi + 0x48]
push eax
mov edi, dword [esi + 4]
push edi
push ebx
mov dword [esi], ecx
call fcn.0040f370
add esp, 0xc
movzx ecx, word [esi + 0x48]
mov edx, dword [esi]
mov word [edx], cx
mov ecx, dword [esi]
add ecx, 2
cmp ecx, dword [esi + 0x1c]
jae 0x413441
add ebx, eax
cmp ebx, edi
jb 0x413410
mov word [ecx], 0
mov eax, dword [esi + 0x180]
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 0x413460
lea edx, [eax + ecx]
xor ebx, ebx
mov dword [esi + 0x3c], ecx
test ecx, ecx
mov dword [esi + 4], edx
mov dword [esi + 0x24], eax
jle 0x4134b8
cmp byte [eax], 0
je 0x4134b8
xor ebx, ebx
mov edi, dword [esi + 0x24]
nop
nop
nop
nop
nop
nop
nop
nop
mov dword [esi + 0x48], 0
lea eax, [esi + 0x48]
push eax
push edx
push edi
call fcn.0040f370
mov edx, dword [esi + 4]
add esp, 0xc
lea ecx, [edi + eax]
inc ebx
cmp ecx, edx
jae 0x4134b8
cmp byte [edi + eax], 0
mov edi, ecx
jne 0x413490
mov eax, ebx
inc eax
lea eax, [ebx + ebx + 2]
jns 0x4134c6
mov eax, 0xffffffff
push eax
call fcn.00408da0
add esp, 4
mov ecx, eax
mov eax, dword [esi + 0xd8]
mov dword [eax], ecx
mov eax, ebx
and eax, 1
xor ebx, 1
lea eax, [ebx + eax*2]
mov dword [esi + 0x48], 0
lea eax, [ecx + eax*2]
add eax, 0xfffffffe
mov dword [esi], ecx
mov dword [esi + 0x1c], eax
cmp eax, ecx
jbe 0x41353e
cmp dword [esi + 0x3c], 0
mov ebx, dword [esi + 0x24]
mov edi, dword [esi + 4]
jle 0x41353e
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp byte [ebx], 0
je 0x41353e
lea eax, [esi + 0x48]
push eax
push edi
push ebx
call fcn.0040f370
add esp, 0xc
movzx ecx, word [esi + 0x48]
mov edx, dword [esi]
mov word [edx], cx
mov ecx, edx
add ecx, 2
cmp ecx, dword [esi + 0x1c]
mov dword [esi], ecx
jae 0x41353e
add ebx, eax
cmp ebx, edi
jb 0x413510
mov eax, dword [esi]
mov word [eax], 0
mov eax, dword [esi + 0xc0]
mov dword [eax], 0
mov eax, dword [esi + 0xdc]
mov dword [eax], 0
mov edi, dword [esi + 0x1d8]
mov word [edi], 0xb995
mov byte [edi + 2], 0x32
mov dword [edi + 7], 0
mov dword [edi + 3], 0
mov dword [esi + 8], 0
mov eax, dword [esi + 8]
cmp eax, 0xa
ja 0x4135c4
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 - 0x60e07478]
add eax, 0x88
and eax, ecx
or edx, ecx
sub edx, eax
mov dword [esi + 0x48], edx
mov eax, dword [esi + 0x48]
add al, 0x48
mov ecx, dword [esi + 8]
mov byte [edi + ecx], al
inc dword [esi + 8]
mov eax, dword [esi + 8]
cmp eax, 0xb
jb 0x413590
push edi
push dword [ebp + 8]
call fcn.00402900
add esp, 8
mov ecx, dword [esi + 0x1a4]
mov dword [ecx], eax
xor ecx, ecx
test eax, eax
setne cl
jmp dword [ecx*4 + 0x443a5c]
push eax
call fcn.00402b00
add esp, 4
mov ebx, eax
mov ecx, 0xc
mul ecx
seto dl
mov ecx, 0xffffffff
mov edi, 0xffffffff
add eax, 4
jb 0x41360c
mov edi, eax
mov eax, dword [esi + 0xdc]
mov dword [eax], ebx
test dl, dl
jne 0x41361a
mov ecx, edi
push ecx
call fcn.00408da0
add esp, 4
mov dword [eax], ebx
add eax, 4
xor ecx, ecx
mov edx, ebx
mov dword [esi], ebx
test ebx, ebx
sete cl
jmp dword [ecx*4 + 0x443a64]
mov ecx, dword [esi]
lea ecx, [ecx + ecx*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 + 0x443a6c]
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 + 0x443a6c]
mov ecx, dword [esi + 0xc0]
mov dword [ecx], eax
mov eax, dword [esi + 0x120]
add eax, 3
mov dword [esi + 4], eax
xor edi, edi
xor eax, eax
cmp edi, dword [esi]
mov ecx, dword [esi + 0x1a0]
lea ecx, [ecx + 3]
mov dword [esi], ecx
mov ecx, dword [esi + 0x114]
mov dword [ecx], edi
setb al
mov ebx, dword [esi + 0x1d0]
jmp dword [eax*4 + 0x443a74]
mov ebx, dword [esi + 0x10c]
mov ecx, ebx
push 2
call fcn.00409650
mov eax, dword [esi + 0xc0]
mov edi, dword [eax]
mov eax, dword [esi + 0xdc]
push dword [eax]
push edi
mov eax, dword [esi + 0xd8]
push dword [eax]
mov eax, dword [esi + 0xd4]
push dword [eax]
push ebx
call fcn.004162e0
add esp, 0x14
mov ecx, ebx
call fcn.00409fd0
movzx eax, al
jmp dword [eax*4 + 0x443a7c]
mov eax, dword [ebx + 4]
mov ecx, dword [esi + 0x1cc]
mov byte [ecx + 0xa], 0
cmp eax, 0x3ff
ja 0x413999
lea edi, [ecx + 9]
mov byte [ecx + 9], 0x30
jmp 0x413a1a
push edi
push dword [ebx]
call fcn.00402950
add esp, 8
xor edx, edx
test eax, eax
setg dl
mov eax, dword [esi + 0x114]
mov edi, dword [eax]
lea ecx, [edi + edi*2]
shl ecx, 2
mov eax, dword [esi + 0xc0]
add ecx, dword [eax]
push edx
mov eax, dword [esi + 0x1c0]
push dword [eax]
mov eax, dword [esi + 0x1bc]
push dword [eax]
call fcn.00415d20
inc edi
mov eax, dword [esi + 0xdc]
mov eax, dword [eax]
xor ecx, ecx
cmp edi, eax
mov eax, dword [esi + 0x114]
mov dword [eax], edi
setb cl
jmp dword [ecx*4 + 0x443a74]
push edi
mov eax, dword [esi + 0x1a4]
push dword [eax]
call fcn.00402b10
add esp, 8
mov dword [ebx], eax
mov edi, dword [esi + 0x120]
mov word [edi], 0xaf55
mov byte [edi + 2], 0x32
mov ecx, dword [esi + 4]
mov dword [ecx], 0
mov dword [ecx + 4], 0
mov dword [ecx + 8], 0
mov byte [ecx + 0xc], 0
mov dword [esi + 8], 0
mov ecx, dword [esi + 8]
cmp ecx, 0xf
ja 0x41383d
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 + 0x13828]
and edi, edx
add ecx, edx
add ecx, 0x13828
add edi, edi
sub ecx, edi
mov edi, dword [esi + 0x120]
mov dword [esi + 0x48], ecx
mov ecx, dword [esi + 0x48]
mov edx, ecx
or edx, 0xe7
and ecx, 0xe7
add ecx, edx
inc cl
mov edx, dword [esi + 8]
mov byte [edi + edx], cl
inc dword [esi + 8]
mov ecx, dword [esi + 8]
cmp ecx, 0x10
jb 0x4137f0
push edi
push eax
call fcn.00402860
add esp, 8
mov ecx, dword [esi + 0x1c0]
mov dword [ecx], eax
mov edi, dword [esi + 0x1a0]
mov word [edi], 0xebf1
mov byte [edi + 2], 0x6a
mov eax, dword [esi]
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 0x4138c2
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 [edi + ecx]
lea edx, [eax + 0x7034c172]
add eax, 0x72
and eax, ecx
or edx, ecx
sub edx, eax
mov dword [esi + 0x48], edx
mov eax, dword [esi + 0x48]
add al, 0xe2
mov ecx, dword [esi + 8]
mov byte [edi + ecx], al
inc dword [esi + 8]
mov eax, dword [esi + 8]
cmp eax, 0xe
jb 0x413890
push edi
push dword [ebx]
call fcn.00402860
add esp, 8
mov ecx, dword [esi + 0x1bc]
mov dword [ecx], eax
mov edi, dword [esi + 0x1f4]
mov dword [edi], 0x63c0c5cc
mov dword [edi + 4], 0
mov dword [edi + 8], 0
mov dword [esi + 8], 0
mov eax, dword [esi + 8]
cmp eax, 0xb
ja 0x413740
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 edx, byte [edi + ecx]
lea ecx, [eax + edx]
add ecx, 0x12608d10
add eax, 0x12608d10
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 + 0x48], eax
mov eax, dword [esi + 0x48]
add al, 0x90
mov ecx, dword [esi + 8]
mov byte [edi + ecx], al
inc dword [esi + 8]
mov eax, dword [esi + 8]
cmp eax, 0xc
jb 0x413910
jmp 0x413740
xor eax, eax
test edi, edi
sete al
jmp dword [eax*4 + 0x443a84]
mov eax, dword [esi + 0xd8]
mov eax, dword [eax]
xor ecx, ecx
test eax, eax
sete cl
jmp dword [ecx*4 + 0x443a9c]
push eax
call fcn.00408db0
add esp, 4
mov eax, dword [esi + 0xd4]
mov eax, dword [eax]
xor ecx, ecx
test eax, eax
sete cl
jmp dword [ecx*4 + 0x443aa4]
lea edi, [ecx + 0xa]
mov ecx, eax
shr ecx, 0xa
cmp eax, 0x19000
jb 0x4139ee
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 + 0x440528]
mov word [edi - 2], ax
add edi, 0xfffffffe
cmp ecx, 0x270f
mov ecx, edx
ja 0x4139b0
cmp edx, 9
ja 0x4139f5
movzx eax, byte [edx + str.0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ]
mov byte [edi - 1], al
dec edi
jmp 0x413a1a
mov edx, ecx
cmp edx, 9
jbe 0x4139e1
mov eax, edx
and eax, 0xfffffffd
mov ecx, edx
and ecx, 2
or edx, 2
imul edx, ecx
xor ecx, 2
imul ecx, eax
movzx eax, word [ecx + edx + 0x440528]
mov word [edi - 2], ax
add edi, 0xfffffffe
mov ebx, dword [esi + 0x100]
mov dword [ebx], 0x4b5c839b
mov dword [ebx + 4], 0
mov dword [ebx + 8], 0
mov word [ebx + 0xc], 0
mov dword [esi + 8], 0
mov eax, dword [esi + 8]
cmp eax, 0xd
ja 0x413a86
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 - 0x41924f6]
and edx, ecx
add eax, ecx
add eax, 0xfbe6db0a
add edx, edx
sub eax, edx
mov dword [esi + 0x48], eax
mov eax, dword [esi + 0x48]
add al, 0xba
mov ecx, dword [esi + 8]
mov byte [ebx + ecx], al
inc dword [esi + 8]
mov eax, dword [esi + 8]
cmp eax, 0xe
jb 0x413a50
mov edx, dword [esi + 0x18c]
mov dword [edx], 0xa1a0949b
mov dword [edx + 4], 0x579ba7ab
mov dword [edx + 8], 0xb7b3888e
mov dword [edx + 0xc], 0xbb4e8989
mov dword [edx + 0x10], 0x86b141bf
mov dword [edx + 0x14], 0x844681ba
mov dword [edx + 0x18], 0x86858b80
mov dword [edx + 0x1c], 0x7f838885
mov dword [edx + 0x20], 0x88b1b080
mov dword [edx + 0x24], 0x837681b1
mov dword [edx + 0x28], 0x939e6997
mov dword [edx + 0x2c], 0xaa9d6da9
mov dword [edx + 0x30], 0x91a79792
mov dword [edx + 0x34], 0x98926558
mov dword [edx + 0x38], 0x1be6d8ec
mov dword [edx + 0x3c], 0xe4dddcec
mov dword [edx + 0x40], 0xe012e5d5
mov dword [edx + 0x44], 0x3dd3ffed
mov word [edx + 0x48], 0x6908
mov word [edx + 0x52], 0
mov dword [edx + 0x4e], 0
mov dword [edx + 0x4a], 0
mov dword [esi + 8], 0
mov eax, dword [esi + 8]
cmp eax, 0x53
ja 0x413b7b
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]
mov edx, eax
and edx, 0x291cf608
xor eax, 0xa91cf608
lea eax, [eax + edx*2]
mov edx, dword [esi + 0x18c]
xor eax, ecx
mov dword [esi + 0x48], eax
mov eax, dword [esi + 0x48]
add al, 0xc8
mov ecx, dword [esi + 8]
mov byte [edx + ecx], al
inc dword [esi + 8]
mov eax, dword [esi + 8]
cmp eax, 0x54
jb 0x413b40
lea eax, [0x4489ff]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp byte [eax + 1], 0
lea eax, [eax + 1]
jne 0x413b90
movzx ecx, byte [edx]
test cl, cl
je 0x413bbf
mov ebx, edx
xor edx, edx
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 0x413bb0
add eax, edx
mov byte [eax], 0
movzx ecx, byte [edi]
test cl, cl
je 0x413bdb
inc edi
nop
nop
nop
nop
nop
nop
mov byte [eax], cl
inc eax
movzx ecx, byte [edi]
inc edi
test cl, cl
jne 0x413bd0
mov byte [eax], 0
mov ecx, dword [esi + 0x100]
movzx ecx, byte [ecx]
test cl, cl
je 0x413c0b
mov edx, dword [esi + 0x1c8]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov byte [eax], cl
inc eax
movzx ecx, byte [edx]
inc edx
test cl, cl
jne 0x413c00
mov byte [eax], 0
mov eax, dword [esi + 0xc0]
mov edi, dword [eax]
xor eax, eax
test edi, edi
sete al
jmp dword [eax*4 + 0x443a84]
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 + 0x443a8c]
push dword [esi + 4]
call fcn.00408db0
add esp, 4
mov eax, dword [esi + 0xd8]
mov eax, dword [eax]
xor ecx, ecx
test eax, eax
sete cl
jmp dword [ecx*4 + 0x443a9c]
mov eax, dword [esi + 0xd4]
mov eax, dword [eax]
xor ecx, ecx
test eax, eax
sete cl
jmp dword [ecx*4 + 0x443aa4]
push eax
call fcn.00408db0
add esp, 4
jmp dword [0x443aac]
xor eax, eax
cmp ebx, edi
sete al
jmp dword [eax*4 + 0x443a94]
mov eax, dword [ebx - 0xc]
test eax, eax
je 0x413cae
push eax
call fcn.00408db0
add esp, 4
mov eax, dword [ebx - 8]
add ebx, 0xfffffff4
test eax, eax
je 0x413c90
push eax
call fcn.00408db0
add esp, 4
jmp 0x413c90
lea eax, [edx + 1]
cmp byte [edx], 0
je 0x413ccf
mov edx, eax
jmp 0x413cc3
mov eax, edx
sub eax, ecx
xor ebx, ebx
mov dword [esi + 0x1c], eax
test eax, eax
mov dword [esi + 4], edx
jle 0x413d18
cmp byte [ecx], 0
je 0x413d18
xor ebx, ebx
mov edi, dword [esi + 0x24]
nop
nop
nop
nop
nop
nop
nop
mov dword [esi + 0x48], 0
lea eax, [esi + 0x48]
push eax
push edx
push edi
call fcn.0040f370
mov edx, dword [esi + 4]
add esp, 0xc
lea ecx, [edi + eax]
inc ebx
cmp ecx, edx
jae 0x413d18
cmp byte [edi + eax], 0
mov edi, ecx
jne 0x413cf0
mov eax, ebx
inc eax
lea eax, [ebx + ebx + 2]
jns 0x413d26
mov eax, 0xffffffff
push eax
call fcn.00408da0
add esp, 4
mov dword [esi + 0x48], 0
lea ecx, [eax + ebx*2]
mov ebx, eax
mov dword [esi + 0x44], eax
mov dword [esi], ecx
cmp ecx, eax
mov edi, dword [esi + 0x24]
mov ecx, dword [esi + 4]
jbe 0x413d8a
mov ebx, dword [esi + 0x44]
cmp dword [esi + 0x1c], 0
jle 0x413d8a
mov ebx, dword [esi + 0x44]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp byte [edi], 0
je 0x413d8a
lea eax, [esi + 0x48]
push eax
push ecx
push edi
call fcn.0040f370
add esp, 0xc
movzx ecx, word [esi + 0x48]
mov word [ebx], cx
add ebx, 2
cmp ebx, dword [esi]
jae 0x413d8a
add edi, eax
mov ecx, dword [esi + 4]
cmp edi, ecx
jb 0x413d60
mov word [ebx], 0
lea ecx, [esi + 0x48]
push 1
call fcn.00409650
xor edi, edi
jmp 0x412d90
mov ecx, dword [esi + 0x10c]
call fcn.00409690
mov ecx, dword [esi + 0x10c]
call fcn.00409690
jmp dword [0x443ab8]
nop
nop
nop
nop
mov eax, dword [case.0x4126a5.17]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
jmp eax
mov ebx, dword [esi + 0x200]
inc ebx
mov ecx, dword [esi + 0x1f8]
jmp 0x410f30
push ebx
call fcn.00408db0
add esp, 4
mov eax, dword [case.0x412cb0.21]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
jmp eax
mov ecx, dword [esi + 0xb8]
call fcn.00439340
jmp case.0x41108a.4
mov eax, edi
sub eax, ebx
mov ecx, 0xffffffff
cmp eax, 0xfffffffe
jl 0x413e22
add eax, 2
mov ecx, eax
push ecx
call fcn.00408da0
add esp, 4
mov ecx, dword [esi + 0xb4]
mov dword [ecx], eax
push eax
push ebx
call fcn.00435e90
add esp, 8
jmp dword [0x4439a0]
mov eax, edi
sub eax, ebx
mov ecx, 0xffffffff
cmp eax, 0xfffffffe
jl 0x413e56
add eax, 2
mov ecx, eax
push ecx
call fcn.00408da0
add esp, 4
mov ecx, dword [esi + 0xb4]
mov dword [ecx], eax
push eax
push ebx
call fcn.00435e90
add esp, 8
jmp case.0x412cb0.16
xor eax, eax
test ebx, ebx
sete al
jmp dword [eax*4 + 0x4439a4]
mov eax, dword [esi + 0x15c]
mov eax, dword [eax]
mov ebx, 0xffffffff
nop
nop
cmp byte [eax + ebx + 1], 0
lea ebx, [ebx + 1]
jne 0x413e90
lea edx, [eax + ebx]
test ebx, ebx
mov dword [esi + 0x1c], edx
mov dword [esi + 0x3c], eax
mov dword [esi + 0x40], ebx
jle 0x413eea
xor ebx, ebx
cmp byte [eax], 0
je 0x413eec
xor ebx, ebx
mov edi, dword [esi + 0x3c]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov dword [esi + 0x48], 0
lea eax, [esi + 0x48]
push eax
push edx
push edi
call fcn.0040f370
mov edx, dword [esi + 0x1c]
add esp, 0xc
lea ecx, [edi + eax]
inc ebx
cmp ecx, edx
jae 0x413eec
cmp byte [edi + eax], 0
mov edi, ecx
jne 0x413ec0
jmp 0x413eec
xor ebx, ebx
mov eax, ebx
inc eax
lea eax, [ebx + ebx + 2]
jns 0x413efa
mov eax, 0xffffffff
push eax
call fcn.00408da0
add esp, 4
mov ecx, eax
mov eax, dword [esi + 0x108]
mov dword [eax], ecx
mov dword [esi + 0x48], 0
lea eax, [ecx + ebx*2]
mov dword [esi + 0x24], eax
cmp eax, ecx
mov dword [esi], ecx
jbe 0x413f62
cmp dword [esi + 0x40], 0
mov ecx, dword [esi + 0x3c]
mov edi, dword [esi + 0x1c]
jle 0x413f62
nop
nop
nop
nop
cmp byte [ecx], 0
je 0x413f62
lea eax, [esi + 0x48]
push eax
push edi
push ecx
mov ebx, ecx
call fcn.0040f370
add esp, 0xc
movzx ecx, word [esi + 0x48]
mov edx, dword [esi]
mov word [edx], cx
mov ecx, edx
add ecx, 2
cmp ecx, dword [esi + 0x24]
mov dword [esi], ecx
jae 0x413f62
add ebx, eax
cmp ebx, edi
mov ecx, ebx
jb 0x413f30
mov eax, dword [esi]
mov word [eax], 0
mov ecx, dword [esi + 0x104]
push 1
call fcn.00409650
mov eax, dword [esi + 0x17c]
mov dword [eax], 0
xor edi, edi
jmp case.0x413267.11
mov eax, dword [esi + 0xd0]
push dword [eax]
call fcn.00438ea0
add esp, 4
mov eax, dword [esi + 0xd0]
push dword [eax]
call fcn.00438ea0
add esp, 4
jmp dword [0x443a34]
mov ecx, dword [case.0x410666.11]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov al, 1
jmp ecx
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
mov dword [esp + 0x100], esi
jmp 0x414027
xor ecx, ecx
cmp eax, 4
sete cl
jmp dword [ecx*4 + 0x443d0c]
inc ebx
mov esi, dword [esp + 0x100]
push esi
call fcn.00402b00
add esp, 4
xor ecx, ecx
cmp ebx, eax
setb cl
mov al, 1
jmp dword [ecx*4 + 0x443b54]
mov dword [esp + 0x34], ebx
push ebx
push esi
call fcn.00402b10
add esp, 8
mov edi, eax
mov word [esp + 0x110], 0x41c9
mov dword [esp + 0x112], 0
mov dword [esp + 0x116], 0
mov dword [esp + 0x11a], 0
mov dword [esp + 0xa8], 0
mov eax, dword [esp + 0xa8]
cmp eax, 0xd
ja 0x4140ff
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp + 0xa8]
mov ecx, dword [esp + 0xa8]
movzx ecx, byte [esp + ecx + 0x110]
lea edx, [eax + ecx]
add edx, 0x122d18b
add eax, 0x122d18b
and eax, ecx
add eax, eax
sub edx, eax
mov dword [esp + 0x40], edx
mov eax, dword [esp + 0x40]
mov ecx, eax
or ecx, 0x32
and eax, 0x32
add eax, ecx
inc al
mov ecx, dword [esp + 0xa8]
mov byte [esp + ecx + 0x110], al
inc dword [esp + 0xa8]
mov eax, dword [esp + 0xa8]
cmp eax, 0xe
jb 0x4140a0
push 2
lea eax, [esp + 0x114]
push eax
push edi
call fcn.00402ab0
add esp, 0xc
xor ecx, ecx
test eax, eax
setne cl
mov dword [esp + 0x28], edi
mov bl, 1
jmp dword [ecx*4 + 0x443b5c]
mov word [esp + 0x40], 0x7566
mov byte [esp + 0x42], 0xc2
mov dword [esp + 0x47], 0
mov dword [esp + 0x43], 0
mov dword [esp + 0x10], 0
mov eax, dword [esp + 0x10]
cmp eax, 0xa
ja 0x4141a5
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 + 0x40]
lea edx, [eax + 0xe0]
and edx, ecx
add eax, ecx
add edx, edx
sub eax, edx
add eax, 0xa0e895e0
mov dword [esp + 0xa8], eax
mov eax, dword [esp + 0xa8]
add al, 0xe0
mov ecx, dword [esp + 0x10]
mov byte [esp + ecx + 0x40], al
inc dword [esp + 0x10]
mov eax, dword [esp + 0x10]
cmp eax, 0xb
jb 0x414160
push 3
lea eax, [esp + 0x44]
push eax
push dword [esp + 0x30]
call fcn.00402ab0
add esp, 0xc
xor ecx, ecx
test eax, eax
setne cl
jmp dword [ecx*4 + 0x443b64]
mov word [esp + 0xa8], 0x158d
mov dword [esp + 0xaa], 0
mov dword [esp + 0xad], 0
mov dword [esp + 4], 0
mov eax, dword [esp + 4]
cmp eax, 8
ja 0x41424b
push 3
push edi
push esi
call fcn.00402ab0
add esp, 0xc
nop
nop
nop
nop
nop
nop
nop
nop
push 3
push edi
push esi
call fcn.00402ab0
add esp, 0xc
test eax, eax
sete bl
jmp dword [0x443b78]
movzx eax, bl
jmp dword [eax*4 + 0x443b7c]
mov word [esp + 0x110], 0x59d5
mov dword [esp + 0x112], 0
mov dword [esp + 0x116], 0
mov dword [esp + 0x11a], 0
mov byte [esp + 0x11e], 0
mov dword [esp + 0xa8], 0
mov eax, dword [esp + 0xa8]
cmp eax, 0xe
ja 0x414340
xor ecx, ecx
cmp eax, 4
setb cl
jmp dword [ecx*4 + 0x443d04]
mov eax, 4
xor ecx, ecx
cmp eax, 4
setb cl
mov ebx, dword [esp + 0x34]
jmp dword [ecx*4 + 0x443d04]
xor ecx, ecx
test eax, eax
sete cl
jmp dword [ecx*4 + 0x443d14]
jmp dword [0x443d28]
xor ecx, ecx
cmp dword [esp + 0xc], 0
sete cl
xor edx, edx
mov dword [esp + 8], 0
jmp dword [ecx*4 + 0x443b8c]
mov dword [esp + 0xfc], ecx
mov word [esp + 0x40], 0xb926
mov dword [esp + 0x42], 0
mov dword [esp + 0x46], 0
mov dword [esp + 0x4a], 0
mov dword [esp + 0x10], 0
mov eax, dword [esp + 0x10]
cmp eax, 0xd
ja 0x414716
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 + 0x40]
lea edx, [eax + ecx]
add edx, 0xd90678e7
add eax, 0xd90678e7
and eax, ecx
add eax, eax
sub edx, eax
mov dword [esp + 0xa8], edx
mov eax, dword [esp + 0xa8]
add al, 0xaf
mov ecx, dword [esp + 0x10]
mov byte [esp + ecx + 0x40], al
inc dword [esp + 0x10]
mov eax, dword [esp + 0x10]
cmp eax, 0xe
jb 0x4146d0
lea eax, [esp + 0x40]
push eax
push dword [esp + 0x2c]
call fcn.00402860
add esp, 8
xor ecx, ecx
test eax, eax
setne cl
jmp dword [ecx*4 + 0x443b94]
mov dword [esp + 0x40], 0x3a46b9b6
mov dword [esp + 0x44], 0
mov word [esp + 0x48], 0
mov dword [esp + 0x10], 0
mov eax, dword [esp + 0x10]
cmp eax, 9
ja 0x4147a6
call fcn.004094a0
mov ecx, eax
mov edx, 0x38e38e39
imul edx
mov eax, edx
shr eax, 0x1f
sar edx, 3
add edx, eax
shl edx, 2
lea eax, [edx + edx*8]
neg eax
movsx eax, byte [ecx + eax + str.0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ]
mov word [ebx], ax
add ebx, 2
mov eax, dword [case.0x41472e.13]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
jmp eax
inc esi
xor eax, eax
cmp esi, edi
setb al
jmp dword [eax*4 + 0x443bb4]
mov word [ebx], 0
mov dword [esp + 0x10], 0x238c21f9
mov dword [esp + 0x14], 0x1fab1d9d
mov dword [esp + 0x18], 0x1bc719ae
mov dword [esp + 0x1c], 0x171415be
mov dword [esp], 0
mov eax, dword [esp]
cmp eax, 0xf
ja 0x4148ab
jmp dword [0x443bdc]
mov dword [esp + 8], ebx
xor eax, eax
cmp ecx, 1
sete al
jmp dword [eax*4 + 0x443be4]
xor eax, eax
cmp ecx, 2
sete al
mov ebx, esp
jmp dword [eax*4 + 0x443bec]
mov esi, dword [esp + 8]
jmp dword [0x443bf4]
mov ecx, eax
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov edi, ecx
inc ecx
cmp byte [edi], 0
jne 0x4149d0
mov dword [esp + 0x10], 0x367012e
mov dword [esp + 0x14], 0x763057c
mov word [esp + 0x18], 0x908
mov dword [esp + 0x1a], 0
mov dword [esp + 0x1e], 0
mov word [esp + 0x22], 0
mov dword [esp], 0
mov eax, dword [esp]
cmp eax, 0x13
ja 0x414b34
nop
nop
nop
mov eax, dword [esp]
mov ecx, dword [esp]
movzx ecx, byte [esp + ecx + 0x10]
lea edx, [eax + ecx]
and eax, ecx
add eax, eax
sub edx, eax
add edx, 0x9d06f200
mov dword [esp + 4], edx
mov eax, dword [esp + 4]
mov ecx, dword [esp]
mov byte [esp + ecx + 0x10], al
inc dword [esp]
mov eax, dword [esp]
cmp eax, 0x14
jb 0x414b00
mov esi, ebx
mov eax, ebx
add eax, 0xfffffffe
mov ebx, esp
nop
nop
nop
cmp word [eax + 2], 0
lea eax, [eax + 2]
jne 0x414b40
movzx ecx, word [esp + 0x10]
test cx, cx
je 0x414b73
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 0x414b60
add eax, edx
mov word [eax], 0
jmp dword [0x443bf4]
mov dword [esp + 0x10], 0x4be04594
mov dword [esp + 0x14], 0x4fe449e6
mov word [esp + 0x18], 0x4d4e
mov dword [esp + 0x1a], 0
mov dword [esp + 0x1e], 0
mov dword [esp + 0x22], 0
mov byte [esp + 0x26], 0
mov dword [esp], 0
mov eax, dword [esp]
cmp eax, 0x16
mov ebx, esp
ja 0x414c10
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp]
mov ecx, dword [esp]
movzx ecx, byte [esp + ecx + 0x10]
lea edx, [eax - 0x5cccf3cb]
mov esi, ecx
not esi
or esi, edx
and edx, ecx
add edx, esi
neg edx
add eax, edx
add eax, 0xa3330c34
mov dword [esp + 4], eax
mov eax, dword [esp + 4]
add al, 0x8d
mov ecx, dword [esp]
mov byte [esp + ecx + 0x10], al
inc dword [esp]
mov eax, dword [esp]
cmp eax, 0x17
jb 0x414bd0
mov eax, dword [esp + 8]
add eax, 0xfffffffe
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp word [eax + 2], 0
lea eax, [eax + 2]
jne 0x414c20
movzx ecx, word [esp + 0x10]
test cx, cx
je 0x414c53
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 0x414c40
add eax, edx
mov word [eax], 0
mov esi, dword [esp + 8]
jmp dword [0x443bf4]
mov dword [esp + 0x10], 0x23922d5e
mov dword [esp + 0x14], 0x27572197
mov word [esp + 0x18], 0x2524
mov dword [esp + 0x1a], 0
mov dword [esp + 0x1e], 0
mov word [esp + 0x22], 0
mov dword [esp], 0
mov eax, dword [esp]
cmp eax, 0x13
ja 0x414ce1
nop
mov eax, dword [esp]
mov ecx, dword [esp]
movzx ecx, byte [esp + ecx + 0x10]
mov edx, eax
and edx, 0xfe9e4b06
xor eax, 0xfe9e4b06
lea eax, [eax + edx*2]
mov edx, eax
and edx, ecx
add eax, ecx
add edx, edx
sub eax, edx
mov dword [esp + 4], eax
mov eax, dword [esp + 4]
add al, 0xd6
mov ecx, dword [esp]
mov byte [esp + ecx + 0x10], al
inc dword [esp]
mov eax, dword [esp]
cmp eax, 0x14
jb 0x414ca0
mov eax, dword [esp + 8]
add eax, 0xfffffffe
nop
nop
nop
nop
nop
nop
nop
nop
cmp word [eax + 2], 0
lea eax, [eax + 2]
jne 0x414cf0
movzx ecx, word [esp + 0x10]
test cx, cx
je 0x414d23
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 0x414d10
add eax, edx
mov word [eax], 0
mov esi, dword [esp + 8]
jmp dword [0x443bf4]
jmp dword [0x443ba4]
sete al
movzx eax, al
jmp dword [eax*4 + 0x443cac]
mov ecx, ebx
nop
nop
nop
nop
nop
mov eax, ecx
add ecx, 2
cmp word [eax], 0
jne 0x414da0
sub eax, ebx
lea ecx, [eax + 0x3c]
cmp eax, 0xffffffc3
jge 0x414dba
mov ecx, 0xffffffff
push ecx
call fcn.00408da0
add esp, 4
mov esi, eax
mov dword [esp + 0xa8], 0xc3c4c528
mov dword [esp + 0xac], 0
mov byte [esp + 0xb0], 0
mov dword [esp + 0x10], 0
mov eax, dword [esp + 0x10]
cmp eax, 8
ja 0x414e45
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 + 0xa8]
lea edx, [eax + 0xa1]
add eax, ecx
and edx, ecx
add edx, edx
sub eax, edx
add eax, 0xda3740a1
mov dword [esp + 0x40], eax
mov eax, dword [esp + 0x40]
add al, 0x99
mov ecx, dword [esp + 0x10]
mov byte [esp + ecx + 0xa8], al
inc dword [esp + 0x10]
mov eax, dword [esp + 0x10]
cmp eax, 9
jb 0x414e00
mov dword [esp + 0x40], 0x63cd61f0
mov dword [esp + 0x44], 0x67c365f3
mov dword [esp + 0x48], 0x6bf969fa
mov dword [esp + 0x4c], 0x6fcb6dc4
mov dword [esp + 0x50], 0x53fe51fc
mov dword [esp + 0x54], 0x57bb55b4
mov dword [esp + 0x58], 0x5bc259fd
mov dword [esp + 0x5c], 0x5ffd5df9
mov dword [esp + 0x60], 0x43e041a0
mov dword [esp + 0x64], 0x47d645dd
mov dword [esp + 0x68], 0x4bd949e9
mov dword [esp + 0x6c], 0x4fae4ddf
mov dword [esp + 0x70], 0x339431dd
mov dword [esp + 0x74], 0x37d435d4
mov word [esp + 0x78], 0x3938
mov dword [esp + 0x7a], 0
mov dword [esp + 0x7d], 0
mov dword [esp + 4], 0
mov eax, dword [esp + 4]
cmp eax, 0x40
ja 0x414f1f
nop
nop
nop
mov eax, dword [esp + 4]
mov ecx, dword [esp + 4]
movzx ecx, byte [esp + ecx + 0x40]
lea edx, [eax + 0x90]
and edx, ecx
add eax, ecx
add edx, edx
sub eax, edx
add eax, 0x2ae05090
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x10]
add al, 0x10
mov ecx, dword [esp + 4]
mov byte [esp + ecx + 0x40], al
inc dword [esp + 4]
mov eax, dword [esp + 4]
cmp eax, 0x41
jb 0x414ee0
movzx ecx, word [esp + 0x40]
mov eax, esi
test cx, cx
je 0x414f51
lea edx, [esp + 0x42]
mov eax, esi
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 0x414f40
mov word [eax], 0
movzx ecx, word [ebx]
test cx, cx
je 0x414f81
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 0x414f70
mov word [eax], 0
movzx ecx, word [esp + 0xa8]
test cx, cx
je 0x414fb1
mov eax, dword [esp + 0x10]
mov dword [esp + 0xa8], 0x88898e8f
mov dword [esp + 0xac], 0
mov dword [esp + 0xb0], 0
mov word [esp + 0xb4], 0
mov dword [esp], 0
mov ecx, dword [esp]
cmp ecx, 0xd
ja 0x415113
nop
nop
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 + 0xa8]
lea esi, [ecx + edx]
add esi, 0x540cdf42
add ecx, 0x540cdf42
and ecx, edx
add ecx, ecx
sub esi, ecx
mov dword [esp + 4], esi
mov ecx, dword [esp + 4]
add cl, 0x32
mov edx, dword [esp]
mov byte [esp + edx + 0xa8], cl
inc dword [esp]
mov ecx, dword [esp]
cmp ecx, 0xe
jb 0x4150d0
mov ecx, dword [0x449a0c]
test ecx, ecx
je case.0x4126a5.116
mov edx, dword [esp + 0xa8]
xor esi, esi
mov edi, dword [0x449a10]
nop
nop
nop
nop
cmp dword [edi + esi*8], 0x11081610
je 0x415140
inc esi
cmp ecx, esi
jne 0x415130
jmp case.0x4126a5.116
mov ecx, dword [edi + esi*8 + 4]
cmp ecx, edx
je case.0x4126a5.116
push eax
push 1
push dword [0x449a14]
push ecx
call fcn.0043a960
add esp, 0x10
mov eax, dword [case.0x4126a5.120]
nop
jmp eax
mov eax, dword [esp + 0x2c]
xor ecx, ecx
test eax, eax
setne cl
mov ebx, dword [esp + 0x34]
mov esi, dword [esp + 0xc]
jmp dword [ecx*4 + 0x443cec]
xor eax, eax
cmp edx, 2
setl al
mov ebx, dword [esp + 8]
jmp dword [eax*4 + 0x443ca4]
mov word [esp + 0x40], 0x1f16
mov byte [esp + 0x42], 0x82
mov dword [esp + 0x43], 0
mov dword [esp + 0x46], 0
mov dword [esp + 0x10], 0
mov eax, dword [esp + 0x10]
cmp eax, 9
ja 0x415205
nop
nop
nop
nop
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x10]
movzx ecx, byte [esp + ecx + 0x40]
lea edx, [eax - 0x52fecea]
and edx, ecx
add eax, ecx
add eax, 0xfad01316
add edx, edx
sub eax, edx
mov dword [esp + 0xa8], eax
mov eax, dword [esp + 0xa8]
add al, 0x66
mov ecx, dword [esp + 0x10]
mov byte [esp + ecx + 0x40], al
inc dword [esp + 0x10]
mov eax, dword [esp + 0x10]
cmp eax, 0xa
jb 0x4151c0
lea eax, [esp + 0x40]
push eax
push dword [esp + 0x2c]
call fcn.00402860
add esp, 8
mov dword [esp + 0x38], eax
mov word [esp + 0x40], 0x3b09
mov byte [esp + 0x42], 0xb4
mov dword [esp + 0x43], 0
mov byte [esp + 0x47], 0
mov dword [esp + 0x10], 0
mov eax, dword [esp + 0x10]
cmp eax, 7
ja 0x415299
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 + 0x40]
lea edx, [eax + 0x99]
and edx, ecx
mov esi, 0x87d60466
sub esi, eax
or esi, ecx
not esi
add esi, ecx
sub esi, edx
mov dword [esp + 0xa8], esi
mov eax, dword [esp + 0xa8]
add al, 0xd1
mov ecx, dword [esp + 0x10]
mov byte [esp + ecx + 0x40], al
inc dword [esp + 0x10]
mov eax, dword [esp + 0x10]
cmp eax, 8
jb 0x415250
lea eax, [esp + 0x40]
push eax
push dword [esp + 0x2c]
call fcn.00402860
add esp, 8
mov edx, eax
mov eax, 0xfffffffe
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp word [ebx + eax + 2], 0
lea eax, [eax + 2]
jne case.default.0x4152e3
sar eax, 1
xor ebx, ebx
mov ecx, dword [esp + 0x38]
test ecx, ecx
setne bl
mov dword [esp + 0x30], ebx
mov dword [esp + 0xe8], edx
jmp dword [ebx*4 + 0x443c2c]
mov ecx, dword [case.0x4126a5.78]
jmp ecx
xor esi, esi
jmp 0x41530d
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov esi, ecx
inc ecx
cmp byte [esi], 0
jne 0x415300
sub esi, dword [esp + 0x38]
inc esi
mov ecx, dword [case.0x4126a5.83]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
jmp ecx
xor ecx, ecx
test edx, edx
setne cl
mov dword [esp + 0xf0], ecx
jmp dword [ecx*4 + 0x443c54]
mov ecx, dword [case.0x4126a5.88]
nop
nop
nop
jmp ecx
mov dword [esp + 0x28], 0
jmp 0x41535f
mov ecx, edx
nop
nop
mov ebx, ecx
inc ecx
cmp byte [ebx], 0
jne 0x415350
sub ebx, edx
inc ebx
mov dword [esp + 0x28], ebx
mov dword [esp + 0x40], 0x6be76de2
mov dword [esp + 0x44], 0x67fa69fa
mov dword [esp + 0x48], 0x63f665f0
mov dword [esp + 0x4c], 0x9fd0612f
mov word [esp + 0x50], 0x9d9c
mov dword [esp + 0x52], 0
mov dword [esp + 0x56], 0
mov word [esp + 0x5a], 0
mov dword [esp + 4], 0
mov ecx, dword [esp + 4]
cmp ecx, 0x1b
ja 0x4153ef
nop
nop
mov ecx, dword [esp + 4]
mov edx, dword [esp + 4]
movzx edx, byte [esp + edx + 0x40]
lea ebx, [ecx + 0x7bbcdaf2]
add ecx, 0xf2
and ecx, edx
or ebx, edx
sub ebx, ecx
mov dword [esp + 0x10], ebx
mov ecx, dword [esp + 0x10]
add cl, 0x62
mov edx, dword [esp + 4]
mov byte [esp + edx + 0x40], cl
inc dword [esp + 4]
mov ecx, dword [esp + 4]
cmp ecx, 0x1c
jb 0x4153b0
lea edx, [esp + 0x40]
mov ecx, 4
xchg esi, edx
rep movsd dword es:[edi], dword [esi]
xchg esi, edx
lea edx, [esp + 0x50]
lea edi, [esp + 0xb8]
mov ecx, 1
xchg esi, edx
rep movsw word es:[edi], word [esi]
xchg esi, edx
mov ecx, 0xfffffffe
nop
nop
nop
nop
nop
nop
cmp word [esp + ecx + 0xaa], 0
lea ecx, [ecx + 2]
jne 0x415420
sar ecx, 1
inc ecx
mov edx, ecx
and edx, eax
xor ecx, eax
mov eax, dword [esp + 0x28]
add eax, esi
inc eax
add eax, ecx
lea ecx, [esi + 1]
mov dword [esp + 0xf8], ecx
lea ecx, [eax + edx*2]
lea eax, [ecx + ecx]
test ecx, ecx
jns 0x415459
mov eax, 0xffffffff
push eax
call fcn.00408da0
add esp, 4
mov ebx, eax
movzx eax, word [esp + 0xa8]
mov dword [esp + 0xc], ebx
test ax, ax
je 0x415491
lea ecx, [esp + 0xaa]
mov ebx, dword [esp + 0xc]
mov word [ebx], ax
add ebx, 2
movzx eax, word [ecx]
add ecx, 2
test ax, ax
jne 0x415480
mov dword [ebx], 0x220020
add ebx, 4
mov ecx, dword [esp + 8]
movzx eax, word [ecx]
test ax, ax
je 0x4154c1
add ecx, 2
nop
nop
nop
nop
nop
nop
nop
mov word [ebx], ax
add ebx, 2
movzx eax, word [ecx]
add ecx, 2
test ax, ax
jne 0x4154b0
lea edi, [ebx + 2]
mov word [ebx], 0x22
jmp dword [0x443c6c]
push dword [esp + 8]
call fcn.00408db0
add esp, 4
mov ecx, dword [esp + 0xe8]
mov eax, dword [esp + 0x30]
jmp dword [eax*4 + 0x443c74]
mov word [edi], 0x2c
mov eax, 0xffffffff
mov edx, dword [esp + 0x38]
nop
nop
nop
nop
nop
cmp byte [edx + eax + 1], 0
lea eax, [eax + 1]
jne 0x415500
lea edi, [ebx + 4]
mov dword [esp + 0x40], 0
cmp esi, 2
mov dword [esp + 8], edi
jl 0x4155a7
test eax, eax
jle 0x4155a7
mov edi, edx
add edi, eax
mov eax, dword [esp + 0xf8]
lea eax, [ebx + eax*2]
mov dword [esp + 0x30], eax
mov ebx, dword [esp + 0x28]
cmp byte [edx], 0
je 0x4155ab
mov ebx, ecx
lea eax, [esp + 0x40]
push eax
push edi
push edx
mov esi, edx
call fcn.0040f370
add esp, 0xc
movzx ecx, word [esp + 0x40]
mov edx, dword [esp + 8]
mov word [edx], cx
add edx, 2
mov dword [esp + 8], edx
cmp edx, dword [esp + 0x30]
jae 0x4155a5
add esi, eax
cmp esi, edi
mov ecx, ebx
mov edx, esi
mov ebx, dword [esp + 0x28]
jb 0x415540
jmp 0x4155ab
mov ecx, dword [esp + 0xe8]
mov eax, dword [esp + 0x30]
jmp dword [eax*4 + 0x443c74]
mov ebx, dword [esp + 0x28]
mov eax, dword [esp + 0xf0]
jmp dword [eax*4 + 0x443c7c]
mov ecx, ebx
mov ebx, dword [esp + 0x28]
mov edi, dword [esp + 8]
mov word [edi], 0
mov eax, dword [esp + 0xf0]
jmp dword [eax*4 + 0x443c7c]
mov word [edi], 0x2c
mov eax, 0xffffffff
nop
nop
nop
nop
cmp byte [ecx + eax + 1], 0
lea eax, [eax + 1]
jne 0x4155d0
lea esi, [edi + 2]
mov dword [esp + 0x40], 0
cmp ebx, 2
jl 0x41562f
test eax, eax
jle 0x41562f
mov word [esi], 0
mov ecx, dword [case.0x4126a5.70]
lea edi, [esp + 0xa8]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
xor esi, esi
xor eax, eax
xor ebx, ebx
jmp ecx
mov dword [esp + 0xc], eax
mov esi, dword [esp + 0x30]
jmp dword [0x443c0c]
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], 0
mov dword [esp + 0x44], 0
mov dword [esp + 0x40], 0x44
push 0xd3a7a30
push dword [0x449a00]
call fcn.0043c6f0
add esp, 8
lea ecx, [esp + 0x10]
push ecx
lea ecx, [esp + 0x44]
push ecx
push 0
push 0
push 0
push 0
push 0
push 0
push dword [esp + 0x2c]
push ebx
call eax
xor ecx, ecx
test eax, eax
setne cl
jmp dword [ecx*4 + 0x443cc4]
mov eax, dword [esp + 0x10]
mov dword [esp + 0xa8], 0x88898e8f
mov dword [esp + 0xac], 0
mov dword [esp + 0xb0], 0
mov word [esp + 0xb4], 0
mov dword [esp], 0
mov ecx, dword [esp]
cmp ecx, 0xd
ja 0x4157b3
nop
nop
nop
mov ecx, dword [esp]
mov edx, dword [esp]
movzx edx, byte [esp + edx + 0xa8]
lea esi, [ecx + edx]
add esi, 0x540cdf42
add ecx, 0x540cdf42
and ecx, edx
add ecx, ecx
sub esi, ecx
mov dword [esp + 4], esi
mov ecx, dword [esp + 4]
add cl, 0x32
mov edx, dword [esp]
mov byte [esp + edx + 0xa8], cl
inc dword [esp]
mov ecx, dword [esp]
cmp ecx, 0xe
jb 0x415770
mov ecx, dword [0x449a0c]
test ecx, ecx
je case.0x4126a5.112
mov edx, dword [esp + 0xa8]
xor esi, esi
mov edi, dword [0x449a10]
nop
nop
nop
nop
cmp dword [edi + esi*8], 0x11081610
je 0x4157e0
inc esi
cmp ecx, esi
jne 0x4157d0
jmp case.0x4126a5.112
mov ecx, dword [edi + esi*8 + 4]
cmp ecx, edx
jne 0x415802
mov eax, dword [esp + 0x2c]
xor ecx, ecx
test eax, eax
setne cl
mov ebx, dword [esp + 0x34]
mov esi, dword [esp + 0xc]
jmp dword [ecx*4 + 0x443cec]
push eax
push 1
push dword [0x449a14]
push ecx
call fcn.0043a960
add esp, 0x10
mov eax, dword [esp + 0x2c]
xor ecx, ecx
test eax, eax
setne cl
mov ebx, dword [esp + 0x34]
mov esi, dword [esp + 0xc]
jmp dword [ecx*4 + 0x443cec]
xor ecx, ecx
test esi, esi
sete cl
xor eax, eax
jmp dword [ecx*4 + 0x443cfc]
mov ecx, dword [esp + 0xc]
not ecx
shr ecx, 0x1f
mov dword [esp + 0x3c], 0
mov eax, 4
mov dword [esp + 0xc], 0
mov ebx, dword [esp + 8]
jmp dword [ecx*4 + 0x443c1c]
xor ecx, ecx
cmp esi, 1
sete cl
xor eax, eax
mov dword [esp + 0x3c], 1
mov dword [esp + 0xc], 0
jmp dword [ecx*4 + 0x443c24]
mov dword [esp + 8], ebx
mov dword [esp + 0x30], esi
mov ebx, dword [esp + 0x34]
mov ecx, dword [esp + 0xfc]
mov edx, dword [esp + 0xc]
mov esi, dword [esp + 0x3c]
jmp dword [esi*4 + 0x443c94]
mov dword [esp + 0xc], edx
xor eax, eax
mov edx, dword [esp + 0x30]
test edx, edx
setle al
jmp dword [eax*4 + 0x443c9c]
sete al
movzx eax, al
mov ebx, dword [esp + 8]
jmp dword [eax*4 + 0x443cb4]
jmp dword [ecx*4 + 0x443cbc]
push 0xa013361e
push dword [0x449a00]
call fcn.0043c6f0
add esp, 8
push 0
push 0
push dword [esp + 0x34]
push 0x41e2b0
push 0
push 0
call eax
mov esi, eax
xor eax, eax
test esi, esi
setne al
jmp dword [eax*4 + 0x443ccc]
mov eax, dword [esp + 0x2c]
xor ecx, ecx
test eax, eax
setne cl
mov ebx, dword [esp + 0x34]
mov esi, dword [esp + 0xc]
jmp dword [ecx*4 + 0x443cec]
xor eax, eax
mov ecx, dword [esp + 8]
test ecx, ecx
sete al
jmp dword [eax*4 + 0x443cf4]
mov dword [esp + 8], ebx
mov dword [esp + 0xac], 0xffffffff
mov dword [esp + 0xa8], 0xb8797400
mov dword [esp + 0x40], 0x88898e8f
mov dword [esp + 0x44], 0
mov dword [esp + 0x48], 0
mov word [esp + 0x4c], 0
mov dword [esp + 4], 0
mov eax, dword [esp + 4]
cmp eax, 0xd
ja 0x4159d0
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 + 0x40]
lea edx, [eax + ecx]
add edx, 0x540cdf42
add eax, 0x540cdf42
and eax, ecx
add eax, eax
sub edx, eax
mov dword [esp + 0x10], edx
mov eax, dword [esp + 0x10]
add al, 0x32
mov ecx, dword [esp + 4]
mov byte [esp + ecx + 0x40], al
inc dword [esp + 4]
mov eax, dword [esp + 4]
cmp eax, 0xe
jb 0x415990
mov eax, dword [0x449a0c]
test eax, eax
je 0x415a1d
mov ecx, dword [esp + 0x40]
xor edx, edx
mov ebx, dword [0x449a10]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp dword [ebx + edx*8], 0xb33e16a3
je 0x415a00
inc edx
cmp eax, edx
jne 0x4159f0
jmp 0x415a1d
mov eax, dword [ebx + edx*8 + 4]
cmp eax, ecx
je 0x415a1d
push edi
push 0
push esi
push 3
push dword [0x449a14]
push eax
call fcn.0043a960
add esp, 0x18
mov dword [esp + 0x40], 0x88898e8f
mov dword [esp + 0x44], 0
mov dword [esp + 0x48], 0
mov word [esp + 0x4c], 0
mov dword [esp + 4], 0
mov eax, dword [esp + 4]
cmp eax, 0xd
ja 0x415a90
nop
nop
nop
mov eax, dword [esp + 4]
mov ecx, dword [esp + 4]
movzx ecx, byte [esp + ecx + 0x40]
lea edx, [eax + ecx]
add edx, 0x540cdf42
add eax, 0x540cdf42
and eax, ecx
add eax, eax
sub edx, eax
mov dword [esp + 0x10], edx
mov eax, dword [esp + 0x10]
add al, 0x32
mov ecx, dword [esp + 4]
mov byte [esp + ecx + 0x40], al
inc dword [esp + 4]
mov eax, dword [esp + 4]
cmp eax, 0xe
jb 0x415a50
mov eax, dword [0x449a0c]
test eax, eax
je case.default.0x415aed
mov ecx, dword [esp + 0x40]
xor edx, edx
mov edi, dword [0x449a10]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp dword [edi + edx*8], 0x11081610
je 0x415ac0
inc edx
cmp eax, edx
jne 0x415ab0
jmp case.default.0x415aed
mov eax, dword [edi + edx*8 + 4]
cmp eax, ecx
je case.default.0x415aed
push esi
push 1
push dword [0x449a14]
push eax
call fcn.0043a960
add esp, 0x10
mov eax, dword [esp + 0x2c]
xor ecx, ecx
test eax, eax
setne cl
mov ebx, dword [esp + 0x34]
mov esi, dword [esp + 0xc]
jmp dword [ecx*4 + 0x443cec]
push eax
call fcn.00438ea0
add esp, 4
xor eax, eax
mov ecx, dword [esp + 8]
test ecx, ecx
sete al
jmp dword [eax*4 + 0x443cf4]
push ecx
call fcn.00408db0
add esp, 4
xor ecx, ecx
test esi, esi
sete cl
xor eax, eax
jmp dword [ecx*4 + 0x443cfc]
push esi
call fcn.00408db0
add esp, 4
xor eax, eax
xor ecx, ecx
cmp eax, 4
setb cl
jmp dword [ecx*4 + 0x443d04]
push edi
call fcn.00408db0
add esp, 4
push edi
call fcn.00408db0
add esp, 4
jmp dword [0x443bac]
lea edi, [esp + 0xa8]
mov ebx, esp
jmp dword [0x443bf4]
push 0
push dword [esp + 0x110]
push dword [esp + 0x34]
push dword [esp + 0xc]
call fcn.0043d920
add esp, 0x10
mov dword [esp + 0xc], eax
mov eax, dword [esp]
mov dword [esp + 0x40], 0x88898e8f
mov dword [esp + 0x44], 0
mov dword [esp + 0x48], 0
mov word [esp + 0x4c], 0
mov dword [esp + 0x10], 0
mov ecx, dword [esp + 0x10]
cmp ecx, 0xd
ja 0x415c08
nop
nop
nop
nop
nop
nop
nop
mov ecx, dword [esp + 0x10]
mov edx, dword [esp + 0x10]
movzx edx, byte [esp + edx + 0x40]
lea edi, [ecx + edx]
add edi, 0x540cdf42
add ecx, 0x540cdf42
and ecx, edx
add ecx, ecx
sub edi, ecx
mov dword [esp + 0xa8], edi
mov ecx, dword [esp + 0xa8]
add cl, 0x32
mov edx, dword [esp + 0x10]
mov byte [esp + edx + 0x40], cl
inc dword [esp + 0x10]
mov ecx, dword [esp + 0x10]
cmp ecx, 0xe
jb 0x415bc0
mov ecx, dword [0x449a0c]
test ecx, ecx
mov esi, dword [esp + 0x30]
je 0x415c48
mov edx, dword [esp + 0x40]
xor edi, edi
mov ebx, dword [0x449a10]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp dword [ebx + edi*8], 0x11081610
je 0x415c40
inc edi
cmp ecx, edi
jne 0x415c30
jmp 0x415c48
mov ecx, dword [ebx + edi*8 + 4]
cmp ecx, edx
jne 0x415c8a
lea edi, [esp + 0xa8]
jmp dword [0x443c0c]
push dword [esp + 0x2c]
call fcn.00438ea0
add esp, 4
mov dword [esp + 0x2c], 0
nop
nop
nop
nop
nop
nop
nop
push dword [esp + 0x2c]
call fcn.00438ea0
add esp, 4
mov dword [esp + 0x2c], 0
jmp dword [0x443c18]
push eax
push 1
push dword [0x449a14]
push ecx
call fcn.0043a960
add esp, 0x10
lea edi, [esp + 0xa8]
jmp dword [0x443c0c]
mov dword [esp + 8], esi
mov ecx, eax
not ecx
shr ecx, 0x1f
jmp dword [ecx*4 + 0x443c04]
push 0x80
push 0x60
push 5
push 0
push 0x100002
push ebx
push esi
call fcn.0043d0b0
add esp, 0x1c
push 0x80
push 0x60
push 5
push 0
push 0x100002
push ebx
push esi
call fcn.0043d0b0
add esp, 0x1c
jmp dword [0x443bfc]
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
mov eax, dword [case.0x415827.18]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
jmp eax
int3