Function at 0x415984
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff8
sub esp, 0x200
mov esi, esp
push eax
sub esp, 0xc
mov edi, esp
and edi, 0xfffffff8
mov esp, edi
push eax
mov dword [esi + 0xfc], esp
push eax
mov dword [esi + 0xf8], esp
push eax
mov dword [esi + 0xf4], esp
push eax
mov dword [esi + 0xb4], esp
push eax
mov dword [esi + 0xb0], esp
sub esp, 0x68
mov eax, esp
and eax, 0xfffffff8
mov dword [esi + 0xac], eax
mov esp, eax
push eax
mov dword [esi + 0xc0], esp
push eax
mov dword [esi + 0x168], esp
sub esp, 0x10
mov ecx, esp
and ecx, 0xfffffff8
mov dword [esi + 0x1a0], ecx
mov esp, ecx
push eax
sub esp, 0xc
mov ecx, esp
and ecx, 0xfffffff8
mov esp, ecx
push eax
sub esp, 0xc
mov edx, esp
and edx, 0xfffffff8
mov esp, edx
push eax
sub esp, 0xc
mov ebx, esp
and ebx, 0xfffffff8
mov dword [esi + 0x120], ebx
mov esp, ebx
push eax
sub esp, 0xc
mov ebx, esp
and ebx, 0xfffffff8
mov dword [esi + 0x10c], ebx
mov esp, ebx
push eax
sub esp, 0xc
mov ebx, esp
and ebx, 0xfffffff8
mov dword [esi + 0x108], ebx
mov esp, ebx
push eax
mov dword [esi + 0xf0], esp
sub esp, 0x10
mov ebx, esp
and ebx, 0xfffffff8
mov dword [esi + 0x19c], ebx
mov esp, ebx
push eax
mov dword [esi + 0xe8], esp
sub esp, 0x10
mov ebx, esp
and ebx, 0xfffffff8
mov dword [esi + 0x198], ebx
mov esp, ebx
push eax
mov dword [esi + 0x12c], esp
sub esp, 0x10
mov ebx, esp
and ebx, 0xfffffff8
mov dword [esi + 0x194], ebx
mov esp, ebx
push eax
mov dword [esi + 0xe4], esp
sub esp, 0x10
mov ebx, esp
and ebx, 0xfffffff8
mov dword [esi + 0x190], ebx
mov esp, ebx
push eax
mov dword [esi + 0x114], esp
sub esp, 0x10
mov ebx, esp
and ebx, 0xfffffff8
mov dword [esi + 0x18c], ebx
mov esp, ebx
push eax
mov dword [esi + 0x110], esp
sub esp, 0x10
mov ebx, esp
and ebx, 0xfffffff8
mov dword [esi + 0x188], ebx
mov esp, ebx
push eax
mov dword [esi + 0xec], esp
sub esp, 0xc
mov dword [esi + 0x50], esp
push eax
mov dword [esi + 0x74], esp
push eax
mov dword [esi + 0x70], esp
push eax
mov dword [esi + 0xdc], esp
push eax
mov dword [esi + 0x94], esp
push eax
mov dword [esi + 0xd8], esp
push eax
mov dword [esi + 0x7c], esp
push eax
mov dword [esi + 0x9c], esp
sub esp, 0x68
mov ebx, esp
and ebx, 0xfffffff8
mov dword [esi + 0x78], ebx
mov esp, ebx
push eax
mov dword [esi + 0x11c], esp
push eax
mov dword [esi + 0x118], esp
push eax
mov dword [esi + 0x134], esp
sub esp, 0x10
mov ebx, esp
and ebx, 0xfffffff8
mov esp, ebx
push eax
mov dword [esi + 0x128], esp
sub esp, 8
mov eax, esp
and eax, 0xfffffff8
mov dword [esi + 0x170], eax
mov esp, eax
push eax
mov dword [esi + 0x80], esp
push eax
mov dword [esi + 0xa4], esp
push eax
mov dword [esi + 0x5c], esp
push eax
mov dword [esi + 0x90], esp
push eax
mov dword [esi + 0x150], esp
sub esp, 0x10
mov eax, esp
and eax, 0xfffffff8
mov dword [esi + 0x184], eax
mov esp, eax
push eax
mov dword [esi + 0xbc], esp
push eax
mov dword [esi + 0x17c], esp
push eax
mov dword [esi + 0x164], esp
sub esp, 0x10
mov eax, esp
and eax, 0xfffffff8
mov dword [esi + 0xc8], eax
mov esp, eax
push eax
mov dword [esi + 0x160], esp
sub esp, 0x10
mov eax, esp
and eax, 0xfffffff8
mov dword [esi + 0x148], eax
mov esp, eax
push eax
sub esp, 0xc
mov eax, esp
and eax, 0xfffffff8
mov dword [esi + 0x144], eax
mov esp, eax
push eax
sub esp, 0x64
mov eax, esp
and eax, 0xfffffff8
mov dword [esi + 0xa0], eax
mov esp, eax
push eax
sub esp, 8
mov dword [esi + 0x178], esp
sub esp, 0x10
mov eax, esp
and eax, 0xfffffff8
mov dword [esi + 0x54], eax
mov esp, eax
push eax
sub esp, 0x4c
mov eax, esp
and eax, 0xfffffff8
mov dword [esi + 0x138], eax
mov esp, eax
push eax
mov dword [esi + 0x130], esp
sub esp, 0x10
mov eax, esp
and eax, 0xfffffff8
mov dword [esi + 0x1b8], eax
mov esp, eax
push eax
mov dword [esi + 0x124], esp
sub esp, 0x10
mov eax, esp
and eax, 0xfffffff8
mov dword [esi + 0x16c], eax
mov esp, eax
push eax
mov dword [esi + 0x104], esp
push eax
mov dword [esi + 0x100], esp
push eax
mov dword [esi + 0x88], esp
push eax
mov dword [esi + 0x8c], esp
mov dword [esi + 0x13c], edx
mov dword [esi + 0x154], ecx
push eax
mov dword [esi + 0x14c], esp
sub esp, 0x10
mov eax, esp
and eax, 0xfffffff8
mov dword [esi + 0x180], eax
mov esp, eax
push eax
mov dword [esi + 0xb8], esp
push eax
mov dword [esi + 0x1b4], esp
push eax
mov dword [esi + 0x15c], esp
sub esp, 0x10
mov eax, esp
and eax, 0xfffffff8
mov dword [esi + 0xc4], eax
mov esp, eax
push eax
mov dword [esi + 0x158], esp
sub esp, 0x10
mov eax, esp
and eax, 0xfffffff8
mov dword [esi + 0x140], eax
mov esp, eax
push eax
sub esp, 0xc
mov eax, esp
and eax, 0xfffffff8
mov dword [esi + 0x1b0], eax
mov esp, eax
push eax
sub esp, 0x64
mov eax, esp
and eax, 0xfffffff8
mov dword [esi + 0x84], eax
mov esp, eax
mov word [esi + 0x20], 0x9533
mov dword [esi + 0x22], 0
mov dword [esi + 0x26], 0
mov byte [esi + 0x2a], 0
mov dword [esi + 0x38], 0
mov eax, dword [esi + 0x38]
cmp eax, 0xa
ja 0x4109c1
mov eax, dword [esi + 0x38]
mov ecx, dword [esi + 0x38]
movzx edx, byte [esi + ecx + 0x20]
lea ecx, [eax + edx]
add ecx, 0x8c5963ed
add eax, 0xed
and eax, edx
add eax, eax
mov edx, eax
xor edx, ecx
not eax
and eax, ecx
add eax, eax
sub eax, edx
mov dword [esi + 8], eax
mov eax, dword [esi + 8]
add al, 0x85
mov ecx, dword [esi + 0x38]
mov byte [esi + ecx + 0x20], al
mov eax, dword [esi + 0x38]
mov ecx, eax
and ecx, 1
xor eax, 1
lea eax, [eax + ecx*2]
mov dword [esi + 0x38], eax
mov eax, dword [esi + 0x38]
cmp eax, 0xb
jb case.default.0x4109d9
lea eax, [esi + 0x20]
push eax
push dword [ebp + 8]
call fcn.00402740
add esp, 8
mov ecx, eax
xor eax, eax
test ecx, ecx
sete al
jmp dword [eax*4 + 0x44080c]
mov eax, dword [esi + 0x54]
inc eax
mov dword [esi + 0x174], eax
mov dword [esi + 0x1a4], ebx
xor ebx, ebx
mov dword [esi + 0xe0], edi
mov dword [esi + 0x1bc], ecx
nop
nop
push ecx
mov edi, ecx
call fcn.00402970
add esp, 4
xor ecx, ecx
cmp ebx, eax
setb cl
mov al, 1
jmp dword [ecx*4 + 0x440824]
mov dword [esi + 0x1c0], ebx
push ebx
push edi
call fcn.00402980
add esp, 8
mov ebx, eax
mov word [esi + 0x20], 0xad30
mov dword [esi + 0x22], 0
mov dword [esi + 0x26], 0
mov dword [esi + 0x2a], 0
mov dword [esi + 0x38], 0
mov eax, dword [esi + 0x38]
cmp eax, 0xd
ja 0x410a9f
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esi + 0x38]
mov ecx, dword [esi + 0x38]
movzx ecx, byte [esi + ecx + 0x20]
lea edx, [eax + 0x609d233a]
add eax, 0x3a
and eax, ecx
or edx, ecx
sub edx, eax
mov dword [esi + 8], edx
mov eax, dword [esi + 8]
mov ecx, eax
xor ecx, 0x69
and eax, 0x69
lea eax, [ecx + eax*2]
inc al
mov ecx, dword [esi + 0x38]
mov byte [esi + ecx + 0x20], al
inc dword [esi + 0x38]
mov eax, dword [esi + 0x38]
cmp eax, 0xe
jb 0x410a60
push 3
lea eax, [esi + 0x20]
push eax
push ebx
call fcn.00402900
add esp, 0xc
xor ecx, ecx
test eax, eax
sete cl
jmp dword [ecx*4 + 0x44082c]
mov word [esi + 0x20], 0x59d4
mov dword [esi + 0x22], 0
mov dword [esi + 0x26], 0
mov dword [esi + 0x2a], 0
mov byte [esi + 0x2e], 0
mov dword [esi + 0x38], 0
mov eax, dword [esi + 0x38]
cmp eax, 0xe
ja 0x410b28
nop
nop
nop
nop
nop
nop
mov eax, dword [esi + 0x38]
mov ecx, dword [esi + 0x38]
movzx ecx, byte [esi + ecx + 0x20]
lea edx, [eax + 0xb4]
and edx, ecx
add eax, ecx
add edx, edx
sub eax, edx
add eax, 0x479d7db4
mov dword [esi + 8], eax
mov eax, dword [esi + 8]
add al, 0x14
mov ecx, dword [esi + 0x38]
mov byte [esi + ecx + 0x20], al
inc dword [esi + 0x38]
mov eax, dword [esi + 0x38]
cmp eax, 0xf
jb 0x410af0
lea eax, [esi + 0x20]
push eax
push ebx
call fcn.004026d0
add esp, 8
fnstcw word [esi + 0x66]
movzx eax, word [esi + 0x66]
or eax, 0xc00
mov word [esi + 0xd2], ax
fldcw word [esi + 0xd2]
fistp dword [esi + 0x1d4]
fldcw word [esi + 0x66]
mov eax, dword [esi + 0x1d4]
xor ecx, ecx
cmp eax, 2
setl cl
mov edi, dword [esi + 0x1b8]
jmp dword [ecx*4 + 0x440834]
xor ecx, ecx
cmp eax, 3
setl cl
jmp dword [ecx*4 + 0x44083c]
sete al
movzx eax, al
jmp dword [eax*4 + 0x440844]
mov edi, dword [esi + 0x1a0]
mov word [edi], 0x6d87
mov dword [edi + 2], 0
mov dword [edi + 6], 0
mov dword [edi + 0xa], 0
mov byte [edi + 0xe], 0
mov dword [esi + 8], 0
mov eax, dword [esi + 8]
cmp eax, 0xe
ja 0x410c06
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 [edi + ecx]
lea edx, [eax + 0x6fb129ae]
and edx, ecx
add eax, ecx
add eax, 0x6fb129ae
add edx, edx
sub eax, edx
mov dword [esi + 0x20], eax
mov eax, dword [esi + 0x20]
add al, 0x3e
mov ecx, dword [esi + 8]
mov byte [edi + ecx], al
inc dword [esi + 8]
mov eax, dword [esi + 8]
cmp eax, 0xf
jb 0x410bd0
push 2
push edi
mov edi, ebx
push ebx
call fcn.00402900
add esp, 0xc
xor ecx, ecx
test eax, eax
setne cl
mov bl, 1
jmp dword [ecx*4 + 0x4408dc]
mov edx, dword [esi + 0x154]
mov word [edx], 0x31c0
mov dword [edx + 2], 0
mov dword [edx + 6], 0
mov dword [edx + 0xa], 0
mov word [edx + 0xe], 0
mov dword [esi + 8], 0
mov eax, dword [esi + 8]
cmp eax, 0xf
ja 0x410c9a
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 + 0x588f75f8]
add eax, 0xf8
and eax, ecx
or edx, ecx
sub edx, eax
mov dword [esi + 0x20], edx
mov edx, dword [esi + 0x154]
mov eax, dword [esi + 0x20]
add al, 0x38
mov ecx, dword [esi + 8]
mov byte [edx + ecx], al
inc dword [esi + 8]
mov eax, dword [esi + 8]
cmp eax, 0x10
jb 0x410c60
push 2
push edx
push edi
call fcn.00402900
add esp, 0xc
xor ecx, ecx
test eax, eax
setne cl
jmp dword [ecx*4 + 0x4408e4]
mov edx, dword [esi + 0x13c]
mov word [edx], 0x55c5
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 0x410d19
mov eax, dword [esi + 8]
mov ecx, dword [esi + 8]
movzx ecx, byte [edx + ecx]
lea edx, [eax + 0xd]
and edx, ecx
add eax, ecx
add edx, edx
sub eax, edx
mov edx, dword [esi + 0x13c]
add eax, 0xd5a0130d
mov dword [esi + 0x20], eax
mov eax, dword [esi + 0x20]
add al, 0xa5
mov ecx, dword [esi + 8]
mov byte [edx + ecx], al
inc dword [esi + 8]
mov eax, dword [esi + 8]
cmp eax, 0xb
jb case.default.0x410d2c
push 5
push edx
push edi
call fcn.00402900
add esp, 0xc
xor ecx, ecx
test eax, eax
setne cl
jmp dword [ecx*4 + 0x4408ec]
mov edx, dword [esi + 0x120]
mov word [edx], 0x2558
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 0x410da5
nop
mov eax, dword [esi + 8]
mov ecx, dword [esi + 8]
movzx ecx, byte [edx + ecx]
lea edx, [eax - 0x2b4f0f5b]
add eax, 0xa5
and eax, ecx
or edx, ecx
sub edx, eax
mov dword [esi + 0x20], edx
mov edx, dword [esi + 0x120]
mov eax, dword [esi + 0x20]
mov ecx, eax
xor ecx, 0x7c
and eax, 0x7c
lea eax, [ecx + eax*2]
inc al
mov ecx, dword [esi + 8]
mov byte [edx + ecx], al
inc dword [esi + 8]
mov eax, dword [esi + 8]
cmp eax, 0xb
jb 0x410d60
push 2
push edx
push edi
call fcn.00402900
add esp, 0xc
xor ecx, ecx
test eax, eax
setne cl
jmp dword [ecx*4 + 0x4408f4]
mov edx, dword [esi + 0x10c]
mov word [edx], 0x1984
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 0x410e28
nop
nop
nop
nop
nop
mov eax, dword [esi + 8]
mov ecx, dword [esi + 8]
movzx ecx, byte [edx + ecx]
lea edx, [eax - 0x4f7993fc]
add eax, 4
and eax, ecx
or edx, ecx
sub edx, eax
mov dword [esi + 0x20], edx
mov edx, dword [esi + 0x10c]
mov eax, dword [esi + 0x20]
add al, 0xe4
mov ecx, dword [esi + 8]
mov byte [edx + ecx], al
inc dword [esi + 8]
mov eax, dword [esi + 8]
cmp eax, 0xb
jb 0x410df0
push 3
push edx
push edi
call fcn.00402900
add esp, 0xc
xor ecx, ecx
test eax, eax
setne cl
jmp dword [ecx*4 + 0x4408fc]
movzx eax, bl
jmp dword [eax*4 + 0x440914]
mov ebx, edi
mov edi, dword [esi + 0x19c]
mov word [edi], 0x6df7
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 0x410ebf
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, 0x9327cd52
add eax, 0x52
and eax, edx
add eax, eax
mov edx, ecx
not edx
and edx, eax
not eax
and eax, ecx
sub eax, edx
mov dword [esi + 0x20], eax
mov eax, dword [esi + 0x20]
add al, 0xc2
mov ecx, dword [esi + 8]
mov byte [edi + ecx], al
inc dword [esi + 8]
mov eax, dword [esi + 8]
cmp eax, 0xc
jb 0x410e80
push edi
push ebx
call fcn.00402670
add esp, 8
mov ecx, dword [esi + 0xf0]
mov dword [ecx], eax
mov edi, dword [esi + 0x198]
mov word [edi], 0xb926
mov dword [edi + 2], 0
mov dword [edi + 6], 0
mov dword [esi + 8], 0
mov eax, dword [esi + 8]
cmp eax, 9
ja 0x410f33
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 + 0x47]
and edx, ecx
add eax, ecx
add edx, edx
sub eax, edx
add eax, 0x56371d47
mov dword [esi + 0x20], eax
mov eax, dword [esi + 0x20]
add al, 0xf
mov ecx, dword [esi + 8]
mov byte [edi + ecx], al
inc dword [esi + 8]
mov eax, dword [esi + 8]
cmp eax, 0xa
jb 0x410f00
push edi
push ebx
call fcn.00402670
add esp, 8
mov ecx, dword [esi + 0xe8]
mov dword [ecx], eax
mov edi, dword [esi + 0x194]
mov word [edi], 0xf999
mov dword [edi + 0xa], 0
mov dword [edi + 6], 0
mov dword [edi + 2], 0
mov dword [esi + 8], 0
mov eax, dword [esi + 8]
cmp eax, 0xd
ja 0x410fc2
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 [edi + eax]
mov edx, ecx
and edx, 0xc2a4be7f
xor ecx, 0x42a4be7f
lea edx, [ecx + edx*2]
mov ecx, edx
and ecx, eax
not eax
or eax, edx
not ecx
add ecx, edx
sub ecx, eax
mov dword [esi + 0x20], ecx
mov eax, dword [esi + 0x20]
add al, 0x87
mov ecx, dword [esi + 8]
mov byte [edi + ecx], al
inc dword [esi + 8]
mov eax, dword [esi + 8]
cmp eax, 0xe
jb 0x410f80
push edi
push ebx
call fcn.00402740
add esp, 8
mov ecx, dword [esi + 0x12c]
mov dword [ecx], eax
mov edi, dword [esi + 0x190]
mov word [edi], 0xb530
mov dword [edi + 5], 0
mov dword [edi + 2], 0
mov dword [esi + 8], 0
mov eax, dword [esi + 8]
cmp eax, 8
ja 0x411034
nop
nop
nop
nop
mov eax, dword [esi + 8]
mov ecx, dword [esi + 8]
movzx ecx, byte [edi + ecx]
lea edx, [eax + 0x64304599]
add eax, 0x99
and eax, ecx
or edx, ecx
sub edx, eax
mov dword [esi + 0x20], edx
mov eax, dword [esi + 0x20]
add al, 0xd1
mov ecx, dword [esi + 8]
mov byte [edi + ecx], al
inc dword [esi + 8]
mov eax, dword [esi + 8]
cmp eax, 9
jb 0x411000
push edi
push ebx
call fcn.00402670
add esp, 8
mov ecx, dword [esi + 0xe4]
mov dword [ecx], eax
mov edi, dword [esi + 0x18c]
mov word [edi], 0xf9a2
mov word [edi + 0xe], 0
mov dword [edi + 0xa], 0
mov dword [edi + 6], 0
mov dword [edi + 2], 0
mov dword [esi + 8], 0
mov eax, dword [esi + 8]
cmp eax, 0xf
ja 0x4110b2
nop
nop
nop
nop
nop
mov eax, dword [esi + 8]
mov ecx, dword [esi + 8]
movzx ecx, byte [edi + ecx]
lea edx, [eax + 0x5b6f135f]
add eax, 0x5f
and eax, ecx
or edx, ecx
sub edx, eax
mov dword [esi + 0x20], edx
mov eax, dword [esi + 0x20]
add al, 0x67
mov ecx, dword [esi + 8]
mov byte [edi + ecx], al
inc dword [esi + 8]
mov eax, dword [esi + 8]
cmp eax, 0x10
jb 0x411080
push edi
push ebx
call fcn.004026d0
add esp, 8
fnstcw word [esi + 0x6a]
movzx eax, word [esi + 0x6a]
or eax, 0xc00
mov word [esi + 0xd6], ax
fldcw word [esi + 0xd6]
fistp dword [esi + 0x1c8]
fldcw word [esi + 0x6a]
mov eax, dword [esi + 0x1c8]
mov ecx, dword [esi + 0x114]
mov dword [ecx], eax
mov edi, dword [esi + 0x188]
mov word [edi], 0xb88c
mov byte [edi + 2], 0x34
mov word [edi + 0xb], 0
mov dword [edi + 7], 0
mov dword [edi + 3], 0
mov dword [esi + 8], 0
mov eax, dword [esi + 8]
cmp eax, 0xc
ja 0x411157
nop
nop
mov eax, dword [esi + 8]
mov ecx, dword [esi + 8]
movzx ecx, byte [edi + ecx]
lea edx, [eax + ecx]
add edx, 0x50825259
add eax, 0x50825259
and eax, ecx
add eax, eax
sub edx, eax
mov dword [esi + 0x20], edx
mov eax, dword [esi + 0x20]
add al, 0x91
mov ecx, dword [esi + 8]
mov byte [edi + ecx], al
inc dword [esi + 8]
mov eax, dword [esi + 8]
cmp eax, 0xd
jb 0x411120
push edi
push ebx
call fcn.004026d0
add esp, 8
fnstcw word [esi + 0x68]
movzx eax, word [esi + 0x68]
or eax, 0xc00
mov word [esi + 0xd4], ax
fldcw word [esi + 0xd4]
fistp dword [esi + 0x1c4]
fldcw word [esi + 0x68]
mov eax, dword [esi + 0x1c4]
mov ecx, dword [esi + 0x110]
mov dword [ecx], eax
mov eax, dword [esi + 0xf0]
mov ecx, dword [eax]
mov edi, 0xfffffffe
xor eax, eax
add edi, 2
cmp byte [ecx + eax], 0
lea eax, [eax + 1]
jne 0x4111a0
mov dword [esi + 0x1c], ecx
lea ebx, [eax - 1]
lea ecx, [edi + 2]
test eax, eax
jns 0x4111be
mov ecx, 0xffffffff
push ecx
call fcn.00408d40
add esp, 4
mov edx, eax
mov eax, dword [esi + 0xec]
mov dword [eax], edx
mov ecx, dword [esi + 0x1c]
test ecx, ecx
jne 0x4111e9
mov ebx, ecx
not ebx
xor eax, eax
nop
nop
inc ebx
cmp byte [eax], 0
lea eax, [eax + 1]
jne 0x4111e0
mov dword [esi + 0x20], 0
add edi, edx
cmp edi, edx
jbe 0x411234
test ebx, ebx
jle 0x411234
add ebx, ecx
mov dword [esi + 4], ebx
nop
cmp byte [ecx], 0
je 0x411234
lea eax, [esi + 0x20]
push eax
push dword [esi + 4]
push ecx
mov ebx, ecx
mov dword [esi + 0x1c], edx
call fcn.0040ecd0
mov edx, dword [esi + 0x1c]
add esp, 0xc
movzx ecx, word [esi + 0x20]
mov word [edx], cx
add edx, 2
cmp edx, edi
jae 0x411234
add ebx, eax
cmp ebx, dword [esi + 4]
mov ecx, ebx
jb 0x411200
mov word [edx], 0
mov eax, dword [esi + 0xec]
mov edi, dword [eax]
mov ecx, dword [esi + 0x50]
mov dword [ecx], 0
mov dword [ecx + 4], 0
mov dword [ecx + 8], 0
push edi
call fcn.004361e0
xor eax, eax
test edi, edi
sete al
jmp dword [eax*4 + 0x44091c]
push edi
call fcn.00408d50
add esp, 4
mov ecx, dword [esi + 0x50]
push 0x400
call fcn.00436450
not eax
shr eax, 0x1f
jmp dword [eax*4 + 0x440924]
mov eax, dword [esi + 0x74]
mov dword [eax], 0
mov eax, dword [esi + 0x50]
mov eax, dword [eax]
mov dword [esi + 0x20], 0x2050407
mov dword [esi + 0x24], 0
mov dword [esi + 0x28], 0
mov dword [esi + 0x2b], 0
mov dword [esi + 0x38], 0
mov ecx, dword [esi + 0x38]
cmp ecx, 0xe
ja 0x411314
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov ecx, dword [esi + 0x38]
mov edx, dword [esi + 0x38]
movzx edx, byte [esi + edx + 0x20]
lea edi, [ecx + 0x81]
add ecx, edx
and edi, edx
add edi, edi
sub ecx, edi
add ecx, 0x3c4ba981
mov dword [esi + 8], ecx
mov ecx, dword [esi + 8]
mov edx, ecx
xor edx, 0x78
and ecx, 0x78
lea ecx, [edx + ecx*2]
inc cl
mov edx, dword [esi + 0x38]
mov byte [esi + edx + 0x20], cl
inc dword [esi + 0x38]
mov ecx, dword [esi + 0x38]
cmp ecx, 0xf
jb 0x4112d0
mov ecx, dword [esi + 0x20]
mov edx, dword [0x446c20]
test edx, edx
je case.default.0x412ed7
xor edi, edi
mov ebx, dword [0x446c24]
nop
nop
nop
cmp dword [ebx + edi*8], 0xd9a9c0b
je 0x412abb
inc edi
cmp edx, edi
jne 0x411330
jmp case.default.0x412ed7
xor ecx, ecx
test eax, eax
setle cl
jmp dword [ecx*4 + 0x44084c]
mov dword [esi + 4], ebx
mov ebx, dword [esi + 0x1a4]
mov word [ebx], 0x39c6
mov dword [ebx + 2], 0
mov dword [ebx + 6], 0
mov word [ebx + 0xa], 0
mov dword [esi + 8], 0
mov eax, dword [esi + 8]
cmp eax, 0xb
ja 0x4113cb
nop
mov eax, dword [esi + 8]
mov ecx, dword [esi + 8]
movzx edi, byte [ebx + ecx]
lea ecx, [eax - 0x40b37489]
mov edx, ecx
and edx, edi
xor ecx, edi
add eax, 0x77
and eax, edi
add eax, edx
sub ecx, eax
lea eax, [ecx + edx*2]
mov dword [esi + 0x20], eax
mov eax, dword [esi + 0x20]
add al, 0xbf
mov ecx, dword [esi + 8]
mov byte [ebx + ecx], al
inc dword [esi + 8]
mov eax, dword [esi + 8]
cmp eax, 0xc
jb 0x411390
push ebx
push dword [esi + 4]
call fcn.00402670
add esp, 8
mov ecx, dword [esi + 0x134]
mov dword [ecx], eax
mov edi, dword [esi + 0x170]
mov word [edi], 0xd922
mov word [edi + 6], 0
mov dword [edi + 2], 0
mov dword [esi + 8], 0
mov eax, dword [esi + 8]
cmp eax, 7
ja 0x411476
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov edx, dword [esi + 8]
mov eax, dword [esi + 8]
movzx eax, byte [edi + eax]
lea ecx, [edx - 0x746c6be4]
and ecx, eax
mov edi, 0x746c6be3
sub edi, edx
or edi, eax
add eax, edx
add eax, 0x8b93941c
add edi, edx
mov edx, 0x746c6be2
sub edx, edi
sub edx, ecx
add ecx, edi
add ecx, 0x8b93941d
mov edi, dword [esi + 0x170]
and edx, eax
not eax
and eax, ecx
sub edx, eax
mov dword [esi + 0x20], edx
mov eax, dword [esi + 0x20]
mov ecx, eax
or ecx, 0x3b
and eax, 0x3b
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, 8
jb 0x411410
push edi
push dword [esi + 4]
call fcn.00402670
add esp, 8
mov ecx, dword [esi + 0x128]
mov dword [ecx], eax
mov ecx, dword [esi + 0x134]
mov edx, dword [ecx]
xor ecx, ecx
test edx, edx
sete cl
jmp dword [ecx*4 + 0x440a04]
xor ecx, ecx
test eax, eax
sete cl
jmp dword [ecx*4 + 0x440a0c]
mov eax, edx
mov ebx, eax
inc eax
cmp byte [ebx], 0
jne 0x4114b0
mov eax, ebx
sub eax, edx
mov dword [esi + 4], 0
mov dword [esi + 0x48], eax
test eax, eax
jle 0x4124d9
mov dword [esi + 0x30], edx
cmp byte [edx], 0
je 0x4124dc
mov dword [esi + 4], 0
mov edi, dword [esi + 0x30]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov dword [esi + 0x20], 0
lea eax, [esi + 0x20]
push eax
push ebx
push edi
call fcn.0040ecd0
add esp, 0xc
lea ecx, [edi + eax]
inc dword [esi + 4]
cmp ecx, ebx
jae 0x4124dc
cmp byte [edi + eax], 0
mov edi, ecx
jne 0x4114f0
jmp 0x4124dc
mov word [edi], 0x9526
mov dword [edi + 2], 0
mov dword [edi + 5], 0
mov dword [esi + 8], 0
mov eax, dword [esi + 8]
cmp eax, 8
ja 0x411592
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 [edi + ecx]
lea edx, [eax + ecx]
add edx, 0x76a963d
add eax, 0x76a963d
and eax, ecx
add eax, eax
sub edx, eax
mov dword [esi + 0x20], edx
mov eax, dword [esi + 0x20]
mov ecx, eax
xor ecx, 0x54
and eax, 0x54
lea eax, [ecx + eax*2]
inc al
mov ecx, dword [esi + 8]
mov byte [edi + ecx], al
inc dword [esi + 8]
mov eax, dword [esi + 8]
cmp eax, 9
jb 0x411550
push edi
push ebx
call fcn.00402670
add esp, 8
mov ecx, dword [esi + 0x130]
mov dword [ecx], eax
mov edx, dword [esi + 0x16c]
mov word [edx], 0x59d2
mov dword [edx + 5], 0
mov dword [edx + 2], 0
mov dword [esi + 8], 0
mov eax, dword [esi + 8]
cmp eax, 8
ja 0x41161c
nop
nop
nop
nop
mov eax, dword [esi + 8]
mov ecx, dword [esi + 8]
movzx ecx, byte [edx + ecx]
mov edx, eax
and edx, 0x3de8ce34
xor eax, 0xbde8ce34
lea eax, [eax + edx*2]
lea edx, [eax + ecx]
and eax, ecx
add eax, eax
mov ecx, eax
xor ecx, edx
not eax
and eax, edx
mov edx, dword [esi + 0x16c]
add eax, eax
sub eax, ecx
mov dword [esi + 0x20], eax
mov eax, dword [esi + 0x20]
add al, 0x94
mov ecx, dword [esi + 8]
mov byte [edx + ecx], al
inc dword [esi + 8]
mov eax, dword [esi + 8]
cmp eax, 9
jb 0x4115d0
push edx
push ebx
call fcn.00402670
add esp, 8
mov ecx, dword [esi + 0x124]
mov dword [ecx], eax
mov ecx, dword [esi + 0x130]
mov edx, dword [ecx]
xor ecx, ecx
test edx, edx
sete cl
jmp dword [ecx*4 + 0x440a94]
xor ecx, ecx
test eax, eax
sete cl
jmp dword [ecx*4 + 0x440a9c]
mov eax, edx
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov ebx, eax
inc eax
cmp byte [ebx], 0
jne 0x411660
mov eax, ebx
sub eax, edx
mov dword [esi + 4], 0
mov dword [esi + 0x48], eax
test eax, eax
mov dword [esi + 0x30], edx
jle 0x4116b7
cmp byte [edx], 0
je 0x4116b7
mov dword [esi + 4], 0
mov edi, dword [esi + 0x30]
nop
nop
nop
nop
mov dword [esi + 0x20], 0
lea eax, [esi + 0x20]
push eax
push ebx
push edi
call fcn.0040ecd0
add esp, 0xc
lea ecx, [edi + eax]
inc dword [esi + 4]
cmp ecx, ebx
jae 0x4116b7
cmp byte [edi + eax], 0
mov edi, ecx
jne 0x411690
mov edi, dword [esi + 4]
mov eax, edi
inc eax
lea eax, [edi + edi + 2]
jns 0x4116c8
mov eax, 0xffffffff
push eax
call fcn.00408d40
add esp, 4
mov edx, eax
mov eax, dword [esi + 0x104]
mov dword [eax], edx
mov dword [esi + 0x20], 0
lea eax, [edx + edi*2]
mov dword [esi + 0x1c], eax
cmp eax, edx
jbe 0x41172e
cmp dword [esi + 0x48], 0
mov edi, dword [esi + 0x30]
jle 0x41172e
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp byte [edi], 0
je 0x41172e
lea eax, [esi + 0x20]
push eax
push ebx
push edi
mov dword [esi + 4], edx
call fcn.0040ecd0
mov edx, dword [esi + 4]
add esp, 0xc
movzx ecx, word [esi + 0x20]
mov word [edx], cx
add edx, 2
cmp edx, dword [esi + 0x1c]
jae 0x41172e
add edi, eax
cmp edi, ebx
jb 0x411700
mov word [edx], 0
mov eax, dword [esi + 0x124]
mov ecx, dword [eax]
mov edi, 0xfffffffe
xor eax, eax
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
add edi, 2
cmp byte [ecx + eax], 0
lea eax, [eax + 1]
jne 0x411750
mov dword [esi + 0x1c], ecx
lea ebx, [eax - 1]
lea ecx, [edi + 2]
test eax, eax
jns 0x41176e
mov ecx, 0xffffffff
push ecx
call fcn.00408d40
add esp, 4
mov edx, eax
mov eax, dword [esi + 0x100]
mov dword [eax], edx
mov ecx, dword [esi + 0x1c]
test ecx, ecx
jne 0x411799
mov ebx, ecx
not ebx
xor eax, eax
nop
nop
inc ebx
cmp byte [eax], 0
lea eax, [eax + 1]
jne 0x411790
mov dword [esi + 0x20], 0
add edi, edx
cmp edi, edx
jbe 0x4117e4
test ebx, ebx
jle 0x4117e4
add ebx, ecx
mov dword [esi + 4], ebx
nop
cmp byte [ecx], 0
je 0x4117e4
lea eax, [esi + 0x20]
push eax
push dword [esi + 4]
push ecx
mov ebx, ecx
mov dword [esi + 0x1c], edx
call fcn.0040ecd0
mov edx, dword [esi + 0x1c]
add esp, 0xc
movzx ecx, word [esi + 0x20]
mov word [edx], cx
add edx, 2
cmp edx, edi
jae 0x4117e4
add ebx, eax
cmp ebx, dword [esi + 4]
mov ecx, ebx
jb 0x4117b0
mov word [edx], 0
mov eax, dword [esi + 0x88]
mov dword [eax], 0
mov eax, dword [esi + 0x8c]
mov dword [eax], 0
mov edi, dword [esi + 0x180]
mov word [edi], 0xfdf5
mov byte [edi + 2], 0x64
mov dword [edi + 3], 0
mov dword [edi + 7], 0
mov dword [edi + 0xb], 0
mov dword [esi + 8], 0
mov eax, dword [esi + 8]
cmp eax, 0xe
ja 0x411877
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 + ecx]
add edx, 0xeae5c491
add eax, 0xeae5c491
and eax, ecx
add eax, eax
sub edx, eax
mov dword [esi + 0x20], edx
mov eax, dword [esi + 0x20]
add al, 9
mov ecx, dword [esi + 8]
mov byte [edi + ecx], al
inc dword [esi + 8]
mov eax, dword [esi + 8]
cmp eax, 0xf
jb 0x411840
push edi
push dword [ebp + 8]
call fcn.00402740
add esp, 8
mov ecx, dword [esi + 0x14c]
mov dword [ecx], eax
xor ecx, ecx
test eax, eax
setne cl
jmp dword [ecx*4 + 0x440ab4]
push eax
call fcn.00402970
add esp, 4
mov edi, eax
mov eax, dword [esi + 0x8c]
mov dword [eax], edi
mov eax, edi
mov ecx, 0xc
mul ecx
seto dl
mov ecx, 0xffffffff
mov ebx, 0xffffffff
add eax, 4
jb 0x4118c9
mov ebx, eax
test dl, dl
jne 0x4118cf
mov ecx, ebx
push ecx
call fcn.00408d40
add esp, 4
mov dword [eax], edi
add eax, 4
xor ecx, ecx
test edi, edi
sete cl
jmp dword [ecx*4 + 0x440abc]
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 + 0x440ac4]
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 + 0x440ac4]
mov ecx, dword [esi + 0x88]
mov dword [ecx], eax
mov eax, dword [esi + 0xc4]
add eax, 3
mov dword [esi + 0x30], eax
xor eax, eax
xor ecx, ecx
cmp eax, edi
mov edx, dword [esi + 0x140]
lea edx, [edx + 3]
mov dword [esi + 0x48], edx
mov edx, dword [esi + 0xb8]
mov dword [edx], eax
setb cl
jmp dword [ecx*4 + 0x440acc]
mov ecx, dword [esi + 0x84]
push 3
call fcn.00409600
mov eax, dword [esi + 0x88]
mov ebx, dword [eax]
mov eax, dword [esi + 0x100]
mov edi, dword [eax]
mov eax, dword [esi + 0x104]
mov ecx, dword [eax]
mov eax, dword [esi + 0x8c]
push dword [eax]
push ebx
push edi
mov dword [esi + 4], ecx
push ecx
push dword [esi + 0x84]
call fcn.00418920
add esp, 0x14
mov ecx, dword [esi + 0x84]
call fcn.00409fd0
xor eax, eax
test ebx, ebx
sete al
jmp dword [eax*4 + 0x440ad4]
mov dword [esi + 0x1c], edi
mov eax, dword [case.0x411a4f.7]
nop
jmp eax
lea eax, [ebx - 4]
mov dword [esi + 0x30], eax
mov eax, dword [ebx - 4]
xor ecx, ecx
test eax, eax
lea eax, [eax + eax*2]
lea edi, [ebx + eax*4]
sete cl
jmp dword [ecx*4 + 0x440aec]
push dword [esi + 0x30]
call fcn.00408d50
add esp, 4
xor eax, eax
mov ecx, dword [esi + 4]
test ecx, ecx
sete al
mov edi, dword [esi + 0x1c]
jmp dword [eax*4 + 0x440afc]
xor eax, eax
test edi, edi
sete al
jmp dword [eax*4 + 0x440b04]
mov word [edx], 0
mov edi, dword [esi + 0xb8]
mov eax, dword [edi]
inc eax
mov ecx, dword [esi + 0x8c]
mov ecx, dword [ecx]
xor edx, edx
cmp eax, ecx
mov dword [edi], eax
setb dl
jmp dword [edx*4 + 0x440acc]
push eax
mov eax, dword [esi + 0x14c]
push dword [eax]
call fcn.00402980
add esp, 8
mov ebx, dword [esi + 0x1b4]
mov dword [ebx], eax
mov edi, dword [esi + 0xc4]
mov word [edi], 0x2f15
mov byte [edi + 2], 0xb2
mov ecx, dword [esi + 0x30]
mov dword [ecx], 0
mov word [ecx + 4], 0
mov dword [esi + 8], 0
mov ecx, dword [esi + 8]
cmp ecx, 8
ja 0x411adf
nop
nop
nop
nop
mov ecx, dword [esi + 8]
mov edx, dword [esi + 8]
movzx edx, byte [edi + edx]
lea edi, [ecx + edx]
add edi, 0x31e830c8
add ecx, 0x31e830c8
and ecx, edx
add ecx, ecx
sub edi, ecx
mov dword [esi + 0x20], edi
mov edi, dword [esi + 0xc4]
mov ecx, dword [esi + 0x20]
add cl, 0x88
mov edx, dword [esi + 8]
mov byte [edi + edx], cl
inc dword [esi + 8]
mov ecx, dword [esi + 8]
cmp ecx, 9
jb 0x411aa0
push edi
push eax
call fcn.00402670
add esp, 8
mov ecx, dword [esi + 0x15c]
mov dword [ecx], eax
mov edi, dword [esi + 0x140]
mov word [edi], 0xf381
mov byte [edi + 2], pe_nt_image_headers32
mov eax, dword [esi + 0x48]
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 0x411b67
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]
mov ecx, 0xa08719d0
sub ecx, eax
add eax, 0x2f
and eax, edx
or ecx, edx
not ecx
add ecx, edx
sub ecx, eax
mov dword [esi + 0x20], ecx
mov eax, dword [esi + 0x20]
add al, 0xb7
mov ecx, dword [esi + 8]
mov byte [edi + ecx], al
inc dword [esi + 8]
mov eax, dword [esi + 8]
cmp eax, 0xe
jb 0x411b30
push edi
push dword [ebx]
call fcn.00402670
add esp, 8
mov ecx, dword [esi + 0x158]
mov dword [ecx], eax
mov edi, dword [esi + 0x1b0]
mov word [edi], 0xadb9
mov byte [edi + 2], 0x20
mov dword [edi + 3], 0
mov dword [edi + 7], 0
mov dword [esi + 8], 0
mov eax, dword [esi + 8]
cmp eax, 0xa
ja 0x411be6
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 + 0x309e5bfb]
and edx, ecx
add eax, ecx
add eax, 0x309e5bfb
add edx, edx
sub eax, edx
mov dword [esi + 0x20], eax
mov eax, dword [esi + 0x20]
add al, 0x23
mov ecx, dword [esi + 8]
mov byte [edi + ecx], al
inc dword [esi + 8]
mov eax, dword [esi + 8]
cmp eax, 0xb
jb 0x411bb0
push edi
push dword [ebx]
call fcn.00402670
add esp, 8
mov ecx, dword [esi + 0x88]
mov ecx, dword [ecx]
mov edx, dword [esi + 0xb8]
mov edx, dword [edx]
lea edx, [edx + edx*2]
mov edi, dword [esi + 0x15c]
mov edi, dword [edi]
mov ebx, dword [esi + 0x158]
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 + 0x1c], eax
mov eax, ebx
mov edi, 0xfffffffe
xor ebx, ebx
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
add edi, 2
cmp byte [eax + ebx], 0
lea ebx, [ebx + 1]
jne 0x411c40
test ebx, ebx
mov dword [esi + 4], eax
jns 0x411c60
mov eax, 0xffffffff
jmp 0x411c63
lea eax, [edi + 2]
push eax
call fcn.00408d40
add esp, 4
mov edx, eax
mov eax, dword [esi + 0x1c]
mov dword [eax], edx
mov ecx, dword [esi + 4]
test ecx, ecx
je 0x411c80
dec ebx
jmp 0x411c99
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 0x411c90
mov dword [esi + 0x20], 0
add edi, edx
cmp edi, edx
jbe 0x411a30
test ebx, ebx
jle 0x411a30
add ebx, ecx
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp byte [ecx], 0
je 0x411a30
lea eax, [esi + 0x20]
push eax
push ebx
push ecx
mov dword [esi + 4], ecx
mov dword [esi + 0x1c], edx
call fcn.0040ecd0
mov edx, dword [esi + 0x1c]
add esp, 0xc
movzx ecx, word [esi + 0x20]
mov word [edx], cx
add edx, 2
cmp edx, edi
jae 0x411a30
mov ecx, dword [esi + 4]
add ecx, eax
cmp ecx, ebx
jb 0x411cc0
jmp 0x411a30
xor eax, eax
cmp edi, ebx
sete al
jmp dword [eax*4 + 0x440af4]
mov eax, dword [edi - 0xc]
add edi, 0xfffffff4
test eax, eax
je 0x411d00
push eax
call fcn.00408d50
add esp, 4
jmp 0x411d00
sete al
movzx eax, al
jmp dword [eax*4 + 0x440854]
mov word [esi + 0x20], 0xd7c
mov dword [esi + 0x26], 0
mov dword [esi + 0x22], 0
mov dword [esi + 0x38], 0
mov eax, dword [esi + 0x38]
cmp eax, 9
ja 0x411d9c
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov edx, dword [esi + 0x38]
mov eax, dword [esi + 0x38]
movzx ecx, byte [esi + eax + 0x20]
lea eax, [edx + 0x82]
and eax, ecx
mov edi, 0xd624477d
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, 0x72
mov ecx, dword [esi + 0x38]
mov byte [esi + ecx + 0x20], al
inc dword [esi + 0x38]
mov eax, dword [esi + 0x38]
cmp eax, 0xa
jb 0x411d60
push 2
lea eax, [esi + 0x20]
push eax
mov dword [esi + 4], ebx
push ebx
call fcn.00402900
add esp, 0xc
xor ecx, ecx
test eax, eax
setne cl
mov bl, 1
jmp dword [ecx*4 + 0x44085c]
mov word [esi + 8], 0x6df9
mov dword [esi + 0xe], 0
mov dword [esi + 0xa], 0
mov dword [esi + 0x34], 0
mov eax, dword [esi + 0x34]
cmp eax, 9
ja 0x411e2c
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov edx, dword [esi + 0x34]
mov eax, dword [esi + 0x34]
movzx ecx, byte [esi + eax + 8]
lea eax, [edx + 0xf2]
and eax, ecx
mov edi, 0x95da4e0d
sub edi, edx
or edi, ecx
not edi
add edi, ecx
sub edi, eax
mov dword [esi + 0x4c], edi
mov eax, dword [esi + 0x4c]
add al, 0x62
mov ecx, dword [esi + 0x34]
mov byte [esi + ecx + 8], al
inc dword [esi + 0x34]
mov eax, dword [esi + 0x34]
cmp eax, 0xa
jb 0x411df0
push 5
lea eax, [esi + 8]
push eax
push dword [esi + 4]
call fcn.00402900
add esp, 0xc
xor ecx, ecx
test eax, eax
setne cl
jmp dword [ecx*4 + 0x440864]
mov word [esi + 0x38], 0x8d0a
mov dword [esi + 0x3e], 0
mov dword [esi + 0x3a], 0
mov dword [esi + 0x34], 0
mov eax, dword [esi + 0x34]
cmp eax, 9
ja 0x411ea9
nop
nop
mov eax, dword [esi + 0x34]
mov ecx, dword [esi + 0x34]
movzx edx, byte [esi + ecx + 0x38]
lea ecx, [eax + edx]
add eax, 0xea
and eax, edx
add eax, eax
sub ecx, eax
add ecx, 0x30dcd3ea
mov dword [esi + 0x4c], ecx
mov eax, dword [esi + 0x4c]
add al, 0x9a
mov ecx, dword [esi + 0x34]
mov byte [esi + ecx + 0x38], al
inc dword [esi + 0x34]
mov eax, dword [esi + 0x34]
cmp eax, 0xa
jb 0x411e70
push 2
lea eax, [esi + 0x38]
push eax
push dword [esi + 4]
call fcn.00402900
add esp, 0xc
xor ecx, ecx
test eax, eax
setne cl
jmp dword [ecx*4 + 0x44086c]
mov word [esi + 0x1e8], 0xad00
mov dword [esi + 0x1ee], 0
mov dword [esi + 0x1ea], 0
mov dword [esi + 0x34], 0
mov eax, dword [esi + 0x34]
cmp eax, 9
ja 0x411f3f
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esi + 0x34]
mov ecx, dword [esi + 0x34]
movzx edx, byte [esi + ecx + 0x1e8]
lea ecx, [eax + edx]
add eax, 0x9a
and eax, edx
add eax, eax
sub ecx, eax
add ecx, 0x7322da9a
mov dword [esi + 0x4c], ecx
mov eax, dword [esi + 0x4c]
add al, 0xca
mov ecx, dword [esi + 0x34]
mov byte [esi + ecx + 0x1e8], al
inc dword [esi + 0x34]
mov eax, dword [esi + 0x34]
cmp eax, 0xa
jb 0x411f00
push 3
lea eax, [esi + 0x1e8]
push eax
push dword [esi + 4]
call fcn.00402900
add esp, 0xc
xor ecx, ecx
test eax, eax
setne cl
jmp dword [ecx*4 + 0x440874]
movzx eax, bl
mov ebx, dword [esi + 0xe0]
jmp dword [eax*4 + 0x44087c]
mov word [esi + 0x20], 0x39a6
mov dword [esi + 0x22], 0
mov dword [esi + 0x26], 0
mov word [esi + 0x2a], 0
mov dword [esi + 0x38], 0
mov eax, dword [esi + 0x38]
cmp eax, 0xb
ja 0x411fe3
nop
nop
nop
nop
nop
nop
mov eax, dword [esi + 0x38]
mov ecx, dword [esi + 0x38]
movzx edx, byte [esi + ecx + 0x20]
lea ecx, [eax + edx]
add ecx, 0x3043107
add eax, 0x3043107
and eax, edx
add eax, eax
mov edx, ecx
not edx
and edx, eax
not eax
and eax, ecx
sub eax, edx
mov dword [esi + 8], eax
mov eax, dword [esi + 8]
add al, 0xcf
mov ecx, dword [esi + 0x38]
mov byte [esi + ecx + 0x20], al
inc dword [esi + 0x38]
mov eax, dword [esi + 0x38]
cmp eax, 0xc
jb 0x411fa0
lea eax, [esi + 0x20]
push eax
push dword [esi + 4]
call fcn.00402670
add esp, 8
mov dword [esi + 0x98], eax
mov word [esi + 0x20], 0x3999
mov dword [esi + 0x26], 0
mov dword [esi + 0x22], 0
mov dword [esi + 0x38], 0
mov eax, dword [esi + 0x38]
cmp eax, 9
ja 0x412059
nop
nop
nop
nop
nop
mov edx, dword [esi + 0x38]
mov eax, dword [esi + 0x38]
movzx ecx, byte [esi + eax + 0x20]
lea eax, [edx + 7]
and eax, ecx
mov edi, 0x1b071f8
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, 0xcf
mov ecx, dword [esi + 0x38]
mov byte [esi + ecx + 0x20], al
inc dword [esi + 0x38]
mov eax, dword [esi + 0x38]
cmp eax, 0xa
jb 0x412020
lea eax, [esi + 0x20]
push eax
push dword [esi + 4]
call fcn.00402740
add esp, 8
mov dword [esi + 0x48], eax
mov word [esi + 0x20], 0x31ba
mov dword [esi + 0x22], 0
mov dword [esi + 0x26], 0
mov dword [esi + 0x2a], 0
mov dword [esi + 0x38], 0
mov eax, dword [esi + 0x38]
cmp eax, 0xd
ja 0x4120e7
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esi + 0x38]
mov ecx, dword [esi + 0x38]
movzx ecx, byte [esi + ecx + 0x20]
add eax, 0xa68a7178
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
mov edx, ecx
xor edx, eax
not eax
and eax, ecx
add eax, eax
sub eax, edx
mov dword [esi + 8], eax
mov eax, dword [esi + 8]
add al, 0xb8
mov ecx, dword [esi + 0x38]
mov byte [esi + ecx + 0x20], al
inc dword [esi + 0x38]
mov eax, dword [esi + 0x38]
cmp eax, 0xe
jb 0x4120a0
lea eax, [esi + 0x20]
push eax
push dword [esi + 4]
call fcn.00402670
add esp, 8
mov dword [esi + 0x6c], eax
mov word [esi + 0x20], 0x9904
mov dword [esi + 0x22], 0
mov dword [esi + 0x26], 0
mov dword [esi + 0x2a], 0
mov word [esi + 0x2e], 0
mov dword [esi + 0x38], 0
mov eax, dword [esi + 0x38]
cmp eax, 0xf
ja 0x412172
nop
nop
nop
nop
nop
nop
nop
mov ecx, dword [esi + 0x38]
mov eax, dword [esi + 0x38]
movzx edx, byte [esi + eax + 0x20]
add ecx, 0x135e0b44
mov eax, ecx
and eax, edx
xor ecx, edx
lea ecx, [ecx + eax*2]
add eax, eax
mov edx, ecx
xor edx, eax
not eax
and eax, ecx
add eax, eax
sub eax, edx
mov dword [esi + 8], eax
mov eax, dword [esi + 8]
add al, 0x24
mov ecx, dword [esi + 0x38]
mov byte [esi + ecx + 0x20], al
inc dword [esi + 0x38]
mov eax, dword [esi + 0x38]
cmp eax, 0x10
jb 0x412130
lea eax, [esi + 0x20]
push eax
push dword [esi + 4]
call fcn.004026d0
add esp, 8
fnstcw word [esi + 0x64]
movzx eax, word [esi + 0x64]
or eax, 0xc00
mov word [esi + 0xd0], ax
fldcw word [esi + 0xd0]
fistp dword [esi + 0x1d0]
fldcw word [esi + 0x64]
mov eax, dword [esi + 0x1d0]
mov dword [esi + 0x58], eax
mov word [esi + 0x20], 0xb8cc
mov byte [esi + 0x22], 0x34
mov dword [esi + 0x23], 0
mov dword [esi + 0x27], 0
mov dword [esi + 0x2a], 0
mov dword [esi + 0x38], 0
mov eax, dword [esi + 0x38]
cmp eax, 0xd
ja 0x412222
nop
nop
nop
nop
nop
nop
mov eax, dword [esi + 0x38]
mov ecx, dword [esi + 0x38]
movzx ecx, byte [esi + ecx + 0x20]
lea edx, [eax + 0xf9]
add eax, ecx
and edx, ecx
add edx, edx
sub eax, edx
add eax, 0x443797f9
mov dword [esi + 8], eax
mov eax, dword [esi + 8]
mov ecx, eax
or ecx, 0x30
and eax, 0x30
add eax, ecx
inc al
mov ecx, dword [esi + 0x38]
mov byte [esi + ecx + 0x20], al
inc dword [esi + 0x38]
mov eax, dword [esi + 0x38]
cmp eax, 0xe
jb 0x4121e0
lea eax, [esi + 0x20]
push eax
push dword [esi + 4]
call fcn.004026d0
add esp, 8
fnstcw word [esi + 0x62]
movzx eax, word [esi + 0x62]
or eax, 0xc00
mov word [esi + 0xce], ax
fldcw word [esi + 0xce]
fistp dword [esi + 0x1cc]
fldcw word [esi + 0x62]
mov eax, dword [esi + 0x1cc]
mov dword [esi + 0x1ac], eax
mov word [ebx], 0x4d46
mov byte [ebx + 2], 0xda
mov dword [ebx + 3], 0
mov dword [ebx + 7], 0
mov dword [ebx + 0xb], 0
mov dword [esi + 8], 0
mov eax, dword [esi + 8]
cmp eax, 0xe
ja 0x4122c6
nop
nop
nop
nop
mov eax, dword [esi + 8]
mov ecx, dword [esi + 8]
movzx ecx, byte [ebx + ecx]
lea edx, [eax + 0xa4]
add eax, ecx
and edx, ecx
add edx, edx
sub eax, edx
add eax, 0x913310a4
mov dword [esi + 0x20], eax
mov eax, dword [esi + 0x20]
add al, 0x84
mov ecx, dword [esi + 8]
mov byte [ebx + ecx], al
inc dword [esi + 8]
mov eax, dword [esi + 8]
cmp eax, 0xf
jb 0x412290
push ebx
push dword [esi + 4]
call fcn.004027a0
add esp, 8
mov dword [esi + 0x1a8], eax
mov ebx, 0xffffffff
mov eax, dword [esi + 0x98]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp byte [eax + ebx + 1], 0
lea ebx, [ebx + 1]
jne 0x4122f0
mov edx, eax
add edx, ebx
mov dword [esi + 4], 0
test ebx, ebx
mov dword [esi + 0x1c], edx
jle 0x41234a
cmp byte [eax], 0
je 0x41234a
mov dword [esi + 4], 0
mov edi, dword [esi + 0x98]
nop
nop
mov dword [esi + 0x20], 0
lea eax, [esi + 0x20]
push eax
push edx
push edi
call fcn.0040ecd0
mov edx, dword [esi + 0x1c]
add esp, 0xc
lea ecx, [edi + eax]
inc dword [esi + 4]
cmp ecx, edx
jae 0x41234a
cmp byte [edi + eax], 0
mov edi, ecx
jne 0x412320
mov eax, dword [esi + 0xfc]
mov ecx, dword [esi + 4]
mov dword [eax], ecx
mov eax, ecx
inc eax
lea eax, [ecx + ecx + 2]
jns 0x412363
mov eax, 0xffffffff
push eax
call fcn.00408d40
add esp, 4
mov ecx, eax
mov eax, dword [esi + 0xf8]
mov dword [eax], ecx
mov dword [esi + 0x20], 0
mov eax, dword [esi + 4]
lea eax, [ecx + eax*2]
mov dword [esi + 0x30], ecx
mov dword [esi + 0xa8], eax
cmp eax, ecx
jbe 0x4123d7
test ebx, ebx
mov ecx, dword [esi + 0x98]
mov edi, dword [esi + 0x1c]
jle 0x4123d7
nop
nop
nop
cmp byte [ecx], 0
je 0x4123d7
lea eax, [esi + 0x20]
push eax
push edi
push ecx
mov ebx, ecx
call fcn.0040ecd0
add esp, 0xc
movzx ecx, word [esi + 0x20]
mov edx, dword [esi + 0x30]
mov word [edx], cx
mov ecx, edx
add ecx, 2
cmp ecx, dword [esi + 0xa8]
mov dword [esi + 0x30], ecx
jae 0x4123d7
add ebx, eax
cmp ebx, edi
mov ecx, ebx
jb 0x4123a0
mov eax, dword [esi + 0x30]
mov word [eax], 0
mov eax, dword [esi + 0xf8]
mov edi, dword [eax]
mov ebx, dword [esi + 0xf4]
push ebx
push 0
push 0
push dword [esi + 4]
push edi
push 0
call dword [0x446c1c]
mov ebx, dword [ebx]
lea eax, [ebx + ebx]
test ebx, ebx
jns 0x41240c
mov eax, 0xffffffff
push eax
call fcn.00408d40
add esp, 4
mov ecx, dword [esi + 0xb4]
mov dword [ecx], eax
push dword [esi + 0xf4]
push ebx
push eax
mov eax, dword [esi + 0xfc]
push dword [eax]
push edi
push 0
call dword [0x446c1c]
xor eax, eax
test edi, edi
sete al
jmp dword [eax*4 + 0x440894]
push edi
call fcn.00408d50
add esp, 4
mov ecx, dword [esi + 0x6c]
mov eax, ecx
jmp 0x413a2b
jmp case.0x411a4f.20
mov eax, dword [case.0x41163d.6]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
jmp eax
jmp case.0x411a4f.20
xor eax, eax
mov ecx, dword [esi + 4]
test ecx, ecx
sete al
jmp dword [eax*4 + 0x440afc]
push ecx
call fcn.00408d50
add esp, 4
xor eax, eax
test edi, edi
sete al
jmp dword [eax*4 + 0x440b04]
jmp dword [0x440b0c]
push edi
call fcn.00408d50
add esp, 4
nop
nop
push edi
call fcn.00408d50
add esp, 4
jmp dword [0x440b18]
mov ecx, dword [esi + 0x84]
call fcn.00409640
jmp case.0x411a4f.20
mov ecx, dword [esi + 0x6c]
mov edx, ecx
jmp 0x413a23
mov dword [esi + 0x30], edx
mov edi, dword [esi + 4]
mov eax, edi
and eax, 1
mov ecx, edi
xor ecx, 1
lea ecx, [ecx + eax*2]
lea eax, [ecx + ecx]
test ecx, ecx
jns 0x4124f8
mov eax, 0xffffffff
push eax
call fcn.00408d40
add esp, 4
mov edx, eax
mov eax, dword [esi + 0x80]
mov dword [eax], edx
mov dword [esi + 0x20], 0
lea eax, [edx + edi*2]
mov dword [esi + 0x1c], eax
cmp eax, edx
jbe 0x41255e
cmp dword [esi + 0x48], 0
mov edi, dword [esi + 0x30]
jle 0x41255e
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp byte [edi], 0
je 0x41255e
lea eax, [esi + 0x20]
push eax
push ebx
push edi
mov dword [esi + 4], edx
call fcn.0040ecd0
mov edx, dword [esi + 4]
add esp, 0xc
movzx ecx, word [esi + 0x20]
mov word [edx], cx
add edx, 2
cmp edx, dword [esi + 0x1c]
jae 0x41255e
add edi, eax
cmp edi, ebx
jb 0x412530
mov word [edx], 0
mov eax, dword [esi + 0x128]
mov eax, dword [eax]
mov ecx, 0xffffffff
mov ebx, ecx
cmp byte [eax + ecx + 1], 0
lea ecx, [ecx + 1]
jne 0x412570
lea edx, [eax + ecx]
xor ebx, ebx
mov dword [esi + 0x58], ecx
test ecx, ecx
mov dword [esi + 4], edx
mov dword [esi + 0x48], eax
jle 0x4125c8
cmp byte [eax], 0
je 0x4125c8
xor ebx, ebx
mov edi, dword [esi + 0x48]
nop
nop
nop
nop
nop
nop
nop
nop
mov dword [esi + 0x20], 0
lea eax, [esi + 0x20]
push eax
push edx
push edi
call fcn.0040ecd0
mov edx, dword [esi + 4]
add esp, 0xc
lea ecx, [edi + eax]
inc ebx
cmp ecx, edx
jae 0x4125c8
cmp byte [edi + eax], 0
mov edi, ecx
jne 0x4125a0
mov eax, ebx
inc eax
lea eax, [ebx + ebx + 2]
jns 0x4125d6
mov eax, 0xffffffff
push eax
call fcn.00408d40
add esp, 4
mov ecx, eax
mov eax, dword [esi + 0xa4]
mov dword [eax], ecx
mov dword [esi + 0x20], 0
lea eax, [ecx + ebx*2]
mov dword [esi + 0x1c], ecx
mov dword [esi + 0x30], eax
cmp eax, ecx
jbe 0x412640
cmp dword [esi + 0x58], 0
mov ebx, dword [esi + 0x48]
mov edi, dword [esi + 4]
jle 0x412640
nop
nop
nop
nop
nop
nop
nop
cmp byte [ebx], 0
je 0x412640
lea eax, [esi + 0x20]
push eax
push edi
push ebx
call fcn.0040ecd0
add esp, 0xc
movzx ecx, word [esi + 0x20]
mov edx, dword [esi + 0x1c]
mov word [edx], cx
mov ecx, edx
add ecx, 2
cmp ecx, dword [esi + 0x30]
mov dword [esi + 0x1c], ecx
jae 0x412640
add ebx, eax
cmp ebx, edi
jb 0x412610
mov eax, dword [esi + 0x1c]
mov word [eax], 0
mov eax, dword [esi + 0x5c]
mov dword [eax], 0
mov eax, dword [esi + 0x90]
mov dword [eax], 0
mov edi, dword [esi + 0x184]
mov word [edi], 0x5dad
mov byte [edi + 2], 0xd4
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 0x4126d1
nop
mov eax, dword [esi + 8]
mov ecx, dword [esi + 8]
movzx edx, byte [edi + ecx]
lea ecx, [eax + edx]
add ecx, 0x7f5a7add
add eax, 0x7f5a7add
and eax, edx
add eax, eax
mov edx, ecx
not edx
and edx, eax
not eax
and eax, ecx
sub eax, edx
mov dword [esi + 0x20], eax
mov eax, dword [esi + 0x20]
add al, 0xf5
mov ecx, dword [esi + 8]
mov byte [edi + ecx], al
inc dword [esi + 8]
mov eax, dword [esi + 8]
cmp eax, 0xd
jb 0x412690
push edi
push dword [ebp + 8]
call fcn.00402740
add esp, 8
mov ecx, dword [esi + 0x150]
mov dword [ecx], eax
xor ecx, ecx
test eax, eax
setne cl
jmp dword [ecx*4 + 0x440a14]
push eax
call fcn.00402970
add esp, 4
mov edi, eax
mov ecx, 0xc
mul ecx
seto dl
mov ecx, 0xffffffff
mov ebx, 0xffffffff
add eax, 4
jb 0x412719
mov ebx, eax
mov eax, dword [esi + 0x90]
mov dword [eax], edi
test dl, dl
jne 0x412727
mov ecx, ebx
push ecx
call fcn.00408d40
add esp, 4
mov dword [eax], edi
add eax, 4
xor ecx, ecx
test edi, edi
sete cl
jmp dword [ecx*4 + 0x440a1c]
lea ecx, [edi + edi*2]
lea ecx, [eax + ecx*4]
mov dword [eax], 0
mov dword [eax + 4], 0
mov byte [eax + 8], 0
lea edx, [eax + 0xc]
xor ebx, ebx
cmp edx, ecx
sete bl
jmp dword [ebx*4 + 0x440a24]
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 + 0x440a24]
mov ecx, dword [esi + 0x5c]
mov dword [ecx], eax
mov eax, dword [esi + 0xc8]
add eax, 3
mov dword [esi + 4], eax
xor ebx, ebx
xor eax, eax
cmp ebx, edi
mov ecx, dword [esi + 0x148]
lea ecx, [ecx + 3]
mov dword [esi + 0x1c], ecx
mov ecx, dword [esi + 0xbc]
mov dword [ecx], ebx
setb al
mov ecx, dword [esi + 0x144]
add ecx, 4
mov dword [esi + 0x30], ecx
mov edi, dword [esi + 0x17c]
jmp dword [eax*4 + 0x440a2c]
mov edi, dword [esi + 0xa0]
mov ecx, edi
push 2
call fcn.00409600
mov eax, dword [esi + 0x90]
push dword [eax]
mov eax, dword [esi + 0x5c]
push dword [eax]
mov eax, dword [esi + 0xa4]
push dword [eax]
mov eax, dword [esi + 0x80]
push dword [eax]
push edi
call fcn.00416060
add esp, 0x14
mov ecx, edi
call fcn.00409fd0
movzx eax, al
jmp dword [eax*4 + 0x440a34]
mov eax, dword [esi + 0xa0]
mov eax, dword [eax + 4]
mov ecx, dword [esi + 0x178]
mov byte [ecx + 0xa], 0
cmp eax, 0x3ff
ja 0x412a54
lea eax, [ecx + 9]
mov dword [esi + 4], eax
mov byte [ecx + 9], 0x30
jmp 0x412be0
push ebx
push dword [edi]
call fcn.004027a0
add esp, 8
xor edx, edx
test eax, eax
setg dl
mov eax, dword [esi + 0xbc]
mov ebx, dword [eax]
lea ecx, [ebx + ebx*2]
shl ecx, 2
mov eax, dword [esi + 0x5c]
add ecx, dword [eax]
push edx
mov eax, dword [esi + 0x164]
push dword [eax]
mov eax, dword [esi + 0x160]
push dword [eax]
call fcn.00415a90
inc ebx
mov eax, dword [esi + 0x90]
mov eax, dword [eax]
xor ecx, ecx
cmp ebx, eax
mov eax, dword [esi + 0xbc]
mov dword [eax], ebx
setb cl
jmp dword [ecx*4 + 0x440a2c]
push ebx
mov eax, dword [esi + 0x150]
push dword [eax]
call fcn.00402980
add esp, 8
mov dword [edi], eax
mov ebx, dword [esi + 0xc8]
mov word [ebx], 0xe7f9
mov byte [ebx + 2], 0x50
mov ecx, dword [esi + 4]
mov dword [ecx], 0
mov dword [ecx + 4], 0
mov dword [ecx + 7], 0
mov dword [esi + 8], 0
mov ecx, dword [esi + 8]
cmp ecx, 0xd
ja 0x41293e
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 [ebx + edx]
lea ebx, [ecx + 0x237666f3]
and ebx, edx
add ecx, edx
add ecx, 0x237666f3
add ebx, ebx
sub ecx, ebx
mov ebx, dword [esi + 0xc8]
mov dword [esi + 0x20], ecx
mov ecx, dword [esi + 0x20]
add cl, 0x5b
mov edx, dword [esi + 8]
mov byte [ebx + edx], cl
inc dword [esi + 8]
mov ecx, dword [esi + 8]
cmp ecx, 0xe
jb 0x412900
push ebx
push eax
call fcn.00402670
add esp, 8
mov ecx, dword [esi + 0x164]
mov dword [ecx], eax
mov ebx, dword [esi + 0x148]
mov word [ebx], 0x4b71
mov byte [ebx + 2], 0xca
mov eax, dword [esi + 0x1c]
mov dword [eax], 0
mov dword [eax + 4], 0
mov byte [eax + 8], 0
mov dword [esi + 8], 0
mov eax, dword [esi + 8]
cmp eax, 0xb
ja 0x4129c7
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 [ebx + ecx]
mov ecx, 0xd09088dd
sub ecx, eax
add eax, 0x22
and eax, edx
or ecx, edx
not ecx
add ecx, edx
sub ecx, eax
mov dword [esi + 0x20], ecx
mov eax, dword [esi + 0x20]
add al, 0x12
mov ecx, dword [esi + 8]
mov byte [ebx + ecx], al
inc dword [esi + 8]
mov eax, dword [esi + 8]
cmp eax, 0xc
jb 0x412990
push ebx
push dword [edi]
call fcn.00402670
add esp, 8
mov ecx, dword [esi + 0x160]
mov dword [ecx], eax
mov ebx, dword [esi + 0x144]
mov dword [ebx], 0x63c0c5cc
mov eax, dword [esi + 0x30]
mov dword [eax], 0
mov word [eax + 4], 0
mov dword [esi + 8], 0
mov eax, dword [esi + 8]
cmp eax, 9
ja 0x412850
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 + 0xaef0290]
add eax, 0x90
and eax, ecx
or edx, ecx
sub edx, eax
mov dword [esi + 0x20], edx
mov eax, dword [esi + 0x20]
mov ecx, eax
xor ecx, 0xf
and eax, 0xf
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, 0xa
jb 0x412a10
jmp 0x412850
add ecx, 0xa
mov edi, eax
shr edi, 0xa
cmp eax, 0x19000
jb 0x412ba2
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov dword [esi + 4], edi
mov eax, edi
mov edx, 0x51eb851f
mul edx
shr edx, 5
imul ebx, edx, 0x64
mov eax, edi
sub eax, ebx
mov ebx, eax
and ebx, 2
mov edi, eax
or eax, 2
imul eax, ebx
xor ebx, 2
and edi, 0x7d
imul edi, ebx
movzx eax, word [edi + eax + 0x43d528]
mov word [ecx - 2], ax
add ecx, 0xfffffffe
cmp dword [esi + 4], 0x270f
mov edi, edx
ja 0x412a70
jmp 0x412ba4
mov edx, dword [ebx + edi*8 + 4]
cmp edx, ecx
jne 0x412eb2
xor eax, eax
cmp ecx, 0xc0000004
sete al
jmp dword [eax*4 + 0x44092c]
jmp case.0x411265.2
mov word [esi + 0x1d8], 0xc38
mov byte [esi + 0x1da], 0x80
mov dword [esi + 0x1db], 0
mov word [esi + 0x1df], 0
mov dword [esi + 0x34], 0
mov eax, dword [esi + 0x34]
cmp eax, 8
ja 0x412b70
mov edx, dword [esi + 0x34]
mov eax, dword [esi + 0x34]
movzx eax, byte [esi + eax + 0x1d8]
lea ecx, [edx - 0x633dfd15]
and ecx, eax
mov edi, 0x633dfd14
sub edi, edx
or edi, eax
add eax, edx
add eax, 0x9cc202eb
add edx, edi
add edx, 0x9cc202ec
mov edi, edx
and edi, ecx
xor ecx, edx
lea ecx, [ecx + edi*2]
mov edx, eax
not edx
and edx, ecx
not ecx
and ecx, eax
sub ecx, edx
mov dword [esi + 0x4c], ecx
mov eax, dword [esi + 0x4c]
add al, 0x93
mov ecx, dword [esi + 0x34]
mov byte [esi + ecx + 0x1d8], al
inc dword [esi + 0x34]
mov eax, dword [esi + 0x34]
cmp eax, 9
jb case.default.0x412b91
push 3
lea eax, [esi + 0x1d8]
push eax
push dword [esi + 4]
call fcn.00402900
add esp, 0xc
xor ecx, ecx
test eax, eax
sete cl
mov ebx, dword [esi + 0xe0]
jmp dword [ecx*4 + 0x44087c]
mov eax, dword [case.0x411a4f.20]
nop
nop
nop
jmp eax
mov edx, edi
mov edi, ecx
cmp edx, 9
ja 0x412bb8
movzx eax, byte [edx + str.0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ]
mov byte [edi - 1], al
dec edi
jmp 0x412bdd
mov eax, edx
and eax, 2
mov ecx, edx
or edx, 2
imul edx, eax
xor eax, 2
and ecx, 0xfffffffd
imul ecx, eax
movzx eax, word [ecx + edx + 0x43d528]
mov word [edi - 2], ax
add edi, 0xfffffffe
mov dword [esi + 4], edi
mov edi, dword [esi + 0x54]
mov dword [edi], 0x2b2a636b
mov dword [edi + 4], 0
mov byte [edi + 8], 0
mov dword [esi + 8], 0
mov eax, dword [esi + 8]
cmp eax, 8
ja 0x412c66
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov ecx, dword [esi + 8]
mov eax, dword [esi + 8]
movzx edx, byte [edi + eax]
add ecx, 0xdfb3dd25
mov eax, ecx
mov edi, edx
not edi
or edi, ecx
and ecx, edx
xor eax, edx
add edx, edi
inc edx
mov edi, edx
xor edi, ecx
sub eax, edi
mov edi, dword [esi + 0x54]
not edx
and edx, ecx
lea eax, [eax + edx*2]
mov dword [esi + 0x20], eax
mov eax, dword [esi + 0x20]
mov ecx, eax
xor ecx, 0xfc
and eax, 0x7c
lea eax, [ecx + eax*2]
inc al
mov ecx, dword [esi + 8]
mov byte [edi + ecx], al
inc dword [esi + 8]
mov eax, dword [esi + 8]
cmp eax, 9
jb 0x412c10
mov ebx, dword [esi + 0x138]
mov dword [ebx], 0xbdbaae93
mov dword [ebx + 4], 0x4f93bfa3
mov dword [ebx + 8], 0xbfbbb2b4
mov dword [ebx + 0xc], 0xab48b5b1
mov dword [ebx + 0x10], 0xb8a945b7
mov dword [ebx + 0x14], 0x8240bdb0
mov dword [ebx + 0x18], 0x888d9386
mov dword [ebx + 0x1c], 0x778b928d
mov dword [ebx + 0x20], 0x86898a86
mov dword [ebx + 0x24], 0x83709d89
mov dword [ebx + 0x28], 0x93806d9f
mov dword [ebx + 0x2c], 0x9c856991
mov dword [ebx + 0x30], 0x8d9f8f88
mov dword [ebx + 0x34], 0xee8c6156
mov dword [ebx + 0x38], 0x1be8e2f2
mov dword [ebx + 0x3c], 0xe2e5e6ea
mov dword [ebx + 0x40], 0xfe14f9ed
mov dword [ebx + 0x44], 0x29ebf7e5
mov word [ebx + 0x48], 0x6d0e
mov word [ebx + 0x4e], 0
mov dword [ebx + 0x4a], 0
mov dword [esi + 8], 0
mov eax, dword [esi + 8]
cmp eax, 0x4f
ja 0x412d4a
nop
nop
nop
nop
nop
mov eax, dword [esi + 8]
mov ecx, dword [esi + 8]
movzx ecx, byte [ebx + ecx]
lea edx, [eax + 0x89]
and edx, ecx
add eax, 0xe6e88489
or eax, ecx
sub eax, edx
mov ebx, dword [esi + 0x138]
mov dword [esi + 0x20], eax
mov eax, dword [esi + 0x20]
add al, 0x41
mov ecx, dword [esi + 8]
mov byte [ebx + ecx], al
inc dword [esi + 8]
mov eax, dword [esi + 8]
cmp eax, 0x50
jb 0x412d10
lea eax, [0x445c13]
cmp byte [eax + 1], 0
lea eax, [eax + 1]
jne 0x412d50
movzx ecx, byte [ebx]
test cl, cl
je 0x412d7f
xor edx, edx
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov byte [eax + edx], cl
movzx ecx, byte [ebx + edx + 1]
inc edx
test cl, cl
jne 0x412d70
add eax, edx
mov edx, dword [esi + 4]
mov byte [eax], 0
movzx ecx, byte [edx]
test cl, cl
je 0x412d9b
inc edx
nop
nop
nop
mov byte [eax], cl
inc eax
movzx ecx, byte [edx]
inc edx
test cl, cl
jne 0x412d90
mov byte [eax], 0
movzx ecx, byte [edi]
test cl, cl
je 0x412dbb
mov edx, dword [esi + 0x174]
nop
nop
nop
nop
nop
mov byte [eax], cl
inc eax
movzx ecx, byte [edx]
inc edx
test cl, cl
jne 0x412db0
mov byte [eax], 0
nop
nop
jmp dword [0x440a48]
mov eax, dword [esi + 0x5c]
mov edi, dword [eax]
xor eax, eax
test edi, edi
sete al
jmp dword [eax*4 + 0x440a4c]
mov eax, dword [case.0x413304.51]
nop
nop
jmp eax
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 + 0x440a64]
push dword [esi + 4]
call fcn.00408d50
add esp, 4
mov eax, dword [esi + 0xa4]
mov eax, dword [eax]
mov ecx, dword [case.0x413304.58]
nop
nop
nop
nop
nop
nop
nop
nop
jmp ecx
xor ecx, ecx
test eax, eax
sete cl
jmp dword [ecx*4 + 0x440a84]
push eax
call fcn.00408d50
add esp, 4
mov eax, dword [esi + 0x80]
mov eax, dword [eax]
xor ecx, ecx
test eax, eax
sete cl
jmp dword [ecx*4 + 0x440a8c]
xor eax, eax
cmp ebx, edi
sete al
jmp dword [eax*4 + 0x440a6c]
mov eax, dword [ebx - 0xc]
test eax, eax
je 0x412e6e
push eax
call fcn.00408d50
add esp, 4
mov eax, dword [ebx - 8]
add ebx, 0xfffffff4
test eax, eax
je 0x412e50
push eax
call fcn.00408d50
add esp, 4
jmp 0x412e50
mov eax, dword [esi + 0x80]
mov eax, dword [eax]
xor ecx, ecx
test eax, eax
sete cl
jmp dword [ecx*4 + 0x440a8c]
push eax
call fcn.00408d50
add esp, 4
mov ecx, dword [esi + 0xa0]
call fcn.00409640
jmp case.0x411a4f.20
push dword [esi + 0x74]
push 0
push 0
push 0x2b
push eax
push 5
push dword [0x446c28]
push edx
call fcn.00437df0
add esp, 0x20
xor ecx, ecx
cmp eax, 0xc0000004
sete cl
jmp dword [ecx*4 + 0x44092c]
jmp dword [0x440938]
jmp dword [0x440908]
mov edx, dword [esi + 0x108]
mov word [edx], 0xd0ec
mov byte [edx + 2], 0x44
mov dword [edx + 3], 0
mov dword [edx + 7], 0
mov dword [edx + 0xa], 0
mov dword [esi + 8], 0
mov eax, dword [esi + 8]
cmp eax, 0xd
ja 0x412f4a
nop
nop
nop
mov eax, dword [esi + 8]
mov ecx, dword [esi + 8]
movzx ecx, byte [edx + ecx]
add eax, 0x25e54f75
xor eax, ecx
mov dword [esi + 0x20], eax
mov eax, dword [esi + 0x20]
add al, 0xcd
mov ecx, dword [esi + 8]
mov byte [edx + ecx], al
inc dword [esi + 8]
mov eax, dword [esi + 8]
cmp eax, 0xe
jb 0x412f20
push 3
push edx
push edi
call fcn.00402900
add esp, 0xc
jmp case.0x410e3b.3
push 3
push edx
push edi
call fcn.00402900
add esp, 0xc
test eax, eax
sete bl
jmp dword [0x440910]
mov edx, dword [esi + 0x108]
mov word [edx], 0xd0ec
mov byte [edx + 2], 0x44
mov dword [edx + 3], 0
mov dword [edx + 7], 0
mov dword [edx + 0xa], 0
mov dword [esi + 8], 0
mov eax, dword [esi + 8]
cmp eax, 0xd
ja 0x412f60
nop
nop
nop
nop
nop
nop
mov eax, dword [esi + 8]
mov ecx, dword [esi + 8]
movzx ecx, byte [edx + ecx]
add eax, 0x25e54f75
xor eax, ecx
mov dword [esi + 0x20], eax
mov eax, dword [esi + 0x20]
add al, 0xcd
mov ecx, dword [esi + 8]
mov byte [edx + ecx], al
inc dword [esi + 8]
mov eax, dword [esi + 8]
cmp eax, 0xe
jb 0x412fb0
jmp 0x412f60
push eax
call fcn.00408d50
add esp, 4
mov eax, dword [esi + 0x7c]
mov eax, dword [eax]
xor ecx, ecx
test eax, eax
sete cl
jmp dword [ecx*4 + 0x4409cc]
mov edi, dword [esi + 0x78]
jmp dword [0x4409d8]
mov eax, edx
mov ecx, dword [esi + 4]
xor eax, ecx
not ecx
and ecx, edx
add ecx, ecx
mov dword [esi + 4], ecx
mov dword [esi + 0x30], eax
sub ecx, eax
sar ecx, 1
mov eax, dword [esi + 0xdc]
mov eax, dword [eax]
mov dword [esi + 0x1c], ecx
add eax, ecx
mov ecx, eax
and ecx, 1
xor eax, 1
lea ecx, [eax + ecx*2]
lea eax, [ecx + ecx]
test ecx, ecx
jns 0x41303c
mov eax, 0xffffffff
push eax
call fcn.00408d40
add esp, 4
mov edi, eax
mov eax, dword [esi + 0xd8]
mov dword [eax], edi
mov eax, dword [esi + 0x94]
mov edx, dword [eax]
mov eax, dword [esi + 4]
cmp eax, dword [esi + 0x30]
je 0x41311b
mov dword [esi + 0x30], edx
mov eax, dword [esi + 0x48]
mov ecx, dword [eax + 4]
mov ebx, dword [esi + 0x1c]
lea edx, [ebx - 1]
mov eax, ebx
and eax, 3
je 0x4130b2
mov dword [esi + 0x48], edx
xor edx, edx
mov dword [esi + 4], eax
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
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 + 4], edx
jne 0x413090
mov ebx, dword [esi + 0x1c]
sub ebx, edx
mov edx, dword [esi + 0x48]
cmp edx, 3
mov edx, dword [esi + 0x30]
jb 0x41311b
nop
nop
nop
nop
nop
nop
mov dword [esi + 0x1c], ebx
movzx eax, word [ecx]
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 ebx, dword [esi + 0x1c]
mov word [edi + 6], dx
add edi, 8
add ebx, 0xfffffffc
jne 0x4130c0
mov edx, dword [esi + 0x30]
movzx ecx, word [edx]
test cx, cx
je 0x413141
add edx, 2
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov word [edi], cx
add edi, 2
movzx ecx, word [edx]
add edx, 2
test cx, cx
jne 0x413130
mov word [edi], 0
mov eax, dword [esi + 0x94]
mov eax, dword [eax]
xor ecx, ecx
test eax, eax
sete cl
jmp dword [ecx*4 + 0x440964]
push eax
call fcn.00408d50
add esp, 4
mov eax, dword [esi + 0xd8]
mov ebx, dword [eax]
sub edi, ebx
mov ecx, edi
sar ecx, 1
and edi, 2
xor ecx, 1
add ecx, edi
lea eax, [ecx + ecx]
test ecx, ecx
jns 0x413187
mov eax, 0xffffffff
push eax
call fcn.00408d40
add esp, 4
mov ecx, dword [esi + 0x7c]
mov dword [ecx], eax
push eax
push ebx
call fcn.00432cc0
add esp, 8
xor eax, eax
test ebx, ebx
sete al
jmp dword [eax*4 + 0x44096c]
jmp dword [0x440974]
mov dword [eax], edi
mov eax, dword [esi + 0x12c]
mov ebx, dword [eax]
push ebx
call fcn.00402970
add esp, 4
xor ecx, ecx
cmp edi, eax
setb cl
jmp dword [ecx*4 + 0x440984]
push edi
push ebx
call fcn.00402950
add esp, 8
push eax
call fcn.004026b0
add esp, 4
xor ecx, ecx
test eax, eax
sete cl
jmp dword [ecx*4 + 0x44098c]
mov ecx, eax
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov edi, ecx
inc ecx
cmp byte [edi], 0
jne 0x413210
mov dword [esi + 0x30], eax
sub edi, eax
mov eax, edi
inc eax
lea eax, [edi + edi + 2]
jns 0x41322b
mov eax, 0xffffffff
push eax
call fcn.00408d40
add esp, 4
mov ebx, eax
mov eax, dword [esi + 0x118]
mov dword [eax], ebx
mov eax, edi
mov edx, dword [esi + 0x30]
test edx, edx
jne 0x413259
mov eax, edx
not eax
xor ecx, ecx
nop
nop
nop
inc eax
cmp byte [ecx], 0
lea ecx, [ecx + 1]
jne 0x413250
mov dword [esi + 0x20], 0
lea ecx, [ebx + edi*2]
mov dword [esi + 0x1c], ecx
cmp ecx, ebx
mov dword [esi + 4], ebx
jbe 0x4132c0
test eax, eax
jle 0x4132c0
mov ebx, edx
add ebx, eax
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp byte [edx], 0
je 0x4132c0
lea eax, [esi + 0x20]
push eax
push ebx
push edx
mov edi, edx
call fcn.0040ecd0
add esp, 0xc
movzx ecx, word [esi + 0x20]
mov edx, dword [esi + 4]
mov word [edx], cx
add edx, 2
mov dword [esi + 4], edx
cmp edx, dword [esi + 0x1c]
jae 0x4132c0
add edi, eax
cmp edi, ebx
mov edx, edi
jb case.default.0x413304
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esi + 4]
mov word [eax], 0
mov eax, dword [esi + 0x118]
mov edi, dword [eax]
push 0
push 0
mov eax, dword [esi + 0x114]
push dword [eax]
mov eax, dword [esi + 0x110]
push dword [eax]
push edi
mov eax, dword [esi + 0x7c]
push dword [eax]
mov eax, dword [esi + 0x9c]
push dword [eax]
push dword [esi + 0x78]
call fcn.0041b030
add esp, 0x20
xor eax, eax
test edi, edi
sete al
jmp dword [eax*4 + 0x440994]
push edi
call fcn.00408d50
add esp, 4
mov eax, dword [case.0x413304.1]
nop
nop
nop
nop
nop
nop
nop
jmp eax
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
jmp dword [0x4409b4]
mov eax, dword [esi + 0x11c]
mov edi, dword [eax]
inc edi
jmp 0x4131c0
mov eax, dword [esi + 0x9c]
mov eax, dword [eax]
xor ecx, ecx
test eax, eax
sete cl
jmp dword [ecx*4 + 0x4409c4]
mov eax, dword [esi + 0x7c]
mov eax, dword [eax]
xor ecx, ecx
test eax, eax
sete cl
jmp dword [ecx*4 + 0x4409cc]
push eax
call fcn.00408d50
add esp, 4
mov edi, dword [esi + 0x78]
jmp dword [0x4409d8]
mov ecx, edi
call fcn.00409fd0
mov ecx, edi
call fcn.00409640
nop
nop
nop
mov ecx, edi
call fcn.00409fd0
mov ecx, edi
call fcn.00409640
jmp dword [0x4409e0]
mov eax, dword [case.0x413304.22]
nop
nop
nop
nop
nop
nop
nop
jmp eax
mov eax, dword [case.0x412ed7.6]
nop
nop
nop
nop
nop
nop
nop
nop
nop
jmp eax
xor edx, edx
movzx edi, dl
mov edx, eax
jmp dword [edi*4 + 0x440954]
add ecx, 0xfffffffe
xor edx, edx
cmp ecx, dword [esi + 4]
setae dl
jmp dword [edx*4 + 0x44094c]
xor ebx, ebx
cmp word [ecx], 0
setne bl
mov edx, eax
jmp dword [ebx*4 + 0x440954]
xor ebx, ebx
cmp word [ecx], 0x5c
sete bl
mov edx, ecx
jmp dword [ebx*4 + 0x44095c]
mov edi, dword [esi + 0x48]
mov dword [eax], ebx
push edi
call fcn.00402970
add esp, 4
xor ecx, ecx
cmp ebx, eax
setb cl
jmp dword [ecx*4 + 0x44089c]
mov eax, dword [esi + 0xb0]
mov eax, dword [eax]
xor ecx, ecx
test eax, eax
sete cl
jmp dword [ecx*4 + 0x4408bc]
not ecx
shr ecx, 0x1f
jmp dword [ecx*4 + 0x440944]
mov eax, dword [esi + 0x70]
push dword [eax]
call fcn.004360f0
add esp, 4
mov ecx, dword [esi + 0x50]
call fcn.00436590
nop
nop
nop
nop
nop
nop
nop
nop
jmp dword [0x440b28]
mov ebx, dword [esi + 0x1c0]
inc ebx
mov ecx, dword [esi + 0x1bc]
jmp 0x410a00
mov eax, dword [esi + 0xe8]
mov ecx, dword [eax]
mov edi, 0xfffffffe
xor eax, eax
nop
nop
nop
nop
nop
nop
nop
nop
nop
add edi, 2
cmp byte [ecx + eax], 0
lea eax, [eax + 1]
jne 0x413640
mov dword [esi + 0x1c], ecx
lea ebx, [eax - 1]
mov ecx, dword [esi + 0xdc]
mov dword [ecx], ebx
lea ecx, [edi + 2]
test eax, eax
jns 0x413666
mov ecx, 0xffffffff
push ecx
call fcn.00408d40
add esp, 4
mov edx, eax
mov eax, dword [esi + 0x94]
mov dword [eax], edx
mov ecx, dword [esi + 0x1c]
test ecx, ecx
jne 0x413699
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 0x413690
mov dword [esi + 0x20], 0
add edi, edx
cmp edi, edx
jbe 0x4136e4
test ebx, ebx
jle 0x4136e4
add ebx, ecx
mov dword [esi + 4], ebx
nop
cmp byte [ecx], 0
je 0x4136e4
lea eax, [esi + 0x20]
push eax
push dword [esi + 4]
push ecx
mov ebx, ecx
mov dword [esi + 0x1c], edx
call fcn.0040ecd0
mov edx, dword [esi + 0x1c]
add esp, 0xc
movzx ecx, word [esi + 0x20]
mov word [edx], cx
add edx, 2
cmp edx, edi
jae 0x4136e4
add ebx, eax
cmp ebx, dword [esi + 4]
mov ecx, ebx
jb 0x4136b0
mov word [edx], 0
mov eax, dword [esi + 0x70]
mov eax, dword [eax]
mov ecx, dword [eax + 4]
mov dword [esi + 4], ecx
mov dword [esi + 0x48], eax
movzx eax, word [eax]
and eax, 0xfffffffe
add eax, ecx
add eax, 0xfffffffe
xor edx, edx
cmp eax, ecx
setae dl
mov ecx, eax
jmp dword [edx*4 + 0x44094c]
cmp dword [edx + ecx*8], 0xd9a9c0b
je 0x413730
inc ecx
cmp edi, ecx
jne 0x413720
jmp case.0x412ed7.3
mov ecx, dword [edx + ecx*8 + 4]
cmp ecx, ebx
je case.0x412ed7.3
push 0
push dword [esi + 0x1c]
push eax
push 0x2b
push dword [esi + 4]
push 5
push dword [0x446c28]
push ecx
call fcn.00437df0
add esp, 0x20
mov edi, dword [esi + 0x74]
mov eax, dword [edi]
add eax, 2
push eax
call fcn.00435ff0
add esp, 4
mov ebx, eax
mov eax, dword [esi + 0x70]
mov dword [eax], ebx
mov eax, dword [edi]
add eax, 2
mov ecx, dword [esi + 0x50]
mov ecx, dword [ecx]
mov dword [esi + 4], ecx
mov dword [esi + 0x20], 0x2050407
mov dword [esi + 0x24], 0
mov dword [esi + 0x28], 0
mov dword [esi + 0x2b], 0
mov dword [esi + 0x38], 0
mov ecx, dword [esi + 0x38]
cmp ecx, 0xe
ja 0x4137f4
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov ecx, dword [esi + 0x38]
mov edx, dword [esi + 0x38]
movzx edx, byte [esi + edx + 0x20]
lea edi, [ecx + 0x81]
add ecx, edx
and edi, edx
add edi, edi
sub ecx, edi
add ecx, 0x3c4ba981
mov dword [esi + 8], ecx
mov ecx, dword [esi + 8]
mov edx, ecx
xor edx, 0x78
and ecx, 0x78
lea ecx, [edx + ecx*2]
inc cl
mov edx, dword [esi + 0x38]
mov byte [esi + edx + 0x20], cl
inc dword [esi + 0x38]
mov ecx, dword [esi + 0x38]
cmp ecx, 0xf
jb 0x4137b0
mov dword [esi + 0x1c], ebx
mov ecx, dword [esi + 0x20]
mov ebx, dword [0x446c20]
test ebx, ebx
je 0x41382c
xor edi, edi
mov edx, dword [0x446c24]
nop
nop
nop
nop
cmp dword [edx + edi*8], 0xd9a9c0b
je 0x413820
inc edi
cmp ebx, edi
jne 0x413810
jmp 0x41382c
mov edx, dword [edx + edi*8 + 4]
cmp edx, ecx
jne 0x4138f2
jmp dword [0x44093c]
mov edi, dword [esi + 0x74]
mov eax, dword [edi]
add eax, 2
push eax
call fcn.00435ff0
add esp, 4
mov ecx, dword [esi + 0x70]
mov dword [ecx], eax
mov ecx, dword [edi]
mov edx, ecx
and edx, 2
xor ecx, 2
lea ecx, [ecx + edx*2]
mov dword [esi + 0x1c], ecx
mov ecx, dword [esi + 0x50]
mov ecx, dword [ecx]
mov dword [esi + 4], ecx
mov dword [esi + 0x20], 0x2050407
mov dword [esi + 0x24], 0
mov dword [esi + 0x28], 0
mov dword [esi + 0x2b], 0
mov dword [esi + 0x38], 0
mov ecx, dword [esi + 0x38]
cmp ecx, 0xe
ja 0x4138d4
nop
nop
nop
nop
nop
mov ecx, dword [esi + 0x38]
mov edx, dword [esi + 0x38]
movzx edx, byte [esi + edx + 0x20]
lea edi, [ecx + 0x81]
add ecx, edx
and edi, edx
add edi, edi
sub ecx, edi
add ecx, 0x3c4ba981
mov dword [esi + 8], ecx
mov ecx, dword [esi + 8]
mov edx, ecx
xor edx, 0x78
and ecx, 0x78
lea ecx, [edx + ecx*2]
inc cl
mov edx, dword [esi + 0x38]
mov byte [esi + edx + 0x20], cl
inc dword [esi + 0x38]
mov ecx, dword [esi + 0x38]
cmp ecx, 0xf
jb 0x413890
mov edi, dword [0x446c20]
test edi, edi
je case.0x412ed7.3
mov ebx, dword [esi + 0x20]
xor ecx, ecx
mov edx, dword [0x446c24]
jmp 0x413720
push 0
push eax
push dword [esi + 0x1c]
push 0x2b
push dword [esi + 4]
push 5
push dword [0x446c28]
push edx
call fcn.00437df0
add esp, 0x20
mov ecx, eax
jmp dword [0x44093c]
mov eax, dword [esi + 0xe4]
mov eax, dword [eax]
mov ebx, 0xffffffff
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp byte [eax + ebx + 1], 0
lea ebx, [ebx + 1]
jne 0x413930
lea edx, [eax + ebx]
test ebx, ebx
mov dword [esi + 0x1c], edx
mov dword [esi + 0x48], eax
mov dword [esi + 0x58], ebx
jle 0x41398a
xor ebx, ebx
cmp byte [eax], 0
je 0x41398c
xor ebx, ebx
mov edi, dword [esi + 0x48]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov dword [esi + 0x20], 0
lea eax, [esi + 0x20]
push eax
push edx
push edi
call fcn.0040ecd0
mov edx, dword [esi + 0x1c]
add esp, 0xc
lea ecx, [edi + eax]
inc ebx
cmp ecx, edx
jae 0x41398c
cmp byte [edi + eax], 0
mov edi, ecx
jne 0x413960
jmp 0x41398c
xor ebx, ebx
mov eax, ebx
inc eax
lea eax, [ebx + ebx + 2]
jns 0x41399a
mov eax, 0xffffffff
push eax
call fcn.00408d40
add esp, 4
mov ecx, eax
mov eax, dword [esi + 0x9c]
mov dword [eax], ecx
mov dword [esi + 0x20], 0
lea eax, [ecx + ebx*2]
mov dword [esi + 0x30], eax
cmp eax, ecx
mov dword [esi + 4], ecx
jbe 0x413a04
cmp dword [esi + 0x58], 0
mov ecx, dword [esi + 0x48]
mov edi, dword [esi + 0x1c]
jle 0x413a04
nop
nop
nop
cmp byte [ecx], 0
je 0x413a04
lea eax, [esi + 0x20]
push eax
push edi
push ecx
mov ebx, ecx
call fcn.0040ecd0
add esp, 0xc
movzx ecx, word [esi + 0x20]
mov edx, dword [esi + 4]
mov word [edx], cx
mov ecx, edx
add ecx, 2
cmp ecx, dword [esi + 0x30]
mov dword [esi + 4], ecx
jae 0x413a04
add ebx, eax
cmp ebx, edi
mov ecx, ebx
jb 0x4139d0
mov eax, dword [esi + 4]
mov word [eax], 0
mov ecx, dword [esi + 0x78]
push 1
call fcn.00409600
xor edi, edi
mov eax, dword [esi + 0x11c]
jmp 0x4131c0
lea eax, [edx + 1]
cmp byte [edx], 0
je 0x413a2f
mov edx, eax
jmp 0x413a23
mov eax, edx
sub eax, ecx
xor ebx, ebx
mov dword [esi + 0xa8], eax
test eax, eax
mov dword [esi + 4], edx
jle 0x413a78
cmp byte [ecx], 0
je 0x413a78
xor ebx, ebx
mov edi, dword [esi + 0x6c]
nop
nop
nop
nop
mov dword [esi + 0x20], 0
lea eax, [esi + 0x20]
push eax
push edx
push edi
call fcn.0040ecd0
mov edx, dword [esi + 4]
add esp, 0xc
lea ecx, [edi + eax]
inc ebx
cmp ecx, edx
jae 0x413a78
cmp byte [edi + eax], 0
mov edi, ecx
jne 0x413a50
mov eax, ebx
inc eax
lea eax, [ebx + ebx + 2]
jns 0x413a86
mov eax, 0xffffffff
push eax
call fcn.00408d40
add esp, 4
mov ecx, eax
mov eax, dword [esi + 0xb0]
mov dword [eax], ecx
mov dword [esi + 0x20], 0
lea eax, [ecx + ebx*2]
mov dword [esi + 0x1c], ecx
mov dword [esi + 0x30], eax
cmp eax, ecx
jbe 0x413af0
cmp dword [esi + 0xa8], 0
mov ebx, dword [esi + 0x6c]
mov edi, dword [esi + 4]
jle 0x413af0
nop
nop
nop
nop
cmp byte [ebx], 0
je 0x413af0
lea eax, [esi + 0x20]
push eax
push edi
push ebx
call fcn.0040ecd0
add esp, 0xc
movzx ecx, word [esi + 0x20]
mov edx, dword [esi + 0x1c]
mov word [edx], cx
mov ecx, edx
add ecx, 2
cmp ecx, dword [esi + 0x30]
mov dword [esi + 0x1c], ecx
jae 0x413af0
add ebx, eax
cmp ebx, edi
jb 0x413ac0
mov eax, dword [esi + 0x1c]
mov word [eax], 0
mov ecx, dword [esi + 0xac]
push 1
call fcn.00409600
xor ebx, ebx
mov eax, dword [esi + 0xc0]
jmp 0x413419
push ebx
call fcn.00408d50
add esp, 4
push ebx
call fcn.00408d50
add esp, 4
jmp dword [0x44097c]
mov ecx, dword [case.0x4109d9.5]
xor eax, eax
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
jmp ecx
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
lea esi, [esp + 0x110]
mov dword [esp + 0x34], edi
jmp 0x413b91
inc ebx
push edi
call fcn.00402970
add esp, 4
xor ecx, ecx
cmp ebx, eax
setb cl
jmp dword [ecx*4 + 0x440b3c]
push ebx
push edi
call fcn.00402980
add esp, 8
mov dword [esp + 0xc], eax
jmp dword [0x440b48]
mov word [esp + 0x110], 0xa129
mov dword [esp + 0x116], 0
mov dword [esp + 0x112], 0
mov dword [esp + 0xa8], 0
mov eax, dword [esp + 0xa8]
cmp eax, 9
ja 0x413c51
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 + 0x1b]
add eax, ecx
and edx, ecx
add edx, edx
sub eax, edx
add eax, 0xc4378e1b
mov dword [esp + 0x40], eax
mov eax, dword [esp + 0x40]
add al, 0x43
mov ecx, dword [esp + 0xa8]
mov byte [esp + ecx + 0x110], al
inc dword [esp + 0xa8]
mov eax, dword [esp + 0xa8]
cmp eax, 0xa
jb 0x413c00
push 2
push esi
push dword [esp + 0x14]
call fcn.00402900
add esp, 0xc
jmp case.0x411a4f.31
push 2
push esi
push dword [esp + 0x14]
call fcn.00402900
add esp, 0xc
jmp dword [0x440b50]
mov word [esp + 0x110], 0xa129
mov dword [esp + 0x116], 0
mov dword [esp + 0x112], 0
mov dword [esp + 0xa8], 0
mov eax, dword [esp + 0xa8]
cmp eax, 9
ja 0x413c70
nop
nop
nop
nop
mov eax, dword [esp + 0xa8]
mov ecx, dword [esp + 0xa8]
movzx ecx, byte [esp + ecx + 0x110]
lea edx, [eax + 0x1b]
add eax, ecx
and edx, ecx
add edx, edx
sub eax, edx
add eax, 0xc4378e1b
mov dword [esp + 0x40], eax
mov eax, dword [esp + 0x40]
add al, 0x43
mov ecx, dword [esp + 0xa8]
mov byte [esp + ecx + 0x110], al
inc dword [esp + 0xa8]
mov eax, dword [esp + 0xa8]
cmp eax, 0xa
jb 0x413cc0
jmp 0x413c70
mov dword [esp + 0x30], ebx
xor ecx, ecx
test eax, eax
setne cl
mov bl, 1
jmp dword [ecx*4 + 0x440b54]
mov word [esp + 0x40], 0x796c
mov byte [esp + 0x42], 0x84
mov dword [esp + 0x43], 0
mov dword [esp + 0x46], 0
mov dword [esp], 0
mov eax, dword [esp]
cmp eax, 9
ja 0x413d9b
nop
mov eax, dword [esp]
mov ecx, dword [esp]
movzx ecx, byte [esp + ecx + 0x40]
lea edx, [eax + 0x41]
and edx, ecx
mov esi, 0x8a103fbe
sub esi, eax
or esi, ecx
not esi
add esi, ecx
sub esi, edx
mov dword [esp + 0x10], esi
mov eax, dword [esp + 0x10]
add al, 0x39
mov ecx, dword [esp]
mov byte [esp + ecx + 0x40], al
inc dword [esp]
mov eax, dword [esp]
cmp eax, 0xa
jb 0x413d60
push 3
lea eax, [esp + 0x44]
push eax
push dword [esp + 0x14]
call fcn.00402900
add esp, 0xc
xor ecx, ecx
test eax, eax
setne cl
lea esi, [esp + 0x110]
jmp dword [ecx*4 + 0x440b5c]
movzx eax, bl
mov ebx, dword [esp + 0x30]
jmp dword [eax*4 + 0x440b64]
mov word [esp + 0xa8], 0x658d
mov dword [esp + 0xae], 0
mov dword [esp + 0xaa], 0
mov dword [esp], 0
mov eax, dword [esp]
cmp eax, 9
ja 0x413e4c
nop
mov eax, dword [esp]
mov ecx, dword [esp]
movzx ecx, byte [esp + ecx + 0xa8]
lea edx, [eax + 0x3611c931]
add eax, 0x31
and eax, ecx
or edx, ecx
sub edx, eax
mov dword [esp + 0x10], edx
mov eax, dword [esp + 0x10]
add al, 0xa9
mov ecx, dword [esp]
mov byte [esp + ecx + 0xa8], al
inc dword [esp]
mov eax, dword [esp]
cmp eax, 0xa
jb 0x413e10
push 3
lea eax, [esp + 0xac]
push eax
push dword [esp + 0x14]
call fcn.00402900
add esp, 0xc
xor ecx, ecx
test eax, eax
sete cl
mov ebx, dword [esp + 0x30]
jmp dword [ecx*4 + 0x440b64]
mov word [esp + 0x110], 0x59d
mov dword [esp + 0x112], 0
mov dword [esp + 0x116], 0
mov dword [esp + 0x119], 0
mov dword [esp + 0xa8], 0
mov eax, dword [esp + 0xa8]
cmp eax, 0xc
ja 0x413f10
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 - 0x70b906ab]
add eax, 0x55
and eax, ecx
or edx, ecx
sub edx, eax
mov dword [esp + 0x40], edx
mov eax, dword [esp + 0x40]
add al, 0xad
mov ecx, dword [esp + 0xa8]
mov byte [esp + ecx + 0x110], al
inc dword [esp + 0xa8]
mov eax, dword [esp + 0xa8]
cmp eax, 0xd
jb 0x413ec0
push esi
push dword [esp + 0x10]
call fcn.00402670
add esp, 8
mov esi, eax
mov word [esp + 0x110], 0x392c
mov byte [esp + 0x112], 0xb4
mov dword [esp + 0x113], 0
mov dword [esp + 0x117], 0
mov byte [esp + 0x11b], 0
mov dword [esp + 0xa8], 0
mov eax, dword [esp + 0xa8]
cmp eax, 0xb
ja 0x413fc2
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 - 0x5eb7b117]
add eax, 0xe9
and eax, ecx
or edx, ecx
sub edx, eax
mov dword [esp + 0x40], edx
mov eax, dword [esp + 0x40]
add al, 0xa1
mov ecx, dword [esp + 0xa8]
mov byte [esp + ecx + 0x110], al
inc dword [esp + 0xa8]
mov eax, dword [esp + 0xa8]
cmp eax, 0xc
jb 0x413f70
lea eax, [esp + 0x110]
push eax
push dword [esp + 0x10]
call fcn.004026d0
add esp, 8
fnstcw word [esp + 0xa6]
movzx eax, word [esp + 0xa6]
or eax, 0xc00
mov word [esp + 0xf6], ax
fldcw word [esp + 0xf6]
fistp dword [esp + 0x108]
fldcw word [esp + 0xa6]
mov eax, dword [esp + 0x108]
mov dword [esp + 0x38], eax
mov word [esp + 0x110], 0x31d5
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 0x4140bf
nop
nop
nop
nop
mov eax, dword [esp + 0xa8]
mov ecx, dword [esp + 0xa8]
movzx edx, byte [esp + ecx + 0x110]
lea ecx, [eax + edx]
add ecx, 0xfa9fef8
add eax, 0xfa9fef8
and eax, edx
add eax, eax
mov edx, ecx
not edx
and edx, eax
not eax
and eax, ecx
sub eax, edx
mov dword [esp + 0x40], eax
mov eax, dword [esp + 0x40]
add al, 0x38
mov ecx, dword [esp + 0xa8]
mov byte [esp + ecx + 0x110], al
inc dword [esp + 0xa8]
mov eax, dword [esp + 0xa8]
cmp eax, 0xf
jb 0x414060
lea eax, [esp + 0x110]
push eax
push dword [esp + 0x10]
call fcn.004026d0
add esp, 8
mov eax, 0xffffffff
mov edx, esi
nop
nop
nop
nop
nop
nop
cmp byte [edx + eax + 1], 0
lea eax, [eax + 1]
jne 0x4140e0
fnstcw word [esp + 0xa4]
movzx ecx, word [esp + 0xa4]
or ecx, 0xc00
mov word [esp + 0xf4], cx
fldcw word [esp + 0xf4]
fistp dword [esp + 0x104]
fldcw word [esp + 0xa4]
mov ecx, dword [esp + 0x104]
mov dword [esp + 0x2c], ecx
mov dword [esp + 0x40], 0
lea ecx, [esp + 0x110]
test eax, eax
jle 0x414190
mov esi, edx
add esi, eax
xor edi, edi
lea ecx, [esp + 0x110]
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp byte [edx], 0
je 0x414190
lea eax, [esp + 0x40]
push eax
push esi
push edx
mov ebx, edx
mov dword [esp + 0x14], ecx
call fcn.0040ecd0
add esp, 0xc
movzx ecx, word [esp + 0x40]
mov edx, dword [esp + 8]
mov word [edx], cx
mov ecx, dword [esp + 8]
add ecx, 2
cmp edi, 0x3fd
ja 0x414190
add ebx, eax
inc edi
cmp ebx, esi
mov edx, ebx
jb case.default.0x4141c0
nop
nop
mov word [ecx], 0
lea eax, [esp + 0x10c]
push eax
lea eax, [esp + 0xf4]
push eax
lea esi, [esp + 0x118]
push esi
call fcn.0040bd40
add esp, 0xc
movzx eax, al
mov edi, dword [esp + 0x34]
mov ebx, dword [esp + 0x30]
jmp dword [eax*4 + 0x440b6c]
xor eax, eax
cmp dword [esp + 0x2c], 0
sete al
mov dword [esp + 8], 0
mov dword [esp + 0x2c], 0
mov dword [esp + 0x100], eax
jmp dword [eax*4 + 0x440b74]
mov byte [esp + 0x40], 0xbc
mov eax, dword [case.0x4141c0.7]
lea ecx, [esp + 0x42]
nop
nop
nop
mov word [ecx + 4], 0
mov dword [ecx], 0
jmp eax
mov byte [esp + 0x41], 0x4d
lea esi, [esp + 0x40]
jmp dword [0x440b8c]
mov esi, dword [esp + 8]
mov edi, dword [esp + 0x2c]
jmp dword [0x440ccc]
lea edi, [esp + 0x40]
push edi
push dword [esp + 0x10]
call fcn.00402670
add esp, 8
mov dword [esp + 0xa0], eax
mov dword [esp + 0xec], eax
mov word [esp + 0x40], 0xf381
mov byte [esp + 0x42], 0x62
mov dword [esp + 0x43], 0
mov dword [esp + 0x47], 0
mov dword [esp + 0x4a], 0
mov dword [esp + 0x10], 0
mov eax, dword [esp + 0x10]
cmp eax, 0xd
ja 0x4142ce
nop
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x10]
movzx esi, byte [esp + ecx + 0x40]
lea ecx, [eax + 0x6613d1b0]
mov edx, ecx
and edx, esi
add eax, 0xb0
or eax, ecx
xor ecx, esi
and eax, esi
add eax, edx
sub ecx, eax
lea eax, [ecx + edx*2]
mov dword [esp + 0xa8], eax
mov eax, dword [esp + 0xa8]
add al, 0x30
mov ecx, dword [esp + 0x10]
mov byte [esp + ecx + 0x40], al
inc dword [esp + 0x10]
mov eax, dword [esp + 0x10]
cmp eax, 0xe
jb 0x414280
push edi
push dword [esp + 0x10]
call fcn.00402670
add esp, 8
mov edx, eax
mov eax, 0xfffffffe
mov ecx, dword [esp + 8]
mov esi, dword [esp + 0xa0]
nop
nop
nop
cmp word [ecx + eax + 2], 0
lea eax, [eax + 2]
jne case.default.0x414308
sar eax, 1
xor ecx, ecx
test esi, esi
setne cl
mov dword [esp + 0xc], ecx
jmp dword [ecx*4 + 0x440c44]
xor ebx, ebx
jmp 0x41432b
mov ecx, dword [esp + 0xec]
nop
nop
nop
nop
nop
nop
mov ebx, ecx
inc ecx
cmp byte [ebx], 0
jne 0x414320
sub ebx, esi
inc ebx
mov ecx, dword [case.0x4141c0.58]
nop
nop
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 + 0x38], edx
mov dword [esp + 0xf8], ecx
jmp dword [ecx*4 + 0x440c5c]
mov dword [esp + 0x3c], 0
jmp 0x41437f
mov ecx, edx
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov esi, ecx
inc ecx
cmp byte [esi], 0
jne 0x414370
sub esi, edx
inc esi
mov dword [esp + 0x3c], esi
mov dword [esp + 0x40], 0xb307b102
mov dword [esp + 0x44], 0xb712b50a
mov dword [esp + 0x48], 0x8b368934
mov dword [esp + 0x4c], 0x8ffc8dff
mov word [esp + 0x50], 0x8180
mov dword [esp + 0x52], 0
mov dword [esp + 0x56], 0
mov dword [esp + 0x5a], 0
mov word [esp + 0x5e], 0
mov dword [esp], 0
mov ecx, dword [esp]
cmp ecx, 0x1f
ja 0x414422
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov ecx, dword [esp]
mov edx, dword [esp]
movzx esi, byte [esp + edx + 0x40]
lea edi, [ecx + 0x1c66b398]
mov edx, esi
not edx
or edx, edi
and edi, esi
add edi, edx
neg edi
add ecx, edi
add ecx, 0x1c66b397
mov dword [esp + 0x10], ecx
mov ecx, dword [esp + 0x10]
add cl, 0xd8
mov edx, dword [esp]
mov byte [esp + edx + 0x40], cl
inc dword [esp]
mov ecx, dword [esp]
cmp ecx, 0x20
jb 0x4143e0
lea edx, [esp + 0x40]
lea edi, [esp + 0xa8]
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
nop
nop
nop
nop
nop
nop
cmp word [esp + ecx + 0xaa], 0
lea ecx, [ecx + 2]
jne 0x414460
sar ecx, 1
add eax, ebx
add eax, dword [esp + 0x3c]
lea edx, [eax + ecx]
add ecx, eax
add ecx, 2
lea eax, [edx + edx]
add eax, 4
test ecx, ecx
mov esi, dword [esp + 8]
jns 0x414491
mov eax, 0xffffffff
push eax
call fcn.00408d40
add esp, 4
mov edi, eax
movzx eax, word [esp + 0xa8]
mov dword [esp + 0x2c], edi
test ax, ax
je 0x4144d1
lea ecx, [esp + 0xaa]
mov edi, dword [esp + 0x2c]
nop
nop
nop
nop
nop
nop
nop
nop
mov word [edi], ax
add edi, 2
movzx eax, word [ecx]
add ecx, 2
test ax, ax
jne 0x4144c0
mov dword [edi], 0x220020
add edi, 4
movzx eax, word [esi]
test ax, ax
je 0x414501
lea ecx, [esi + 2]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov word [edi], ax
add edi, 2
movzx eax, word [ecx]
add ecx, 2
test ax, ax
jne 0x4144f0
lea esi, [edi + 2]
mov word [edi], 0x22
jmp dword [0x440c64]
jmp dword [0x440c70]
push dword [esp + 0xf0]
call fcn.004360f0
add esp, 4
not esi
shr esi, 0x1f
xor ecx, ecx
mov dword [esp + 0x2c], 0
jmp dword [esi*4 + 0x440c14]
xor eax, eax
cmp dword [esp + 0x38], 1
sete al
jmp dword [eax*4 + 0x440c1c]
mov dword [esp + 0x2c], 0
mov eax, dword [case.0x4141c0.42]
jmp case.0x415721.0
jmp dword [0x440c24]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov word [esp + 0x40], 0x1f16
mov byte [esp + 0x42], 0xa2
mov dword [esp + 0x43], 0
mov dword [esp + 0x47], 0
mov dword [esp + 0x4b], 0
mov byte [esp + 0x4f], 0
jmp dword [0x440c30]
jmp dword [0x440c34]
mov dword [esp + 0x10], 0
mov eax, dword [esp + 0x10]
cmp eax, 0xf
ja case.0x4141c0.50
nop
nop
nop
nop
nop
nop
mov ecx, dword [esp + 0x10]
mov eax, dword [esp + 0x10]
movzx edx, byte [esp + eax + 0x40]
lea esi, [ecx + 0x709348c6]
lea eax, [ecx + edx]
add eax, 0x709348c6
and esi, edx
mov edi, 0x8f6cb739
sub edi, ecx
or edi, edx
add edi, ecx
lea ecx, [esi + edi]
add ecx, 0x709348c7
mov edx, ecx
xor edx, eax
not ecx
and ecx, eax
add ecx, ecx
sub ecx, edx
mov dword [esp + 0xa8], ecx
mov eax, dword [esp + 0xa8]
add al, 0x96
mov ecx, dword [esp + 0x10]
mov byte [esp + ecx + 0x40], al
inc dword [esp + 0x10]
mov eax, dword [esp + 0x10]
cmp eax, 0x10
jb 0x4145c0
jmp case.0x4141c0.50
jmp dword [0x440c3c]
mov dword [esp + 0x10], 0
mov eax, dword [esp + 0x10]
cmp eax, 0xf
ja 0x414630
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov ecx, dword [esp + 0x10]
mov eax, dword [esp + 0x10]
movzx edx, byte [esp + eax + 0x40]
lea esi, [ecx + 0x709348c6]
lea eax, [ecx + edx]
add eax, 0x709348c6
and esi, edx
mov edi, 0x8f6cb739
sub edi, ecx
or edi, edx
add edi, ecx
lea ecx, [esi + edi]
add ecx, 0x709348c7
mov edx, ecx
xor edx, eax
not ecx
and ecx, eax
add ecx, ecx
sub ecx, edx
mov dword [esp + 0xa8], ecx
mov eax, dword [esp + 0xa8]
add al, 0x96
mov ecx, dword [esp + 0x10]
mov byte [esp + ecx + 0x40], al
inc dword [esp + 0x10]
mov eax, dword [esp + 0x10]
cmp eax, 0x10
jb 0x414650
jmp 0x414630
mov ecx, eax
nop
nop
nop
nop
nop
nop
nop
mov edi, ecx
inc ecx
cmp byte [edi], 0
jne 0x4146c0
mov ecx, edi
sub ecx, eax
xor ebx, ebx
mov dword [esp + 0xec], ecx
test ecx, ecx
jle 0x414719
mov dword [esp + 0xa0], eax
cmp byte [eax], 0
je 0x414720
xor ebx, ebx
mov esi, dword [esp + 0xa0]
nop
nop
mov dword [esp + 0x40], 0
lea eax, [esp + 0x40]
push eax
push edi
push esi
call fcn.0040ecd0
add esp, 0xc
lea ecx, [esi + eax]
inc ebx
cmp ecx, edi
jae 0x414720
cmp byte [esi + eax], 0
mov esi, ecx
jne 0x4146f0
jmp 0x414720
mov dword [esp + 0xa0], eax
mov eax, ebx
and eax, 1
mov ecx, ebx
xor ecx, 1
lea ecx, [ecx + eax*2]
lea eax, [ecx + ecx]
test ecx, ecx
jns 0x414739
mov eax, 0xffffffff
push eax
call fcn.00408d40
add esp, 4
mov dword [esp + 0x40], 0
lea ecx, [eax + ebx*2]
mov esi, eax
mov dword [esp + 0x3c], eax
mov dword [esp + 8], ecx
cmp ecx, eax
mov ecx, dword [esp + 0xa0]
jbe 0x4147b9
mov esi, dword [esp + 0x3c]
cmp dword [esp + 0xec], 0
jle 0x4147b9
mov esi, dword [esp + 0x3c]
mov dword [esp + 0x2c], ebx
nop
nop
nop
nop
nop
nop
nop
nop
cmp byte [ecx], 0
je 0x4147b9
lea eax, [esp + 0x40]
push eax
push edi
push ecx
mov ebx, ecx
call fcn.0040ecd0
add esp, 0xc
movzx ecx, word [esp + 0x40]
mov word [esi], cx
add esi, 2
cmp esi, dword [esp + 8]
jae 0x4147b5
add ebx, eax
cmp ebx, edi
mov ecx, ebx
mov ebx, dword [esp + 0x2c]
jb 0x414780
jmp 0x4147b9
mov ebx, dword [esp + 0x2c]
mov word [esi], 0
lea edi, [esp + 0x40]
push edi
push 0
push 0
push ebx
push dword [esp + 0x4c]
push 0
call dword [0x446c1c]
mov esi, dword [esp + 0x40]
lea eax, [esi + esi]
test esi, esi
jns 0x4147e4
mov eax, 0xffffffff
push eax
call fcn.00408d40
add esp, 4
push edi
push esi
mov esi, eax
push eax
push ebx
mov ebx, dword [esp + 0x4c]
push ebx
push 0
call dword [0x446c1c]
mov edi, dword [esp + 0x34]
jmp dword [0x440ba4]
push ebx
call fcn.00408d50
add esp, 4
mov ebx, dword [esp + 0x30]
jmp case.0x4141c0.35
mov dword [esp + 0x10], 0x6bf76dbe
mov dword [esp + 0x14], 0x67fb69e0
mov word [esp + 0x18], 0x6564
mov dword [esp + 0x1e], 0
mov dword [esp + 0x1a], 0
mov dword [esp + 4], 0
mov eax, dword [esp + 4]
cmp eax, 0x11
mov edi, dword [esp + 0x34]
ja 0x4148b2
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp + 4]
mov ecx, dword [esp + 4]
movzx ecx, byte [esp + ecx + 0x10]
mov edx, eax
and edx, 0xf7528532
xor eax, 0x77528532
lea eax, [eax + edx*2]
mov edx, eax
and edx, ecx
add eax, ecx
add edx, edx
sub eax, edx
mov dword [esp], eax
mov eax, dword [esp]
mov ecx, eax
xor ecx, 0xa1
and eax, 0x21
lea eax, [ecx + eax*2]
inc al
mov ecx, dword [esp + 4]
mov byte [esp + ecx + 0x10], al
inc dword [esp + 4]
mov eax, dword [esp + 4]
cmp eax, 0x12
jb 0x414860
mov esi, dword [esp + 8]
mov eax, esi
add eax, 0xfffffffe
nop
nop
nop
nop
nop
cmp word [eax + 2], 0
lea eax, [eax + 2]
jne 0x4148c0
movzx ecx, word [esp + 0x10]
test cx, cx
je 0x4148f3
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 0x4148e0
add eax, edx
mov word [eax], 0
mov eax, dword [case.0x4141c0.35]
nop
nop
nop
jmp eax
push 0x80
push 0x60
push 5
push 0
push 0x100002
lea eax, [esp + 0x18]
push eax
mov dword [esp + 0x20], esi
push esi
call fcn.0043a290
add esp, 0x1c
mov esi, eax
mov eax, dword [case.0x4141c0.39]
nop
nop
nop
nop
nop
jmp eax
mov eax, esi
not eax
shr eax, 0x1f
jmp dword [eax*4 + 0x440c0c]
push 0
push dword [esp + 0x110]
push dword [esp + 0xf8]
push dword [esp + 0x10]
call fcn.0043ab20
add esp, 0x10
mov esi, eax
mov eax, dword [esp + 4]
mov dword [esp + 0x40], 0x2050407
mov dword [esp + 0x44], 0
mov dword [esp + 0x48], 0
mov dword [esp + 0x4b], 0
mov dword [esp + 0x10], 0
mov ecx, dword [esp + 0x10]
cmp ecx, 0xe
ja 0x4149f1
nop
nop
nop
nop
nop
nop
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 + 0x81]
add ecx, edx
and edi, edx
add edi, edi
sub ecx, edi
add ecx, 0x3c4ba981
mov dword [esp + 0xa8], ecx
mov ecx, dword [esp + 0xa8]
mov edx, ecx
xor edx, 0x78
and ecx, 0x78
lea ecx, [edx + ecx*2]
inc cl
mov edx, dword [esp + 0x10]
mov byte [esp + edx + 0x40], cl
inc dword [esp + 0x10]
mov ecx, dword [esp + 0x10]
cmp ecx, 0xf
jb 0x4149a0
mov ecx, dword [0x446c20]
test ecx, ecx
je 0x414a3a
mov edx, dword [esp + 0x40]
xor edi, edi
mov ebx, dword [0x446c24]
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp dword [ebx + edi*8], 0x11081610
je 0x414a20
inc edi
cmp ecx, edi
jne 0x414a10
jmp 0x414a3a
mov ecx, dword [ebx + edi*8 + 4]
cmp ecx, edx
je 0x414a3a
push eax
push 1
push dword [0x446c28]
push ecx
call fcn.00437df0
add esp, 0x10
mov edi, dword [esp + 0x34]
mov ebx, dword [esp + 0x30]
jmp case.0x4141c0.40
mov word [ebx], 0
mov dword [esp + 0x10], 0x3358356d
mov dword [esp + 0x14], 0x2f433149
mov dword [esp + 0x18], 0x2b772d5e
mov dword [esp + 0x1c], 0x2728294e
mov dword [esp + 0x20], 0
mov dword [esp + 0x23], 0
mov dword [esp], 0
mov eax, dword [esp]
cmp eax, 0x16
ja 0x414ada
nop
nop
nop
nop
nop
mov esi, dword [esp]
mov eax, dword [esp]
movzx edx, byte [esp + eax + 0x10]
lea eax, [esi - 0x5d1d82d7]
mov ecx, eax
and ecx, edx
mov edi, 0xd6
sub edi, esi
add esi, 0x29
and esi, edx
and edi, eax
xor eax, edx
and edi, edx
sub eax, edi
sub ecx, esi
lea eax, [eax + ecx*2]
mov dword [esp + 0x40], eax
mov eax, dword [esp + 0x40]
add al, 0xe1
mov ecx, dword [esp]
mov byte [esp + ecx + 0x10], al
inc dword [esp]
mov eax, dword [esp]
cmp eax, 0x17
jb 0x414a90
movzx eax, word [esp + 0x10]
lea edx, [esp + 0x40]
mov esi, edx
test ax, ax
mov ebx, dword [esp + 0x30]
je 0x414b11
lea ecx, [esp + 0x12]
mov esi, edx
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov word [esi], ax
add esi, 2
movzx eax, word [ecx]
add ecx, 2
test ax, ax
jne 0x414b00
mov word [esi], 0
movzx eax, word [esp + 0xa8]
test ax, ax
je 0x414b41
lea ecx, [esp + 0xaa]
nop
nop
nop
nop
nop
nop
mov word [esi], ax
add esi, 2
movzx eax, word [ecx]
add ecx, 2
test ax, ax
jne 0x414b30
mov word [esi], 0
sub esi, edx
sar esi, 1
lea eax, [esp + 0xfc]
push eax
push 0
push 0
push esi
push edx
push 0
call dword [0x446c1c]
mov edi, dword [esp + 0xfc]
mov eax, edi
add eax, 4
lea eax, [edi + edi + 8]
jns 0x414b77
mov eax, 0xffffffff
push eax
call fcn.00408d40
add esp, 4
mov ecx, eax
lea eax, [esp + 0xfc]
push eax
push edi
mov dword [esp + 0x10], ecx
push ecx
push esi
lea eax, [esp + 0x50]
push eax
push 0
call dword [0x446c1c]
xor eax, eax
mov ecx, dword [esp + 0x38]
test ecx, ecx
sete al
jmp dword [eax*4 + 0x440bc4]
xor eax, eax
cmp ecx, 1
sete al
mov edi, dword [esp + 0x34]
jmp dword [eax*4 + 0x440bcc]
xor eax, eax
cmp ecx, 2
sete al
mov esi, dword [esp + 8]
jmp dword [eax*4 + 0x440bd4]
jmp dword [0x440bdc]
mov word [esp + 0x10], 0x59ae
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov dword [esp + 0x10], 0x5bea59ae
mov dword [esp + 0x14], 0x57a755e7
mov word [esp + 0x18], 0x5150
mov dword [esp + 0x1a], 0
mov dword [esp + 0x1e], 0
mov word [esp + 0x22], 0
jmp dword [0x440be4]
mov dword [esp + 4], 0
mov eax, dword [esp + 4]
cmp eax, 0x13
ja 0x414c7d
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp + 4]
mov ecx, dword [esp + 4]
movzx ecx, byte [esp + ecx + 0x10]
lea edx, [eax + 0x6e607d34]
and edx, ecx
add eax, ecx
add eax, 0x6e607d34
add edx, edx
sub eax, edx
mov dword [esp], eax
mov eax, dword [esp]
add al, 0x94
mov ecx, dword [esp + 4]
mov byte [esp + ecx + 0x10], al
inc dword [esp + 4]
mov eax, dword [esp + 4]
cmp eax, 0x14
jb 0x414c40
mov eax, esi
add eax, 0xfffffffe
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp word [eax + 2], 0
lea eax, [eax + 2]
jne 0x414c90
movzx ecx, word [esp + 0x10]
test cx, cx
je 0x4148f3
xor edx, edx
nop
nop
nop
nop
nop
nop
mov word [eax + edx], cx
movzx ecx, word [esp + edx + 0x12]
add edx, 2
test cx, cx
jne 0x414cb0
jmp 0x4148f1
mov dword [esp + 0x10], 0x5be659ae
mov dword [esp + 0x14], 0x57e255e0
mov word [esp + 0x18], 0x5150
mov dword [esp + 0x1a], 0
mov word [esp + 0x1e], 0
mov dword [esp + 4], 0
mov eax, dword [esp + 4]
cmp eax, 0xf
ja 0x414d41
nop
nop
nop
mov eax, dword [esp + 4]
mov ecx, dword [esp + 4]
movzx ecx, byte [esp + ecx + 0x10]
lea edx, [eax + 0xb4]
and edx, ecx
mov esi, 0xf9210a4b
sub esi, eax
or esi, ecx
not esi
add esi, ecx
sub esi, edx
mov dword [esp], esi
mov eax, dword [esp]
add al, 0x14
mov ecx, dword [esp + 4]
mov byte [esp + ecx + 0x10], al
inc dword [esp + 4]
mov eax, dword [esp + 4]
cmp eax, 0x10
jb 0x414d00
mov esi, dword [esp + 8]
mov eax, esi
add eax, 0xfffffffe
nop
nop
nop
nop
nop
nop
cmp word [eax + 2], 0
lea eax, [eax + 2]
jne 0x414d50
movzx ecx, word [esp + 0x10]
test cx, cx
je 0x4148f3
xor edx, edx
nop
nop
nop
nop
nop
nop
mov word [eax + edx], cx
movzx ecx, word [esp + edx + 0x12]
add edx, 2
test cx, cx
jne 0x414d70
jmp 0x4148f1
lea esi, [esp + 0x110]
jmp dword [ecx*4 + 0x440c9c]
xor eax, eax
mov ecx, dword [esp + 0x38]
test ecx, ecx
setle al
jmp dword [eax*4 + 0x440ca4]
xor eax, eax
cmp ecx, 2
setl al
jmp dword [eax*4 + 0x440cac]
sete al
movzx eax, al
jmp dword [eax*4 + 0x440cb4]
mov edx, dword [esp + 8]
mov ecx, edx
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, ecx
add ecx, 2
cmp word [eax], 0
jne 0x414dd0
sub eax, edx
lea ecx, [eax + 0x3c]
cmp eax, 0xffffffc3
lea edi, [esp + 0x40]
jge 0x414dee
mov ecx, 0xffffffff
push ecx
call fcn.00408d40
add esp, 4
mov dword [esp + 0x2c], eax
mov dword [esp + 0xa8], 0xa3a2ad8a
mov dword [esp + 0xac], 0
mov dword [esp + 0xb0], 0
mov byte [esp + 0xb4], 0
mov dword [esp + 0x10], 0
mov eax, dword [esp + 0x10]
cmp eax, 0xc
ja 0x414e82
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 + 0x66]
add eax, ecx
and edx, ecx
add edx, edx
sub eax, edx
add eax, 0xb7460366
mov dword [esp + 0x40], eax
mov eax, dword [esp + 0x40]
add al, 0x36
mov ecx, dword [esp + 0x10]
mov byte [esp + ecx + 0xa8], al
inc dword [esp + 0x10]
mov eax, dword [esp + 0x10]
cmp eax, 0xd
jb 0x414e40
mov dword [esp + 0x40], 0xeba515a6
mov dword [esp + 0x44], 0xef53e963
mov dword [esp + 0x48], 0xe359ed58
mov dword [esp + 0x4c], 0xe75be15a
mov dword [esp + 0x50], 0xfb58e55a
mov dword [esp + 0x54], 0xff0bf91a
mov dword [esp + 0x58], 0xf374fd45
mov dword [esp + 0x5c], 0xf755f149
mov dword [esp + 0x60], 0xcb52f516
mov dword [esp + 0x64], 0xcf78c945
mov dword [esp + 0x68], 0xc379cd69
mov dword [esp + 0x6c], 0xc720c177
mov dword [esp + 0x70], 0xdb7ec535
mov dword [esp + 0x74], 0xdf3ed93a
mov word [esp + 0x78], 0xddde
mov dword [esp + 0x7a], 0
mov dword [esp + 0x7e], 0
mov dword [esp + 0x82], 0
mov byte [esp + 0x86], 0
mov dword [esp], 0
mov eax, dword [esp]
cmp eax, 0x46
ja 0x414f70
nop
nop
nop
nop
nop
mov eax, dword [esp]
mov ecx, dword [esp]
movzx ecx, byte [esp + ecx + 0x40]
lea edx, [eax + 0x6550fefd]
mov esi, ecx
not esi
or esi, edx
and edx, ecx
add edx, esi
neg edx
add eax, edx
add eax, 0x6550fefc
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x10]
add al, 0x15
mov ecx, dword [esp]
mov byte [esp + ecx + 0x40], al
inc dword [esp]
mov eax, dword [esp]
cmp eax, 0x47
jb 0x414f30
movzx ecx, word [esp + 0x40]
mov eax, dword [esp + 0x2c]
test cx, cx
je 0x414fa1
lea edx, [esp + 0x42]
mov eax, dword [esp + 0x2c]
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 0x414f90
mov word [eax], 0
mov edx, dword [esp + 8]
movzx ecx, word [edx]
test cx, cx
je 0x414fd1
add edx, 2
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 0x414fc0
mov word [eax], 0
movzx ecx, word [esp + 0xa8]
test cx, cx
je 0x415001
lea edx, [esp + 0xaa]
nop
nop
nop
nop
nop
nop
mov word [eax], cx
add eax, 2
movzx ecx, word [edx]
add edx, 2
test cx, cx
jne 0x414ff0
mov word [eax], 0
mov dword [esp + 0x80], 0
mov dword [esp + 0x7c], 0
mov dword [esp + 0x78], 0
mov dword [esp + 0x74], 0
mov dword [esp + 0x70], 0
mov dword [esp + 0x6c], 0
mov dword [esp + 0x68], 0
mov dword [esp + 0x64], 0
mov dword [esp + 0x60], 0
mov dword [esp + 0x5c], 0
mov dword [esp + 0x58], 0
mov dword [esp + 0x54], 0
mov dword [esp + 0x50], 0
mov dword [esp + 0x4c], 0
mov dword [esp + 0x48], 0
mov dword [esp + 0x44], 0
mov dword [esp + 0x40], 0x44
push 0xd3a7a30
push dword [0x446c14]
call fcn.00439870
add esp, 8
lea ecx, [esp + 0x10]
push ecx
push edi
push 0
push 0
push 0x8000000
push 0
push 0
push 0
push dword [esp + 0x4c]
push 0
call eax
xor ecx, ecx
test eax, eax
setne cl
jmp dword [ecx*4 + 0x440cfc]
mov eax, dword [esp + 0x10]
mov dword [esp + 0xa8], 0x2050407
mov dword [esp + 0xac], 0
mov dword [esp + 0xb0], 0
mov dword [esp + 0xb3], 0
mov dword [esp + 4], 0
mov ecx, dword [esp + 4]
cmp ecx, 0xe
ja 0x41515f
mov ecx, dword [esp + 4]
mov edx, dword [esp + 4]
movzx edx, byte [esp + edx + 0xa8]
lea esi, [ecx + 0x81]
add ecx, edx
and esi, edx
add esi, esi
sub ecx, esi
add ecx, 0x3c4ba981
mov dword [esp], ecx
mov ecx, dword [esp]
mov edx, ecx
xor edx, 0x78
and ecx, 0x78
lea ecx, [edx + ecx*2]
inc cl
mov edx, dword [esp + 4]
mov byte [esp + edx + 0xa8], cl
inc dword [esp + 4]
mov ecx, dword [esp + 4]
cmp ecx, 0xf
jb 0x415110
mov ecx, dword [0x446c20]
test ecx, ecx
je case.0x4141c0.100
mov edx, dword [esp + 0xa8]
xor esi, esi
mov edi, dword [0x446c24]
nop
nop
nop
nop
cmp dword [edi + esi*8], 0x11081610
je 0x4153a2
inc esi
cmp ecx, esi
jne 0x415180
jmp case.0x4141c0.100
sete al
movzx eax, al
jmp dword [eax*4 + 0x440cbc]
mov eax, dword [esp + 0x100]
jmp dword [eax*4 + 0x440cc4]
push 0xa013361e
push dword [0x446c14]
call fcn.00439870
add esp, 8
push 0
push 0
push dword [esp + 0xf8]
push 0x41d4f0
push 0
push 0
call eax
mov esi, eax
xor eax, eax
test esi, esi
setne al
jmp dword [eax*4 + 0x440ce4]
mov dword [esp + 0xac], 0xffffffff
mov dword [esp + 0xa8], 0xb8797400
mov dword [esp + 0x40], 0x2050407
mov dword [esp + 0x44], 0
mov dword [esp + 0x48], 0
mov dword [esp + 0x4b], 0
mov dword [esp], 0
mov eax, dword [esp]
cmp eax, 0xe
ja 0x415275
mov eax, dword [esp]
mov ecx, dword [esp]
movzx ecx, byte [esp + ecx + 0x40]
lea edx, [eax + 0x81]
add eax, ecx
and edx, ecx
add edx, edx
sub eax, edx
add eax, 0x3c4ba981
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x10]
mov ecx, eax
xor ecx, 0x78
and eax, 0x78
lea eax, [ecx + eax*2]
inc al
mov ecx, dword [esp]
mov byte [esp + ecx + 0x40], al
inc dword [esp]
mov eax, dword [esp]
cmp eax, 0xf
jb 0x415230
mov eax, dword [0x446c20]
test eax, eax
je 0x4152c4
mov ecx, dword [esp + 0x40]
xor edx, edx
mov edi, dword [0x446c24]
nop
nop
nop
nop
nop
nop
cmp dword [edi + edx*8], 0xb33e16a3
je 0x4152a0
inc edx
cmp eax, edx
jne 0x415290
jmp 0x4152c4
mov eax, dword [edi + edx*8 + 4]
cmp eax, ecx
je 0x4152c4
lea ecx, [esp + 0xa8]
push ecx
push 0
push esi
push 3
push dword [0x446c28]
push eax
call fcn.00437df0
add esp, 0x18
mov dword [esp + 0x40], 0x2050407
mov dword [esp + 0x44], 0
mov dword [esp + 0x48], 0
mov dword [esp + 0x4b], 0
mov dword [esp], 0
mov eax, dword [esp]
cmp eax, 0xe
ja 0x415345
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 + 0x40]
lea edx, [eax + 0x81]
add eax, ecx
and edx, ecx
add edx, edx
sub eax, edx
add eax, 0x3c4ba981
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x10]
mov ecx, eax
xor ecx, 0x78
and eax, 0x78
lea eax, [ecx + eax*2]
inc al
mov ecx, dword [esp]
mov byte [esp + ecx + 0x40], al
inc dword [esp]
mov eax, dword [esp]
cmp eax, 0xf
jb 0x415300
mov eax, dword [0x446c20]
test eax, eax
je 0x41538a
mov ecx, dword [esp + 0x40]
xor edx, edx
mov edi, dword [0x446c24]
nop
nop
nop
nop
nop
nop
cmp dword [edi + edx*8], 0x11081610
je 0x415370
inc edx
cmp eax, edx
jne 0x415360
jmp 0x41538a
mov eax, dword [edi + edx*8 + 4]
cmp eax, ecx
je 0x41538a
push esi
push 1
push dword [0x446c28]
push eax
call fcn.00437df0
add esp, 0x10
mov eax, dword [case.0x4141c0.82]
mov edi, dword [esp + 0x34]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
jmp eax
mov ecx, dword [edi + esi*8 + 4]
cmp ecx, edx
je case.0x4141c0.100
push eax
push 1
push dword [0x446c28]
push ecx
call fcn.00437df0
add esp, 0x10
mov eax, dword [case.0x4141c0.82]
mov edi, dword [esp + 0x34]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
jmp eax
mov dword [esp + 0x40], 0x80000d0c
mov dword [esp + 0x48], 0
mov dword [esp + 0x44], 0
mov dword [esp + 0x10], 0
mov eax, dword [esp + 0x10]
cmp eax, 0xb
ja 0x415456
nop
nop
nop
nop
nop
mov ecx, dword [esp + 0x10]
mov eax, dword [esp + 0x10]
movzx esi, byte [esp + eax + 0x40]
lea edx, [ecx - 0x323e5eaa]
mov eax, edx
and eax, esi
xor edx, esi
lea edx, [edx + eax*2]
add ecx, 0x56
and ecx, esi
or eax, ecx
add eax, ecx
mov ecx, edx
xor ecx, eax
not eax
and eax, edx
add eax, eax
sub eax, ecx
mov dword [esp + 0xa8], eax
mov eax, dword [esp + 0xa8]
add al, 0xa6
mov ecx, dword [esp + 0x10]
mov byte [esp + ecx + 0x40], al
inc dword [esp + 0x10]
mov eax, dword [esp + 0x10]
cmp eax, 0xc
jb 0x415400
mov eax, dword [esp + 0x40]
push dword [eax + 0x14]
call fcn.00409460
add esp, 4
call fcn.00409470
mov esi, eax
and esi, 0xf
or esi, 0x10
xor edi, edi
mov eax, dword [case.0x4141c0.18]
lea ebx, [esp + 0xa8]
jmp eax
xor eax, eax
cmp edi, esi
setb al
jmp dword [eax*4 + 0x440bbc]
call fcn.00409470
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
inc edi
mov eax, dword [case.0x4141c0.18]
jmp case.0x4141c0.16
mov eax, dword [esp + 0x10]
mov dword [esp + 0xa8], 0x2050407
mov dword [esp + 0xac], 0
mov dword [esp + 0xb0], 0
mov dword [esp + 0xb3], 0
mov dword [esp + 4], 0
mov ecx, dword [esp + 4]
cmp ecx, 0xe
ja 0x41555f
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov ecx, dword [esp + 4]
mov edx, dword [esp + 4]
movzx edx, byte [esp + edx + 0xa8]
lea esi, [ecx + 0x81]
add ecx, edx
and esi, edx
add esi, esi
sub ecx, esi
add ecx, 0x3c4ba981
mov dword [esp], ecx
mov ecx, dword [esp]
mov edx, ecx
xor edx, 0x78
and ecx, 0x78
lea ecx, [edx + ecx*2]
inc cl
mov edx, dword [esp + 4]
mov byte [esp + edx + 0xa8], cl
inc dword [esp + 4]
mov ecx, dword [esp + 4]
cmp ecx, 0xf
jb 0x415510
mov ecx, dword [0x446c20]
test ecx, ecx
je case.0x4141c0.92
mov edx, dword [esp + 0xa8]
xor esi, esi
mov edi, dword [0x446c24]
nop
nop
nop
nop
nop
nop
nop
nop
cmp dword [edi + esi*8], 0x11081610
je 0x415590
inc esi
cmp ecx, esi
jne 0x415580
jmp case.0x4141c0.92
mov ecx, dword [edi + esi*8 + 4]
cmp ecx, edx
je case.0x4141c0.92
push eax
push 1
push dword [0x446c28]
push ecx
call fcn.00437df0
add esp, 0x10
mov edi, dword [esp + 0x34]
mov eax, dword [esp + 0xf0]
mov ecx, dword [case.0x4141c0.108]
nop
nop
nop
nop
nop
jmp ecx
xor ecx, ecx
test eax, eax
setne cl
mov esi, dword [esp + 8]
jmp dword [ecx*4 + 0x440d24]
push eax
call fcn.004360f0
add esp, 4
nop
nop
nop
jmp dword [0x440d38]
xor eax, eax
test esi, esi
sete al
mov ecx, esi
lea esi, [esp + 0x110]
jmp dword [eax*4 + 0x440d3c]
push ecx
call fcn.00408d50
add esp, 4
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
jmp dword [0x440d4c]
xor eax, eax
mov ecx, dword [esp + 0x2c]
test ecx, ecx
sete al
jmp dword [eax*4 + 0x440d54]
push ecx
call fcn.00408d50
add esp, 4
mov eax, dword [case.0x4141c0.0]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
jmp eax
xor ecx, ecx
test eax, eax
setne cl
jmp dword [ecx*4 + 0x440b9c]
mov ebx, dword [esp + 0x30]
mov ecx, dword [esp + 0x38]
mov eax, dword [esp + 0xf8]
jmp dword [eax*4 + 0x440c84]
mov word [esi], 0x2c
mov esi, 0xffffffff
mov ecx, dword [esp + 0x38]
mov edx, dword [esp + 0xec]
nop
nop
nop
nop
nop
cmp byte [edx + esi + 1], 0
lea esi, [esi + 1]
jne 0x415680
lea eax, [edi + 4]
mov dword [esp + 0xc], eax
mov dword [esp + 0x40], 0
cmp ebx, 2
jl 0x415705
test esi, esi
jle 0x415705
mov eax, dword [esp + 0xa0]
add eax, esi
lea esi, [edi + ebx*2]
add esi, 2
mov dword [esp + 8], esi
mov ebx, dword [esp + 0x30]
nop
nop
nop
nop
nop
nop
nop
cmp byte [edx], 0
je 0x415711
mov esi, ebx
mov ebx, eax
lea eax, [esp + 0x40]
push eax
push ebx
push edx
mov edi, edx
call fcn.0040ecd0
add esp, 0xc
movzx ecx, word [esp + 0x40]
mov edx, dword [esp + 0xc]
mov word [edx], cx
add edx, 2
mov dword [esp + 0xc], edx
cmp edx, dword [esp + 8]
jae 0x41570b
add edi, eax
cmp edi, ebx
mov ecx, dword [esp + 0x38]
mov edx, edi
mov eax, ebx
mov ebx, esi
jb 0x4156c0
jmp 0x415711
mov ebx, dword [esp + 0x30]
jmp 0x415711
mov ecx, dword [esp + 0x38]
mov ebx, esi
mov esi, dword [esp + 0xc]
mov word [esi], 0
mov eax, dword [esp + 0xf8]
jmp dword [eax*4 + 0x440c84]
mov word [esi], 0x2c
mov eax, 0xffffffff
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp byte [ecx + eax + 1], 0
lea eax, [eax + 1]
jne 0x415740
lea edi, [esi + 2]
mov dword [esp + 0x40], 0
mov edx, dword [esp + 0x3c]
cmp edx, 2
jl 0x41579f
test eax, eax
jle 0x41579f
mov ebx, ecx
add ebx, eax
lea eax, [esi + edx*2]
mov dword [esp + 0xc], eax
nop
nop
nop
cmp byte [ecx], 0
je 0x41579f
lea eax, [esp + 0x40]
push eax
push ebx
push ecx
mov esi, ecx
call fcn.0040ecd0
add esp, 0xc
movzx ecx, word [esp + 0x40]
mov word [edi], cx
add edi, 2
cmp edi, dword [esp + 0xc]
jae 0x41579f
add esi, eax
cmp esi, ebx
mov ecx, esi
jb 0x415770
mov word [edi], 0
mov ebx, dword [esp + 0x30]
mov dword [esp + 0x38], 0
mov eax, dword [case.0x4141c0.42]
mov dword [esp + 8], 0
mov edi, dword [esp + 0x34]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov ecx, 1
jmp eax
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 [0x446c14]
call fcn.00439870
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 edi
push esi
call eax
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 [0x446c14]
call fcn.00439870
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 edi
push esi
call eax
jmp dword [0x440cd8]
xor ecx, ecx
test eax, eax
setne cl
jmp dword [ecx*4 + 0x440cdc]
mov eax, dword [esp + 0xc]
jmp dword [eax*4 + 0x440c7c]
push dword [esp + 8]
call fcn.00408d50
add esp, 4
push dword [esp + 8]
call fcn.00408d50
add esp, 4
jmp dword [0x440c74]
mov dword [esp + 0x10], 0
mov eax, dword [esp + 0x10]
cmp eax, 7
ja 0x4159eb
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]
mov edx, eax
and edx, 0x25560a0a
xor eax, 0xa5560a0a
lea eax, [eax + edx*2]
lea edx, [eax + ecx]
and eax, ecx
add eax, eax
sub edx, eax
mov dword [esp + 0xa8], edx
mov eax, dword [esp + 0xa8]
add al, 0xba
mov ecx, dword [esp + 0x10]
mov byte [esp + ecx + 0x40], al
inc dword [esp + 0x10]
mov eax, dword [esp + 0x10]
cmp eax, 8
jb 0x4159a0
push esi
push dword [esp + 0x10]
call fcn.00402670
add esp, 8
mov dword [esp + 0x10], 0
mov eax, dword [esp + 0x10]
cmp eax, 7
ja 0x415a5b
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x10]
movzx ecx, byte [esp + ecx + 0x40]
mov edx, eax
and edx, 0x25560a0a
xor eax, 0xa5560a0a
lea eax, [eax + edx*2]
lea edx, [eax + ecx]
and eax, ecx
add eax, eax
sub edx, eax
mov dword [esp + 0xa8], edx
mov eax, dword [esp + 0xa8]
add al, 0xba
mov ecx, dword [esp + 0x10]
mov byte [esp + ecx + 0x40], al
inc dword [esp + 0x10]
mov eax, dword [esp + 0x10]
cmp eax, 8
jb 0x415a10
push esi
push dword [esp + 0x10]
call fcn.00402670
add esp, 8
jmp dword [0x440b98]
mov bl, 1
jmp dword [0x440d7c]
mov eax, ebx
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret