Function at 0x414ad0
Capabilities:
Resolve function by parsing pe exports

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff8
sub esp, 0x200
mov esi, esp
push eax
mov dword [esi + 0x180], esp
sub esp, 0x10
mov eax, esp
and eax, 0xfffffff8
mov dword [esi + 0x130], eax
mov esp, eax
push eax
mov dword [esi + 0x174], esp
sub esp, 0xc
mov eax, esp
push eax
mov edi, esp
push eax
mov dword [esi + 0x114], esp
push eax
mov dword [esi + 0x16c], esp
push eax
mov dword [esi + 0x110], esp
push eax
mov dword [esi + 0x168], esp
push eax
mov dword [esi + 0xe4], esp
push eax
mov dword [esi + 0x120], esp
mov dword [esi + 0x118], eax
sub esp, 0x68
mov eax, esp
and eax, 0xfffffff8
mov dword [esi + 0x11c], eax
mov esp, eax
push eax
mov dword [esi + 0x188], esp
push eax
mov dword [esi + 0x184], esp
push eax
mov dword [esi + 0x190], esp
sub esp, 0x10
mov eax, esp
and eax, 0xfffffff8
mov dword [esi + 0x1dc], eax
mov esp, eax
push eax
mov dword [esi + 0x18c], esp
sub esp, 0x10
mov eax, esp
and eax, 0xfffffff8
mov dword [esi + 0x1bc], eax
mov esp, eax
push eax
mov dword [esi + 0xec], esp
push eax
mov dword [esi + 0xe8], esp
push eax
mov dword [esi + 0xc8], esp
push eax
mov dword [esi + 0xf8], esp
push eax
mov dword [esi + 0x1a4], esp
sub esp, 0x10
mov eax, esp
and eax, 0xfffffff8
mov dword [esi + 0x1cc], eax
mov esp, eax
push eax
mov dword [esi + 0x12c], esp
push eax
mov dword [esi + 0x19c], esp
push eax
mov dword [esi + 0x1b4], esp
sub esp, 8
mov eax, esp
and eax, 0xfffffff8
mov dword [esi + 0x100], eax
mov esp, eax
push eax
mov dword [esi + 0x1b0], esp
sub esp, 0x10
mov eax, esp
and eax, 0xfffffff8
mov dword [esi + 0xd0], eax
mov esp, eax
push eax
sub esp, 0xc
mov eax, esp
and eax, 0xfffffff8
mov dword [esi + 0x198], eax
mov esp, eax
push eax
sub esp, 0x64
mov eax, esp
and eax, 0xfffffff8
mov dword [esi + 0x124], eax
mov esp, eax
push eax
sub esp, 8
mov dword [esi + 0x1c4], esp
push eax
mov dword [esi + 0x170], esp
sub esp, 0x10
mov eax, esp
and eax, 0xfffffff8
mov dword [esi + 0xb8], eax
mov esp, eax
push eax
sub esp, 0x54
mov eax, esp
and eax, 0xfffffff8
mov dword [esi + 0xc0], eax
mov esp, eax
push eax
mov dword [esi + 0x138], esp
sub esp, 0x10
mov eax, esp
and eax, 0xfffffff8
mov dword [esi + 0xac], eax
mov esp, eax
push eax
mov dword [esi + 0x134], esp
sub esp, 0x10
mov eax, esp
and eax, 0xfffffff8
mov dword [esi + 0x108], eax
mov esp, eax
push eax
mov dword [esi + 0x17c], esp
push eax
mov dword [esi + 0x178], esp
push eax
mov dword [esi + 0xf4], esp
push eax
mov dword [esi + 0xfc], esp
push eax
mov dword [esi + 0x1a0], esp
sub esp, 0x10
mov eax, esp
and eax, 0xfffffff8
mov dword [esi + 0x1c8], eax
mov esp, eax
push eax
mov dword [esi + 0x128], esp
push eax
mov dword [esi + 0x1d8], esp
push eax
mov dword [esi + 0x1ac], esp
sub esp, 0x10
mov eax, esp
and eax, 0xfffffff8
mov dword [esi + 0x104], eax
mov esp, eax
push eax
mov dword [esi + 0x1a8], esp
sub esp, 0x10
mov eax, esp
and eax, 0xfffffff8
mov dword [esi + 0x194], eax
mov esp, eax
push eax
sub esp, 0xc
mov eax, esp
and eax, 0xfffffff8
mov dword [esi + 0xcc], eax
mov esp, eax
push eax
sub esp, 0x64
mov eax, esp
and eax, 0xfffffff8
mov dword [esi + 0xbc], eax
mov esp, eax
mov word [esi + 0x40], 0xb913
mov dword [esi + 0x42], 0
mov dword [esi + 0x46], 0
mov dword [esi + 0x4a], 0
mov word [esi + 0x4e], 0
mov dword [esi + 0x20], 0
mov eax, dword [esi + 0x20]
cmp eax, 0xf
ja 0x410715
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esi + 0x20]
mov ecx, dword [esi + 0x20]
movzx ecx, byte [esi + ecx + 0x40]
lea edx, [eax + 0x47]
add eax, ecx
and edx, ecx
add edx, edx
sub eax, edx
add eax, 0x9a85eb47
mov dword [esi + 8], eax
mov eax, dword [esi + 8]
add al, 0xf
mov ecx, dword [esi + 0x20]
mov byte [esi + ecx + 0x40], al
inc dword [esi + 0x20]
mov eax, dword [esi + 0x20]
cmp eax, 0x10
jb 0x4106e0
lea eax, [esi + 0x40]
push eax
push dword [ebp + 8]
call fcn.004027a0
add esp, 8
mov edx, eax
xor ecx, ecx
test eax, eax
sete cl
xor eax, eax
jmp dword [ecx*4 + 0x4437ec]
mov eax, dword [esi + 0xb8]
inc eax
mov dword [esi + 0x1c0], eax
xor ebx, ebx
mov dword [esi + 0x10c], edi
mov dword [esi + 0x1b8], edx
jmp 0x41076d
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov ebx, dword [esi + 0x1e0]
inc ebx
mov edx, dword [esi + 0x1b8]
push edx
call fcn.004029d0
mov edx, dword [esi + 0x1b8]
add esp, 4
xor ecx, ecx
cmp ebx, eax
setb cl
jmp dword [ecx*4 + 0x4437f4]
mov dword [esi + 0x1e0], ebx
push ebx
push edx
call fcn.004029e0
add esp, 8
mov edi, eax
mov word [esi + 0x40], 0x2d58
mov dword [esi + 0x42], 0
mov dword [esi + 0x46], 0
mov word [esi + 0x4a], 0
mov dword [esi + 0x20], 0
mov eax, dword [esi + 0x20]
cmp eax, 0xb
ja 0x410808
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esi + 0x20]
mov ecx, dword [esi + 0x20]
movzx ecx, byte [esi + ecx + 0x40]
lea edx, [eax + 0xa6]
add eax, ecx
and edx, ecx
add edx, edx
sub eax, edx
add eax, 0x8e5847a6
mov dword [esi + 8], eax
mov eax, dword [esi + 8]
add al, 0x76
mov ecx, dword [esi + 0x20]
mov byte [esi + ecx + 0x40], al
inc dword [esi + 0x20]
mov eax, dword [esi + 0x20]
cmp eax, 0xc
jb 0x4107d0
push 3
lea eax, [esi + 0x40]
push eax
push edi
call fcn.00402960
add esp, 0xc
xor ecx, ecx
test eax, eax
sete cl
mov ebx, dword [esi + 0x1dc]
jmp dword [ecx*4 + 0x44380c]
mov word [esi + 0x40], 0x9502
mov dword [esi + 0x42], 0
mov dword [esi + 0x46], 0
mov dword [esi + 0x4a], 0
mov word [esi + 0x4e], 0
mov dword [esi + 0x20], 0
mov eax, dword [esi + 0x20]
cmp eax, 0xf
ja 0x410899
nop
nop
nop
nop
nop
mov eax, dword [esi + 0x20]
mov ecx, dword [esi + 0x20]
movzx ecx, byte [esi + ecx + 0x40]
lea edx, [eax + ecx]
add edx, 0xc9aff6ed
add eax, 0xc9aff6ed
and eax, ecx
add eax, eax
sub edx, eax
mov dword [esi + 8], edx
mov eax, dword [esi + 8]
add al, 0x85
mov ecx, dword [esi + 0x20]
mov byte [esi + ecx + 0x40], al
inc dword [esi + 0x20]
mov eax, dword [esi + 0x20]
cmp eax, 0x10
jb 0x410860
lea eax, [esi + 0x40]
push eax
push edi
call fcn.00402730
add esp, 8
fnstcw word [esi + 0xd6]
movzx eax, word [esi + 0xd6]
or eax, 0xc00
mov word [esi + 0x13e], ax
fldcw word [esi + 0x13e]
fistp dword [esi + 0x1f4]
fldcw word [esi + 0xd6]
mov eax, dword [esi + 0x1f4]
xor ecx, ecx
cmp eax, 2
setl cl
jmp dword [ecx*4 + 0x443824]
xor ecx, ecx
cmp eax, 3
setl cl
jmp dword [ecx*4 + 0x44382c]
sete al
movzx eax, al
jmp dword [eax*4 + 0x443834]
mov word [esi + 0x40], 0x813f
mov dword [esi + 0x42], 0
mov dword [esi + 0x45], 0
mov dword [esi + 0x20], 0
mov eax, dword [esi + 0x20]
cmp eax, 8
ja 0x410964
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esi + 0x20]
mov ecx, dword [esi + 0x20]
movzx ecx, byte [esi + ecx + 0x40]
lea edx, [eax - 0x22ccb695]
add eax, 0x6b
and eax, ecx
or edx, ecx
sub edx, eax
mov dword [esi + 8], edx
mov eax, dword [esi + 8]
add al, 0x13
mov ecx, dword [esi + 0x20]
mov byte [esi + ecx + 0x40], al
inc dword [esi + 0x20]
mov eax, dword [esi + 0x20]
cmp eax, 9
jb 0x410930
push 2
lea eax, [esi + 0x40]
push eax
push edi
call fcn.00402960
add esp, 0xc
xor ecx, ecx
test eax, eax
setne cl
mov al, 1
jmp dword [ecx*4 + 0x4438ec]
mov word [esi + 8], 0xf956
mov dword [esi + 0xe], 0
mov dword [esi + 0xa], 0
mov dword [esi + 0x30], 0
mov eax, dword [esi + 0x30]
cmp eax, 9
ja 0x4109e9
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esi + 0x30]
mov ecx, dword [esi + 0x30]
movzx ecx, byte [esi + ecx + 8]
lea edx, [eax + ecx]
add edx, 0xcb185d9f
add eax, 0xcb185d9f
and eax, ecx
add eax, eax
sub edx, eax
mov dword [esi + 0x1c], edx
mov eax, dword [esi + 0x1c]
add al, 0xa7
mov ecx, dword [esi + 0x30]
mov byte [esi + ecx + 8], al
inc dword [esi + 0x30]
mov eax, dword [esi + 0x30]
cmp eax, 0xa
jb 0x4109b0
push 2
lea eax, [esi + 8]
push eax
push edi
call fcn.00402960
add esp, 0xc
xor ecx, ecx
test eax, eax
setne cl
mov al, 1
jmp dword [ecx*4 + 0x4438f4]
mov word [esi + 0x20], 0xad51
mov dword [esi + 0x22], 0
mov dword [esi + 0x26], 0
mov dword [esi + 0x2a], 0
mov dword [esi + 0x30], 0
mov eax, dword [esi + 0x30]
cmp eax, 0xd
ja 0x410a76
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esi + 0x30]
mov ecx, dword [esi + 0x30]
movzx ecx, byte [esi + ecx + 0x20]
lea edx, [eax + 0x19700fe6]
add eax, 0xe6
and eax, ecx
or edx, ecx
sub edx, eax
mov dword [esi + 0x1c], edx
mov eax, dword [esi + 0x1c]
add al, 0xb6
mov ecx, dword [esi + 0x30]
mov byte [esi + ecx + 0x20], al
inc dword [esi + 0x30]
mov eax, dword [esi + 0x30]
cmp eax, 0xe
jb 0x410a40
push 5
lea eax, [esi + 0x20]
push eax
push edi
call fcn.00402960
add esp, 0xc
xor ecx, ecx
test eax, eax
setne cl
mov al, 1
jmp dword [ecx*4 + 0x4438fc]
mov word [esi + 0xb0], 0x31ba
mov dword [esi + 0xb2], 0
mov word [esi + 0xb6], 0
mov dword [esi + 0x30], 0
mov eax, dword [esi + 0x30]
cmp eax, 7
ja 0x410b13
mov eax, dword [esi + 0x30]
mov ecx, dword [esi + 0x30]
movzx ecx, byte [esi + ecx + 0xb0]
add eax, 0xf9ef2c28
mov edx, eax
and edx, ecx
mov ebx, eax
xor ebx, ecx
not ecx
or eax, ecx
add ecx, ebx
add eax, edx
sub ecx, eax
lea eax, [ecx + edx*2]
mov dword [esi + 0x1c], eax
mov eax, dword [esi + 0x1c]
add al, 0xe8
mov ecx, dword [esi + 0x30]
mov byte [esi + ecx + 0xb0], al
mov eax, dword [esi + 0x30]
mov ecx, eax
and ecx, 1
xor eax, 1
lea eax, [eax + ecx*2]
mov dword [esi + 0x30], eax
mov eax, dword [esi + 0x30]
cmp eax, 8
jb case.default.0x410b2e
push 2
lea eax, [esi + 0xb0]
push eax
push edi
call fcn.00402960
add esp, 0xc
xor ecx, ecx
test eax, eax
setne cl
mov al, 1
jmp dword [ecx*4 + 0x443904]
mov word [esi + 0x148], 0xcd70
mov dword [esi + 0x14a], 0
mov dword [esi + 0x14e], 0
mov dword [esi + 0x152], 0
mov dword [esi + 0x30], 0
mov eax, dword [esi + 0x30]
cmp eax, 0xd
ja 0x410bb5
nop
nop
nop
nop
nop
mov eax, dword [esi + 0x30]
mov ecx, dword [esi + 0x30]
movzx ecx, byte [esi + ecx + 0x148]
lea edx, [eax + 0x45263c22]
add eax, 0x22
and eax, ecx
or edx, ecx
sub edx, eax
mov dword [esi + 0x1c], edx
mov eax, dword [esi + 0x1c]
mov ecx, eax
xor ecx, 0x11
and eax, 0x11
lea eax, [ecx + eax*2]
inc al
mov ecx, dword [esi + 0x30]
mov byte [esi + ecx + 0x148], al
inc dword [esi + 0x30]
mov eax, dword [esi + 0x30]
cmp eax, 0xe
jb 0x410b70
push 3
lea eax, [esi + 0x148]
push eax
push edi
call fcn.00402960
add esp, 0xc
xor ecx, ecx
test eax, eax
setne cl
mov al, 1
jmp dword [ecx*4 + 0x44390c]
movzx eax, al
jmp dword [eax*4 + 0x443914]
mov word [esi + 0x40], 0x55cf
mov dword [esi + 0x46], 0
mov dword [esi + 0x42], 0
mov dword [esi + 0x20], 0
mov eax, dword [esi + 0x20]
cmp eax, 9
ja 0x410c53
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esi + 0x20]
mov ecx, dword [esi + 0x20]
movzx ecx, byte [esi + ecx + 0x40]
lea edx, [eax - 0x5e2d2f73]
lea ebx, [eax + 0x8d]
xor ebx, edx
and edx, ecx
and ebx, ecx
add eax, ecx
add eax, 0xa1d2d08d
lea ecx, [ebx + edx*2]
sub eax, ecx
mov dword [esi + 8], eax
mov eax, dword [esi + 8]
add al, 0x25
mov ecx, dword [esi + 0x20]
mov byte [esi + ecx + 0x40], al
inc dword [esi + 0x20]
mov eax, dword [esi + 0x20]
cmp eax, 0xa
jb 0x410c10
lea eax, [esi + 0x40]
push eax
push edi
call fcn.004026d0
add esp, 8
mov dword [esi + 0x38], eax
mov word [esi + 0x40], 0x3586
mov dword [esi + 0x42], 0
mov dword [esi + 0x46], 0
mov dword [esi + 0x4a], 0
mov dword [esi + 0x20], 0
mov eax, dword [esi + 0x20]
cmp eax, 0xd
ja 0x410cc4
nop
nop
nop
mov eax, dword [esi + 0x20]
mov ecx, dword [esi + 0x20]
movzx ecx, byte [esi + ecx + 0x40]
lea edx, [eax - 0x64817ea7]
add eax, 0x59
and eax, ecx
or edx, ecx
sub edx, eax
mov dword [esi + 8], edx
mov eax, dword [esi + 8]
add al, 0x91
mov ecx, dword [esi + 0x20]
mov byte [esi + ecx + 0x40], al
inc dword [esi + 0x20]
mov eax, dword [esi + 0x20]
cmp eax, 0xe
jb 0x410c90
lea eax, [esi + 0x40]
push eax
push edi
call fcn.004026d0
add esp, 8
mov dword [esi + 0x3c], eax
mov word [esi + 0x40], 0xda1
mov dword [esi + 0x42], 0
mov dword [esi + 0x46], 0
mov byte [esi + 0x4a], 0
mov dword [esi + 0x20], 0
mov eax, dword [esi + 0x20]
cmp eax, 0xa
ja 0x410d37
nop
nop
nop
nop
nop
mov eax, dword [esi + 0x20]
mov ecx, dword [esi + 0x20]
movzx ecx, byte [esi + ecx + 0x40]
mov edx, eax
and edx, 0x14222afe
xor eax, 0x14222afe
lea eax, [eax + edx*2]
xor eax, ecx
mov dword [esi + 8], eax
mov eax, dword [esi + 8]
add al, 0xe
mov ecx, dword [esi + 0x20]
mov byte [esi + ecx + 0x40], al
inc dword [esi + 0x20]
mov eax, dword [esi + 0x20]
cmp eax, 0xb
jb 0x410d00
lea eax, [esi + 0x40]
push eax
push edi
call fcn.004027a0
add esp, 8
mov dword [esi + 0x34], eax
mov word [esi + 0x40], 0xcd4a
mov dword [esi + 0x42], 0
mov dword [esi + 0x46], 0
mov dword [esi + 0x4a], 0
mov byte [esi + 0x4e], 0
mov dword [esi + 0x20], 0
mov eax, dword [esi + 0x20]
cmp eax, 0xe
ja 0x410db5
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esi + 0x20]
mov ecx, dword [esi + 0x20]
movzx ecx, byte [esi + ecx + 0x40]
lea edx, [eax + 0x62]
and edx, ecx
add eax, ecx
add edx, edx
sub eax, edx
add eax, 0xee322962
mov dword [esi + 8], eax
mov eax, dword [esi + 8]
add al, 0x52
mov ecx, dword [esi + 0x20]
mov byte [esi + ecx + 0x40], al
inc dword [esi + 0x20]
mov eax, dword [esi + 0x20]
cmp eax, 0xf
jb 0x410d80
lea eax, [esi + 0x40]
push eax
push edi
call fcn.004026d0
add esp, 8
mov dword [esi + 0xc4], eax
mov word [esi + 0x40], 0xcd70
mov dword [esi + 0x42], 0
mov dword [esi + 0x46], 0
mov dword [esi + 0x4a], 0
mov byte [esi + 0x4e], 0
mov dword [esi + 0x20], 0
mov eax, dword [esi + 0x20]
cmp eax, 0xe
ja 0x410e3b
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esi + 0x20]
mov ecx, dword [esi + 0x20]
movzx ecx, byte [esi + ecx + 0x40]
add eax, 0x1932a0e2
xor eax, ecx
mov dword [esi + 8], eax
mov eax, dword [esi + 8]
mov ecx, eax
or ecx, 0xd1
and eax, 0xd1
add eax, ecx
inc al
mov ecx, dword [esi + 0x20]
mov byte [esi + ecx + 0x40], al
inc dword [esi + 0x20]
mov eax, dword [esi + 0x20]
cmp eax, 0xf
jb 0x410e00
lea eax, [esi + 0x40]
push eax
push edi
call fcn.00402730
add esp, 8
fnstcw word [esi + 0xde]
movzx eax, word [esi + 0xde]
or eax, 0xc00
mov word [esi + 0x146], ax
fldcw word [esi + 0x146]
fistp dword [esi + 0x1e8]
fldcw word [esi + 0xde]
mov eax, dword [esi + 0x1e8]
mov dword [esi + 0xf0], eax
mov edx, dword [esi + 0x130]
mov word [edx], 0x5a26
mov byte [edx + 2], 0xf2
mov dword [edx + 7], 0
mov dword [edx + 3], 0
mov dword [esi + 8], 0
mov eax, dword [esi + 8]
cmp eax, 0xa
ja 0x410efd
nop
nop
nop
nop
nop
mov eax, dword [esi + 8]
mov ecx, dword [esi + 8]
mov edx, dword [esi + 0x130]
movzx edx, byte [edx + ecx]
lea ecx, [eax + edx]
add ecx, 0x3a5ad59e
add eax, 0x3a5ad59e
and eax, edx
add eax, eax
mov edx, eax
xor edx, ecx
not eax
and eax, ecx
add eax, eax
sub eax, edx
mov edx, dword [esi + 0x130]
mov dword [esi + 0x40], eax
mov eax, dword [esi + 0x40]
add al, 0xae
mov ecx, dword [esi + 8]
mov byte [edx + ecx], al
inc dword [esi + 8]
mov eax, dword [esi + 8]
cmp eax, 0xb
jb 0x410eb0
push edx
push edi
call fcn.00402730
add esp, 8
fnstcw word [esi + 0xdc]
movzx eax, word [esi + 0xdc]
or eax, 0xc00
mov word [esi + 0x144], ax
fldcw word [esi + 0x144]
fistp dword [esi + 0x1e4]
fldcw word [esi + 0xdc]
mov eax, dword [esi + 0x1e4]
mov ecx, dword [esi + 0x180]
mov dword [ecx], eax
mov edi, 0xfffffffe
xor eax, eax
mov ecx, dword [esi + 0x38]
nop
nop
nop
nop
nop
nop
add edi, 2
cmp byte [ecx + eax], 0
lea eax, [eax + 1]
jne 0x410f50
lea ebx, [eax - 1]
lea ecx, [edi + 2]
test eax, eax
jns 0x410f6b
mov ecx, 0xffffffff
push ecx
call fcn.00408b20
add esp, 4
mov ecx, eax
mov eax, dword [esi + 0x174]
mov dword [esi + 0x18], ecx
mov dword [eax], ecx
mov ecx, dword [esi + 0x38]
test ecx, ecx
jne 0x410f99
mov ebx, ecx
not ebx
xor eax, eax
nop
nop
inc ebx
cmp byte [eax], 0
lea eax, [eax + 1]
jne 0x410f90
mov dword [esi + 0x40], 0
mov eax, dword [esi + 0x18]
add edi, eax
mov dword [esi], eax
cmp edi, eax
jbe 0x411004
mov eax, dword [esi + 0x18]
mov dword [esi], eax
test ebx, ebx
jle 0x411004
mov eax, ecx
add eax, ebx
mov edx, eax
mov eax, dword [esi + 0x18]
mov dword [esi], eax
mov dword [esi + 4], edx
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp byte [ecx], 0
je 0x411004
lea eax, [esi + 0x40]
push eax
push edx
push ecx
mov ebx, ecx
call fcn.0040eca0
add esp, 0xc
movzx ecx, word [esi + 0x40]
mov edx, dword [esi]
mov word [edx], cx
mov ecx, edx
add ecx, 2
cmp ecx, edi
mov dword [esi], ecx
jae 0x411004
add ebx, eax
mov edx, dword [esi + 4]
cmp ebx, edx
mov ecx, ebx
jb 0x410fd0
mov eax, dword [esi]
mov word [eax], 0
mov edi, dword [esi + 0x118]
mov dword [edi], 0
mov dword [edi + 4], 0
mov dword [edi + 8], 0
mov ecx, edi
push dword [esi + 0x18]
call fcn.00438eb0
mov eax, dword [esi + 0x174]
mov eax, dword [eax]
xor ecx, ecx
test eax, eax
sete cl
jmp dword [ecx*4 + 0x44391c]
push eax
call fcn.00408b30
add esp, 4
mov ecx, edi
push 0x400
call fcn.00439110
not eax
shr eax, 0x1f
jmp dword [eax*4 + 0x443924]
mov eax, dword [esi + 0x10c]
mov dword [eax], 0
mov ecx, dword [edi]
mov dword [esi + 0x40], 0x2010007
mov dword [esi + 0x48], 0
mov dword [esi + 0x44], 0
mov dword [esi + 0x20], 0
mov eax, dword [esi + 0x20]
cmp eax, 0xb
ja 0x4110de
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esi + 0x20]
mov edx, dword [esi + 0x20]
movzx edi, byte [esi + edx + 0x40]
lea edx, [eax - 0x4057fad5]
mov ebx, edi
not ebx
or ebx, edx
and edx, edi
add edx, ebx
neg edx
add eax, edx
add eax, 0xbfa8052a
mov dword [esi + 8], eax
mov eax, dword [esi + 8]
add al, 0xd3
mov edx, dword [esi + 0x20]
mov byte [esi + edx + 0x40], al
inc dword [esi + 0x20]
mov eax, dword [esi + 0x20]
cmp eax, 0xc
jb 0x4110a0
mov eax, dword [esi + 0x40]
mov edx, dword [0x449c88]
test edx, edx
je case.default.0x412967
xor edi, edi
mov ebx, dword [0x449c8c]
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp dword [ebx + edi*8], 0x68655b54
je 0x412937
inc edi
cmp edx, edi
jne 0x411100
jmp case.default.0x412967
jmp dword [0x443820]
xor ecx, ecx
test eax, eax
setle cl
jmp dword [ecx*4 + 0x44383c]
mov word [ebx], 0x9928
mov dword [ebx + 2], 0
mov dword [ebx + 6], 0
mov dword [ebx + 0xa], 0
mov dword [esi + 8], 0
mov eax, dword [esi + 8]
cmp eax, 0xd
ja 0x4111a7
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esi + 8]
mov ecx, dword [esi + 8]
movzx edx, byte [ebx + ecx]
lea ecx, [eax + edx]
add eax, 0xbc
and eax, edx
add eax, eax
sub ecx, eax
add ecx, 0xdb8d70bc
mov dword [esi + 0x40], ecx
mov eax, dword [esi + 0x40]
add al, 0xdc
mov ecx, dword [esi + 8]
mov byte [ebx + ecx], al
inc dword [esi + 8]
mov eax, dword [esi + 8]
cmp eax, 0xe
jb 0x411170
push ebx
push edi
call fcn.004026d0
add esp, 8
mov ecx, dword [esi + 0x190]
mov dword [ecx], eax
mov ebx, dword [esi + 0x1bc]
mov word [ebx], 0x817a
mov byte [ebx + 0xa], 0
mov dword [ebx + 6], 0
mov dword [ebx + 2], 0
mov dword [esi + 8], 0
mov eax, dword [esi + 8]
cmp eax, 0xa
ja 0x411257
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esi + 8]
mov ecx, dword [esi + 8]
movzx ecx, byte [ebx + ecx]
lea edx, [eax + 0xc0]
and edx, ecx
mov ebx, 0xf7bbb13f
sub ebx, eax
or ebx, ecx
add ecx, eax
add ecx, 0x8444ec0
add ebx, eax
lea eax, [edx + ebx]
add eax, 0x8444ec1
mov ebx, dword [esi + 0x1bc]
mov edx, eax
xor edx, ecx
not eax
and eax, ecx
add eax, eax
sub eax, edx
mov dword [esi + 0x40], eax
mov eax, dword [esi + 0x40]
mov ecx, eax
or ecx, 0xbf
and eax, 0xbf
add eax, ecx
inc al
mov ecx, dword [esi + 8]
mov byte [ebx + ecx], al
inc dword [esi + 8]
mov eax, dword [esi + 8]
cmp eax, 0xb
jb 0x4111f0
push ebx
push edi
call fcn.004026d0
add esp, 8
mov ecx, dword [esi + 0x18c]
mov dword [ecx], eax
mov ecx, dword [esi + 0x190]
mov edx, dword [ecx]
xor ecx, ecx
test edx, edx
sete cl
jmp dword [ecx*4 + 0x443a04]
xor ecx, ecx
test eax, eax
sete cl
jmp dword [ecx*4 + 0x443a0c]
mov eax, edx
nop
mov ebx, eax
inc eax
cmp byte [ebx], 0
jne 0x411290
mov eax, ebx
sub eax, edx
mov dword [esi], 0
mov dword [esi + 0x34], eax
test eax, eax
jle 0x4123b6
mov dword [esi + 0x18], edx
cmp byte [edx], 0
je 0x4123b9
mov dword [esi], 0
mov edi, dword [esi + 0x18]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov dword [esi + 0x40], 0
lea eax, [esi + 0x40]
push eax
push ebx
push edi
call fcn.0040eca0
add esp, 0xc
lea ecx, [edi + eax]
inc dword [esi]
cmp ecx, ebx
jae 0x4123b9
cmp byte [edi + eax], 0
mov edi, ecx
jne 0x4112d0
jmp 0x4123b9
mov edx, dword [esi + 0xac]
jmp dword [0x443a88]
mov word [edx], 0x55c6
mov dword [edx + 2], 0
mov dword [edx + 6], 0
mov dword [edx + 0xa], 0
mov byte [edx + 0xe], 0
mov dword [esi + 8], 0
mov eax, dword [esi + 8]
cmp eax, 0xe
ja 0x411383
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esi + 8]
mov ecx, dword [esi + 8]
mov edx, dword [esi + 0xac]
movzx edx, byte [edx + ecx]
lea ecx, [eax + edx]
add eax, 0x8d
and eax, edx
mov edx, dword [esi + 0xac]
add eax, eax
sub ecx, eax
add ecx, 0xfec0528d
mov dword [esi + 0x40], ecx
mov eax, dword [esi + 0x40]
add al, 0x25
mov ecx, dword [esi + 8]
mov byte [edx + ecx], al
inc dword [esi + 8]
mov eax, dword [esi + 8]
cmp eax, 0xf
jb 0x411340
push edx
push edi
call fcn.004026d0
add esp, 8
mov ecx, dword [esi + 0x138]
mov dword [ecx], eax
mov edx, dword [esi + 0x108]
mov word [edx], 0xb13a
mov dword [edx + 5], 0
mov dword [edx + 2], 0
mov dword [esi + 8], 0
mov eax, dword [esi + 8]
cmp eax, 8
ja 0x4113f9
nop
nop
nop
mov eax, dword [esi + 8]
mov ecx, dword [esi + 8]
movzx ecx, byte [edx + ecx]
lea edx, [eax + 0x38]
and edx, ecx
add eax, ecx
add edx, edx
sub eax, edx
mov edx, dword [esi + 0x108]
add eax, 0x2dc08138
mov dword [esi + 0x40], eax
mov eax, dword [esi + 0x40]
add al, 0x78
mov ecx, dword [esi + 8]
mov byte [edx + ecx], al
inc dword [esi + 8]
mov eax, dword [esi + 8]
cmp eax, 9
jb 0x4113c0
push edx
push edi
call fcn.004026d0
add esp, 8
mov ecx, dword [esi + 0x134]
mov dword [ecx], eax
mov edx, dword [esi + 0xac]
jmp case.0x412f97.61
push edx
push edi
call fcn.004026d0
add esp, 8
mov ecx, dword [esi + 0x134]
mov dword [ecx], eax
mov edx, dword [esi + 0xac]
jmp dword [0x443a8c]
mov word [edx], 0x55c6
mov dword [edx + 2], 0
mov dword [edx + 6], 0
mov dword [edx + 0xa], 0
mov byte [edx + 0xe], 0
mov dword [esi + 8], 0
mov eax, dword [esi + 8]
cmp eax, 0xe
ja 0x4114b3
nop
nop
nop
nop
nop
mov eax, dword [esi + 8]
mov ecx, dword [esi + 8]
mov edx, dword [esi + 0xac]
movzx edx, byte [edx + ecx]
lea ecx, [eax + edx]
add eax, 0x8d
and eax, edx
mov edx, dword [esi + 0xac]
add eax, eax
sub ecx, eax
add ecx, 0xfec0528d
mov dword [esi + 0x40], ecx
mov eax, dword [esi + 0x40]
add al, 0x25
mov ecx, dword [esi + 8]
mov byte [edx + ecx], al
inc dword [esi + 8]
mov eax, dword [esi + 8]
cmp eax, 0xf
jb 0x411470
push edx
push edi
call fcn.004026d0
add esp, 8
mov ecx, dword [esi + 0x138]
mov dword [ecx], eax
mov edx, dword [esi + 0x108]
mov word [edx], 0xb13a
mov dword [edx + 5], 0
mov dword [edx + 2], 0
mov dword [esi + 8], 0
mov eax, dword [esi + 8]
cmp eax, 8
ja 0x411420
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esi + 8]
mov ecx, dword [esi + 8]
movzx ecx, byte [edx + ecx]
lea edx, [eax + 0x38]
and edx, ecx
add eax, ecx
add edx, edx
sub eax, edx
mov edx, dword [esi + 0x108]
add eax, 0x2dc08138
mov dword [esi + 0x40], eax
mov eax, dword [esi + 0x40]
add al, 0x78
mov ecx, dword [esi + 8]
mov byte [edx + ecx], al
inc dword [esi + 8]
mov eax, dword [esi + 8]
cmp eax, 9
jb 0x411500
jmp 0x411420
sete al
movzx eax, al
jmp dword [eax*4 + 0x443844]
mov word [esi + 0x40], 0x2d9c
mov dword [esi + 0x42], 0
mov dword [esi + 0x46], 0
mov dword [esi + 0x4a], 0
mov byte [esi + 0x4e], 0
mov dword [esi + 0x20], 0
mov eax, dword [esi + 0x20]
cmp eax, 0xe
ja 0x4115b4
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esi + 0x20]
mov ecx, dword [esi + 0x20]
movzx ecx, byte [esi + ecx + 0x40]
lea edx, [eax - 0x74e3f3fa]
add eax, 6
and eax, ecx
or edx, ecx
sub edx, eax
mov dword [esi + 8], edx
mov eax, dword [esi + 8]
add al, 0xd6
mov ecx, dword [esi + 0x20]
mov byte [esi + ecx + 0x40], al
inc dword [esi + 0x20]
mov eax, dword [esi + 0x20]
cmp eax, 0xf
jb 0x411580
push 2
lea eax, [esi + 0x40]
push eax
push edi
call fcn.00402960
add esp, 0xc
xor ecx, ecx
test eax, eax
setne cl
mov al, 1
jmp dword [ecx*4 + 0x44384c]
mov word [esi + 8], 0x2d91
mov dword [esi + 0xa], 0
mov dword [esi + 0xe], 0
mov dword [esi + 0x12], 0
mov byte [esi + 0x16], 0
mov dword [esi + 0x1c], 0
mov eax, dword [esi + 0x1c]
cmp eax, 0xe
ja 0x411653
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esi + 0x1c]
mov ecx, dword [esi + 0x1c]
movzx ecx, byte [esi + ecx + 8]
add eax, 0x7c1c8586
mov edx, eax
and edx, ecx
mov ebx, eax
xor ebx, ecx
or eax, ecx
xor eax, ebx
lea ecx, [ebx + edx*2]
add eax, edx
sub ecx, eax
mov dword [esi + 0xb0], ecx
mov eax, dword [esi + 0xb0]
add al, 0x56
mov ecx, dword [esi + 0x1c]
mov byte [esi + ecx + 8], al
inc dword [esi + 0x1c]
mov eax, dword [esi + 0x1c]
cmp eax, 0xf
jb 0x411610
push 5
lea eax, [esi + 8]
push eax
push edi
call fcn.00402960
add esp, 0xc
xor ecx, ecx
test eax, eax
setne cl
mov al, 1
jmp dword [ecx*4 + 0x443854]
mov word [esi + 0x158], 0xd558
mov dword [esi + 0x15a], 0
mov word [esi + 0x15e], 0
mov dword [esi + 0x1c], 0
mov eax, dword [esi + 0x1c]
cmp eax, 7
ja 0x4116e4
nop
nop
nop
mov eax, dword [esi + 0x1c]
mov ecx, dword [esi + 0x1c]
movzx ecx, byte [esi + ecx + 0x158]
lea edx, [eax + 0xdd]
add eax, ecx
and edx, ecx
add edx, edx
sub eax, edx
add eax, 0x387042dd
mov dword [esi + 0xb0], eax
mov eax, dword [esi + 0xb0]
add al, 0xf5
mov ecx, dword [esi + 0x1c]
mov byte [esi + ecx + 0x158], al
inc dword [esi + 0x1c]
mov eax, dword [esi + 0x1c]
cmp eax, 8
jb 0x4116a0
push 2
lea eax, [esi + 0x158]
push eax
push edi
call fcn.00402960
add esp, 0xc
xor ecx, ecx
test eax, eax
setne cl
mov al, 1
jmp dword [ecx*4 + 0x44385c]
mov word [esi + 0x20], 0x9934
mov dword [esi + 0x22], 0
mov dword [esi + 0x26], 0
mov dword [esi + 0x2a], 0
mov byte [esi + 0x2e], 0
mov dword [esi + 0x1c], 0
mov eax, dword [esi + 0x1c]
cmp eax, 0xe
ja 0x411787
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esi + 0x1c]
mov ecx, dword [esi + 0x1c]
movzx edx, byte [esi + ecx + 0x20]
lea ecx, [eax + edx]
add ecx, 0xaa5aef3c
add eax, 0x3c
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 + 0xb0], eax
mov eax, dword [esi + 0xb0]
add al, 0x5c
mov ecx, dword [esi + 0x1c]
mov byte [esi + ecx + 0x20], al
inc dword [esi + 0x1c]
mov eax, dword [esi + 0x1c]
cmp eax, 0xf
jb 0x411740
push 3
lea eax, [esi + 0x20]
push eax
push edi
call fcn.00402960
add esp, 0xc
xor ecx, ecx
test eax, eax
setne cl
mov al, 1
jmp dword [ecx*4 + 0x443864]
movzx eax, al
jmp dword [eax*4 + 0x44386c]
mov word [esi + 0x40], 0x19a8
mov dword [esi + 0x42], 0
mov dword [esi + 0x46], 0
mov dword [esi + 0x4a], 0
mov byte [esi + 0x4e], 0
mov dword [esi + 0x20], 0
mov eax, dword [esi + 0x20]
cmp eax, 0xe
ja 0x411821
nop
nop
mov eax, dword [esi + 0x20]
mov ecx, dword [esi + 0x20]
movzx edx, byte [esi + ecx + 0x40]
lea ecx, [eax + edx]
add ecx, 0x3117617c
add eax, 0x7c
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, 0x9c
mov ecx, dword [esi + 0x20]
mov byte [esi + ecx + 0x40], al
inc dword [esi + 0x20]
mov eax, dword [esi + 0x20]
cmp eax, 0xf
jb 0x4117e0
lea eax, [esi + 0x40]
push eax
push edi
call fcn.004026d0
add esp, 8
mov dword [esi + 0x38], eax
mov word [esi + 0x40], 0x2db9
mov dword [esi + 0x42], 0
mov dword [esi + 0x46], 0
mov word [esi + 0x4a], 0
mov dword [esi + 0x20], 0
mov eax, dword [esi + 0x20]
cmp eax, 0xb
ja 0x411895
nop
nop
nop
nop
nop
nop
mov eax, dword [esi + 0x20]
mov ecx, dword [esi + 0x20]
movzx ecx, byte [esi + ecx + 0x40]
lea edx, [eax + 0x7a]
add eax, ecx
and edx, ecx
add edx, edx
sub eax, edx
add eax, 0x52d3ed7a
mov dword [esi + 8], eax
mov eax, dword [esi + 8]
add al, 0xaa
mov ecx, dword [esi + 0x20]
mov byte [esi + ecx + 0x40], al
inc dword [esi + 0x20]
mov eax, dword [esi + 0x20]
cmp eax, 0xc
jb 0x411860
lea eax, [esi + 0x40]
push eax
push edi
call fcn.004027a0
add esp, 8
mov dword [esi + 0xf0], eax
mov word [esi + 0x40], 0xd14c
mov dword [esi + 0x46], 0
mov dword [esi + 0x42], 0
mov dword [esi + 0x20], 0
mov eax, dword [esi + 0x20]
cmp eax, 9
ja 0x41190e
nop
nop
nop
nop
nop
mov eax, dword [esi + 0x20]
mov ecx, dword [esi + 0x20]
movzx edx, byte [esi + ecx + 0x40]
lea ecx, [eax - 0x4be2c6dd]
mov ebx, edx
not ebx
or ebx, ecx
and ecx, edx
add ecx, ebx
neg ecx
add eax, ecx
add eax, 0xb41d3922
mov dword [esi + 8], eax
mov eax, dword [esi + 8]
add al, 0xb
mov ecx, dword [esi + 0x20]
mov byte [esi + ecx + 0x40], al
inc dword [esi + 0x20]
mov eax, dword [esi + 0x20]
cmp eax, 0xa
jb 0x4118d0
lea eax, [esi + 0x40]
push eax
push edi
call fcn.004026d0
add esp, 8
mov dword [esi + 0xe0], eax
mov word [esi + 0x40], 0xcd28
mov dword [esi + 0x42], 0
mov dword [esi + 0x46], 0
mov word [esi + 0x4a], 0
mov dword [esi + 0x20], 0
mov eax, dword [esi + 0x20]
cmp eax, 0xb
ja 0x411989
nop
nop
nop
nop
nop
nop
mov eax, dword [esi + 0x20]
mov ecx, dword [esi + 0x20]
movzx ecx, byte [esi + ecx + 0x40]
lea edx, [eax + ecx]
add edx, 0x9d03ba1e
add eax, 0x9d03ba1e
and eax, ecx
add eax, eax
sub edx, eax
mov dword [esi + 8], edx
mov eax, dword [esi + 8]
add al, 0x2e
mov ecx, dword [esi + 0x20]
mov byte [esi + ecx + 0x40], al
inc dword [esi + 0x20]
mov eax, dword [esi + 0x20]
cmp eax, 0xc
jb 0x411950
lea eax, [esi + 0x40]
push eax
push edi
call fcn.00402730
add esp, 8
fnstcw word [esi + 0xda]
movzx eax, word [esi + 0xda]
or eax, 0xc00
mov word [esi + 0x142], ax
fldcw word [esi + 0x142]
fistp dword [esi + 0x1f0]
fldcw word [esi + 0xda]
mov eax, dword [esi + 0x1f0]
mov dword [esi + 0xc4], eax
mov word [esi + 0x40], 0xccc0
mov byte [esi + 0x42], pe_nt_image_headers32
mov dword [esi + 0x43], 0
mov dword [esi + 0x47], 0
mov dword [esi + 0x4b], 0
mov dword [esi + 0x20], 0
mov eax, dword [esi + 0x20]
cmp eax, 0xe
ja 0x411a38
nop
nop
nop
nop
nop
mov eax, dword [esi + 0x20]
mov ecx, dword [esi + 0x20]
movzx ecx, byte [esi + ecx + 0x40]
lea edx, [eax + 0x8f]
add eax, ecx
and edx, ecx
add edx, edx
sub eax, edx
add eax, 0x75abcb8f
mov dword [esi + 8], eax
mov eax, dword [esi + 8]
add al, 0x17
mov ecx, dword [esi + 0x20]
mov byte [esi + ecx + 0x40], al
inc dword [esi + 0x20]
mov eax, dword [esi + 0x20]
cmp eax, 0xf
jb 0x411a00
lea eax, [esi + 0x40]
push eax
push edi
call fcn.00402730
add esp, 8
fnstcw word [esi + 0xd8]
movzx eax, word [esi + 0xd8]
or eax, 0xc00
mov word [esi + 0x140], ax
fldcw word [esi + 0x140]
fistp dword [esi + 0x1ec]
fldcw word [esi + 0xd8]
mov eax, dword [esi + 0x1ec]
mov dword [esi + 0x1d4], eax
mov word [esi + 0x40], 0x6520
mov byte [esi + 0x42], 0xf8
mov dword [esi + 0x47], 0
mov dword [esi + 0x43], 0
mov dword [esi + 0x20], 0
mov eax, dword [esi + 0x20]
cmp eax, 0xa
ja 0x411ae4
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esi + 0x20]
mov ecx, dword [esi + 0x20]
movzx ecx, byte [esi + ecx + 0x40]
lea edx, [eax + 0x5a6bb83f]
add eax, 0x3f
and eax, ecx
or edx, ecx
sub edx, eax
mov dword [esi + 8], edx
mov eax, dword [esi + 8]
add al, 0x47
mov ecx, dword [esi + 0x20]
mov byte [esi + ecx + 0x40], al
inc dword [esi + 0x20]
mov eax, dword [esi + 0x20]
cmp eax, 0xb
jb 0x411ab0
lea eax, [esi + 0x40]
push eax
push edi
call fcn.00402800
add esp, 8
mov dword [esi + 0x1d0], eax
mov ebx, 0xffffffff
mov eax, dword [esi + 0x38]
nop
cmp byte [eax + ebx + 1], 0
lea ebx, [ebx + 1]
jne 0x411b00
mov edx, eax
add edx, ebx
mov dword [esi + 4], 0
test ebx, ebx
mov dword [esi], edx
jle 0x411b59
cmp byte [eax], 0
je 0x411b59
mov dword [esi + 4], 0
mov edi, dword [esi + 0x38]
nop
nop
nop
nop
nop
nop
mov dword [esi + 0x40], 0
lea eax, [esi + 0x40]
push eax
push edx
push edi
call fcn.0040eca0
mov edx, dword [esi]
add esp, 0xc
lea ecx, [edi + eax]
inc dword [esi + 4]
cmp ecx, edx
jae 0x411b59
cmp byte [edi + eax], 0
mov edi, ecx
jne 0x411b30
mov edi, dword [esi + 4]
mov eax, edi
inc eax
lea eax, [edi + edi + 2]
jns 0x411b6a
mov eax, 0xffffffff
push eax
call fcn.00408b20
add esp, 4
mov dword [esi + 0x40], 0
lea ecx, [eax + edi*2]
mov edi, eax
mov dword [esi + 0x34], eax
mov dword [esi + 0x18], ecx
cmp ecx, eax
mov ecx, dword [esi + 0x38]
mov edx, dword [esi]
jbe 0x411bce
mov edi, dword [esi + 0x34]
test ebx, ebx
jle 0x411bce
mov edi, dword [esi + 0x34]
nop
nop
nop
nop
nop
nop
nop
nop
cmp byte [ecx], 0
je 0x411bce
lea eax, [esi + 0x40]
push eax
push edx
push ecx
mov ebx, ecx
call fcn.0040eca0
add esp, 0xc
movzx ecx, word [esi + 0x40]
mov word [edi], cx
add edi, 2
cmp edi, dword [esi + 0x18]
jae 0x411bce
add ebx, eax
mov edx, dword [esi]
cmp ebx, edx
mov ecx, ebx
jb 0x411ba0
mov word [edi], 0
lea eax, [esi + 0x20]
push eax
push 0
push 0
push dword [esi + 4]
push dword [esi + 0x34]
push 0
call dword [0x449c84]
mov ebx, dword [esi + 0x20]
lea eax, [ebx + ebx]
test ebx, ebx
jns 0x411bf8
mov eax, 0xffffffff
push eax
call fcn.00408b20
add esp, 4
mov edi, eax
mov eax, dword [0x449c84]
mov dword [esi], eax
jmp dword [0x443874]
mov ecx, dword [esi + 0x138]
mov edx, dword [ecx]
xor ecx, ecx
test edx, edx
sete cl
jmp dword [ecx*4 + 0x443a94]
xor ecx, ecx
test eax, eax
sete cl
jmp dword [ecx*4 + 0x443a9c]
mov eax, edx
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov ebx, eax
inc eax
cmp byte [ebx], 0
jne 0x411c40
mov eax, ebx
sub eax, edx
mov dword [esi], 0
mov dword [esi + 0x34], eax
test eax, eax
mov dword [esi + 0x18], edx
jle 0x411c96
cmp byte [edx], 0
je 0x411c96
mov dword [esi], 0
mov edi, dword [esi + 0x18]
nop
nop
nop
nop
nop
nop
mov dword [esi + 0x40], 0
lea eax, [esi + 0x40]
push eax
push ebx
push edi
call fcn.0040eca0
add esp, 0xc
lea ecx, [edi + eax]
inc dword [esi]
cmp ecx, ebx
jae 0x411c96
cmp byte [edi + eax], 0
mov edi, ecx
jne 0x411c70
mov edi, dword [esi]
mov eax, edi
inc eax
lea eax, [edi + edi + 2]
jns 0x411ca6
mov eax, 0xffffffff
push eax
call fcn.00408b20
add esp, 4
mov edx, eax
mov eax, dword [esi + 0x17c]
mov dword [eax], edx
mov dword [esi + 0x40], 0
lea eax, [edx + edi*2]
mov dword [esi + 4], eax
cmp eax, edx
jbe 0x411d0c
cmp dword [esi + 0x34], 0
mov edi, dword [esi + 0x18]
jle 0x411d0c
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp byte [edi], 0
je 0x411d0c
lea eax, [esi + 0x40]
push eax
push ebx
push edi
mov dword [esi], edx
call fcn.0040eca0
mov edx, dword [esi]
add esp, 0xc
movzx ecx, word [esi + 0x40]
mov word [edx], cx
add edx, 2
cmp edx, dword [esi + 4]
jae 0x411d0c
add edi, eax
cmp edi, ebx
jb 0x411ce0
mov word [edx], 0
mov eax, dword [esi + 0x134]
mov ecx, dword [eax]
mov edi, 0xfffffffe
xor eax, eax
add edi, 2
cmp byte [ecx + eax], 0
lea eax, [eax + 1]
jne 0x411d20
mov dword [esi + 4], ecx
lea ebx, [eax - 1]
lea ecx, [edi + 2]
test eax, eax
jns 0x411d3e
mov ecx, 0xffffffff
push ecx
call fcn.00408b20
add esp, 4
mov edx, eax
mov eax, dword [esi + 0x178]
mov dword [eax], edx
mov ecx, dword [esi + 4]
test ecx, ecx
jne 0x411d69
mov ebx, ecx
not ebx
xor eax, eax
nop
nop
inc ebx
cmp byte [eax], 0
lea eax, [eax + 1]
jne 0x411d60
mov dword [esi + 0x40], 0
add edi, edx
cmp edi, edx
jbe 0x411db2
test ebx, ebx
jle 0x411db2
add ebx, ecx
mov dword [esi], ebx
nop
nop
cmp byte [ecx], 0
je 0x411db2
lea eax, [esi + 0x40]
push eax
push dword [esi]
push ecx
mov ebx, ecx
mov dword [esi + 4], edx
call fcn.0040eca0
mov edx, dword [esi + 4]
add esp, 0xc
movzx ecx, word [esi + 0x40]
mov word [edx], cx
add edx, 2
cmp edx, edi
jae 0x411db2
add ebx, eax
cmp ebx, dword [esi]
mov ecx, ebx
jb 0x411d80
mov word [edx], 0
mov eax, dword [esi + 0xf4]
mov dword [eax], 0
mov eax, dword [esi + 0xfc]
mov dword [eax], 0
mov ebx, dword [esi + 0x1c8]
mov word [ebx], 0x8981
mov byte [ebx + 2], 0x10
mov dword [ebx + 3], 0
mov dword [ebx + 7], 0
mov dword [ebx + 0xb], 0
mov byte [ebx + 0xf], 0
mov dword [esi + 8], 0
mov eax, dword [esi + 8]
cmp eax, 0xf
ja 0x411e59
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esi + 8]
mov ecx, dword [esi + 8]
movzx edi, byte [ebx + ecx]
lea ecx, [eax - 0x34f269fd]
mov edx, ecx
and edx, edi
xor ecx, edi
add eax, 3
and eax, edi
add eax, edx
sub ecx, eax
lea eax, [ecx + edx*2]
mov dword [esi + 0x40], eax
mov eax, dword [esi + 0x40]
add al, 0xeb
mov ecx, dword [esi + 8]
mov byte [ebx + ecx], al
mov eax, dword [esi + 8]
mov ecx, eax
and ecx, 1
xor eax, 1
lea eax, [eax + ecx*2]
mov dword [esi + 8], eax
mov eax, dword [esi + 8]
cmp eax, 0x10
jb 0x411e10
push ebx
push dword [ebp + 8]
call fcn.004027a0
add esp, 8
mov ecx, dword [esi + 0x1a0]
mov dword [ecx], eax
xor ecx, ecx
test eax, eax
setne cl
jmp dword [ecx*4 + 0x443aa4]
push eax
call fcn.004029d0
add esp, 4
mov edi, eax
mov ecx, 0xc
mul ecx
seto dl
mov ecx, 0xffffffff
mov ebx, 0xffffffff
add eax, 4
jb 0x411ea1
mov ebx, eax
mov eax, dword [esi + 0xfc]
mov dword [eax], edi
test dl, dl
jne 0x411eaf
mov ecx, ebx
push ecx
call fcn.00408b20
add esp, 4
mov dword [eax], edi
add eax, 4
xor ecx, ecx
test edi, edi
sete cl
jmp dword [ecx*4 + 0x443aac]
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 + 0x443ab4]
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 + 0x443ab4]
mov ecx, dword [esi + 0xf4]
mov dword [ecx], eax
mov edi, dword [esi + 0x104]
lea eax, [edi + 3]
mov dword [esi + 0x18], eax
mov eax, dword [esi + 0x194]
add eax, 3
mov dword [esi + 0x34], eax
mov eax, dword [esi + 0xcc]
add eax, 3
mov dword [esi + 0x38], eax
xor eax, eax
mov ecx, dword [esi + 0x128]
nop
nop
nop
nop
nop
nop
nop
mov dword [ecx], eax
mov ecx, dword [case.0x411e74.8]
nop
nop
nop
nop
nop
nop
nop
nop
jmp ecx
xor ecx, ecx
mov edx, dword [esi + 0xfc]
cmp eax, dword [edx]
setb cl
jmp dword [ecx*4 + 0x443acc]
push eax
mov eax, dword [esi + 0x1a0]
push dword [eax]
call fcn.004029e0
add esp, 8
mov ebx, dword [esi + 0x1d8]
mov dword [ebx], eax
mov word [edi], 0xf05
mov byte [edi + 2], 0x62
mov ecx, dword [esi + 0x18]
mov dword [ecx], 0
mov dword [ecx + 4], 0
mov word [ecx + 8], 0
mov dword [esi + 8], 0
mov ecx, dword [esi + 8]
cmp ecx, 0xc
ja 0x412015
nop
nop
nop
mov ecx, dword [esi + 8]
mov edx, dword [esi + 8]
mov edi, dword [esi + 0x104]
movzx edi, byte [edi + edx]
lea edx, [ecx + edi]
add ecx, 0xf0
and ecx, edi
mov edi, dword [esi + 0x104]
add ecx, ecx
sub edx, ecx
add edx, 0x57e5fff0
mov dword [esi + 0x40], edx
mov ecx, dword [esi + 0x40]
add cl, 0x70
mov edx, dword [esi + 8]
mov byte [edi + edx], cl
inc dword [esi + 8]
mov ecx, dword [esi + 8]
cmp ecx, 0xd
jb 0x411fd0
push edi
push eax
call fcn.004026d0
add esp, 8
mov ecx, dword [esi + 0x1ac]
mov dword [ecx], eax
mov edi, dword [esi + 0x194]
mov word [edi], 0x2335
mov byte [edi + 2], 0x9a
mov eax, dword [esi + 0x34]
mov dword [eax], 0
mov dword [eax + 3], 0
mov dword [esi + 8], 0
mov eax, dword [esi + 8]
cmp eax, 9
ja 0x4120a5
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 - 0x15fd2544]
and edx, ecx
add eax, ecx
add eax, 0xea02dabc
add edx, edx
sub eax, edx
mov dword [esi + 0x40], eax
mov eax, dword [esi + 0x40]
mov ecx, eax
or ecx, 0xdb
and eax, 0xdb
add eax, ecx
inc al
mov ecx, dword [esi + 8]
mov byte [edi + ecx], al
inc dword [esi + 8]
mov eax, dword [esi + 8]
cmp eax, 0xa
jb 0x412060
push edi
push dword [ebx]
call fcn.004026d0
add esp, 8
mov ecx, dword [esi + 0x1a8]
mov dword [ecx], eax
mov ecx, dword [esi + 0xcc]
mov word [ecx], 0x2d11
mov byte [ecx + 2], 0xb8
mov eax, dword [esi + 0x38]
mov dword [eax], 0
mov dword [eax + 3], 0
mov dword [esi + 8], 0
mov eax, dword [esi + 8]
cmp eax, 9
mov edi, dword [esi + 0x128]
ja 0x412146
nop
nop
nop
nop
mov eax, dword [esi + 8]
mov ecx, dword [esi + 8]
mov edx, dword [esi + 0xcc]
movzx ecx, byte [edx + ecx]
lea edx, [eax + 0x16ca98c7]
and edx, ecx
add eax, ecx
add eax, 0x16ca98c7
add edx, edx
sub eax, edx
mov dword [esi + 0x40], eax
mov eax, dword [esi + 0x40]
mov ecx, eax
xor ecx, 0x8e
and eax, 0xe
lea eax, [ecx + eax*2]
inc al
mov ecx, dword [esi + 8]
mov edx, dword [esi + 0xcc]
mov byte [edx + ecx], al
mov ecx, dword [esi + 0xcc]
inc dword [esi + 8]
mov eax, dword [esi + 8]
cmp eax, 0xa
jb 0x4120f0
push ecx
push dword [ebx]
call fcn.004026d0
add esp, 8
mov ecx, dword [esi + 0xf4]
mov ecx, dword [ecx]
mov edx, dword [edi]
lea edx, [edx + edx*2]
mov edi, dword [esi + 0x1ac]
mov edi, dword [edi]
mov ebx, dword [esi + 0x1a8]
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 + 4], eax
mov eax, ebx
mov edi, 0xfffffffe
xor ebx, ebx
nop
nop
nop
nop
add edi, 2
cmp byte [eax + ebx], 0
lea ebx, [ebx + 1]
jne 0x412190
test ebx, ebx
mov dword [esi], eax
jns 0x4121b0
mov eax, 0xffffffff
jmp 0x4121b3
lea eax, [edi + 2]
push eax
call fcn.00408b20
add esp, 4
mov edx, eax
mov eax, dword [esi + 4]
mov dword [eax], edx
mov ecx, dword [esi]
test ecx, ecx
je 0x4121d0
dec ebx
jmp 0x4121e9
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 0x4121e0
mov dword [esi + 0x40], 0
add edi, edx
cmp edi, edx
jbe 0x412240
test ebx, ebx
jle 0x412240
add ebx, ecx
nop
nop
nop
nop
cmp byte [ecx], 0
je 0x412240
lea eax, [esi + 0x40]
push eax
push ebx
push ecx
mov dword [esi], ecx
mov dword [esi + 4], edx
call fcn.0040eca0
mov edx, dword [esi + 4]
add esp, 0xc
movzx ecx, word [esi + 0x40]
mov word [edx], cx
add edx, 2
cmp edx, edi
jae 0x412240
mov ecx, dword [esi]
add ecx, eax
cmp ecx, ebx
jb 0x412200
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov word [edx], 0
mov ecx, dword [esi + 0x128]
mov eax, dword [ecx]
inc eax
mov edi, dword [esi + 0x104]
jmp 0x411f60
jmp case.0x4108df.4
jmp dword [0x443ad4]
jmp dword [0x443adc]
jmp dword [0x443adc]
mov ecx, dword [esi + 0xbc]
push 3
call fcn.00409430
mov eax, dword [esi + 0xf4]
mov edi, dword [eax]
mov eax, dword [esi + 0x178]
mov ecx, dword [eax]
mov eax, dword [esi + 0x17c]
mov edx, dword [eax]
mov eax, dword [esi + 0xfc]
push dword [eax]
push edi
mov dword [esi], ecx
push ecx
mov dword [esi + 4], edx
push edx
push dword [esi + 0xbc]
call fcn.00418b20
add esp, 0x14
mov ecx, dword [esi + 0xbc]
call fcn.00409db0
xor eax, eax
test edi, edi
sete al
jmp dword [eax*4 + 0x443ae4]
lea eax, [edi - 4]
mov dword [esi + 0x18], 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 + 0x443aec]
push dword [esi + 0x18]
call fcn.00408b30
add esp, 4
xor eax, eax
mov ecx, dword [esi + 4]
test ecx, ecx
sete al
jmp dword [eax*4 + 0x443b0c]
xor eax, eax
mov ecx, dword [esi]
test ecx, ecx
sete al
mov edi, dword [esi + 0xbc]
jmp dword [eax*4 + 0x443b14]
add ebx, 0xfffffff4
xor eax, eax
cmp ebx, edi
sete al
jmp dword [eax*4 + 0x443b04]
jmp dword [0x443af8]
mov eax, dword [ebx - 0xc]
test eax, eax
je case.0x412f97.89
push eax
call fcn.00408b30
add esp, 4
jmp case.0x412f97.89
jmp dword [0x443b00]
mov eax, dword [ebx - 0xc]
test eax, eax
je 0x412360
push eax
call fcn.00408b30
add esp, 4
jmp 0x412360
xor eax, eax
mov ecx, dword [esi + 4]
test ecx, ecx
sete al
jmp dword [eax*4 + 0x443b0c]
push ecx
call fcn.00408b30
add esp, 4
xor eax, eax
mov ecx, dword [esi]
test ecx, ecx
sete al
mov edi, dword [esi + 0xbc]
jmp dword [eax*4 + 0x443b14]
push ecx
call fcn.00408b30
add esp, 4
jmp case.0x412f97.97
mov dword [esi + 0x18], edx
mov edi, dword [esi]
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 0x4123d4
mov eax, 0xffffffff
push eax
call fcn.00408b20
add esp, 4
mov edx, eax
mov eax, dword [esi + 0xec]
mov dword [eax], edx
mov dword [esi + 0x40], 0
lea eax, [edx + edi*2]
mov dword [esi + 4], eax
cmp eax, edx
jbe 0x41243c
cmp dword [esi + 0x34], 0
mov edi, dword [esi + 0x18]
jle 0x41243c
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp byte [edi], 0
je 0x41243c
lea eax, [esi + 0x40]
push eax
push ebx
push edi
mov dword [esi], edx
call fcn.0040eca0
mov edx, dword [esi]
add esp, 0xc
movzx ecx, word [esi + 0x40]
mov word [edx], cx
add edx, 2
cmp edx, dword [esi + 4]
jae 0x41243c
add edi, eax
cmp edi, ebx
jb 0x412410
mov word [edx], 0
mov eax, dword [esi + 0x18c]
mov eax, dword [eax]
mov ecx, 0xffffffff
nop
nop
mov ebx, ecx
cmp byte [eax + ecx + 1], 0
lea ecx, [ecx + 1]
jne 0x412450
lea edx, [eax + ecx]
xor ebx, ebx
mov dword [esi + 0x38], ecx
test ecx, ecx
mov dword [esi], edx
mov dword [esi + 0x34], eax
jle 0x4124a7
cmp byte [eax], 0
je 0x4124a7
xor ebx, ebx
mov edi, dword [esi + 0x34]
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov dword [esi + 0x40], 0
lea eax, [esi + 0x40]
push eax
push edx
push edi
call fcn.0040eca0
mov edx, dword [esi]
add esp, 0xc
lea ecx, [edi + eax]
inc ebx
cmp ecx, edx
jae 0x4124a7
cmp byte [edi + eax], 0
mov edi, ecx
jne 0x412480
mov eax, ebx
inc eax
lea eax, [ebx + ebx + 2]
jns 0x4124b5
mov eax, 0xffffffff
push eax
call fcn.00408b20
add esp, 4
mov ecx, eax
mov eax, dword [esi + 0xe8]
mov dword [eax], ecx
mov dword [esi + 0x40], 0
lea eax, [ecx + ebx*2]
mov dword [esi + 4], ecx
mov dword [esi + 0x18], eax
cmp eax, ecx
jbe 0x412524
cmp dword [esi + 0x38], 0
mov edi, dword [esi + 0x34]
mov edx, dword [esi]
jle 0x412524
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp byte [edi], 0
je 0x412524
lea eax, [esi + 0x40]
push eax
push edx
push edi
mov ebx, edx
call fcn.0040eca0
add esp, 0xc
movzx ecx, word [esi + 0x40]
mov edx, dword [esi + 4]
mov word [edx], cx
mov ecx, edx
add ecx, 2
cmp ecx, dword [esi + 0x18]
mov dword [esi + 4], ecx
jae 0x412524
add edi, eax
cmp edi, ebx
mov edx, ebx
jb 0x4124f0
mov eax, dword [esi + 4]
mov word [eax], 0
mov eax, dword [esi + 0xc8]
mov dword [eax], 0
mov eax, dword [esi + 0xf8]
mov dword [eax], 0
mov edi, dword [esi + 0x1cc]
mov word [edi], 0xd5c9
mov byte [edi + 2], 0x72
mov dword [edi + 3], 0
mov dword [edi + 7], 0
mov dword [edi + 0xa], 0
mov dword [esi + 8], 0
mov eax, dword [esi + 8]
cmp eax, 0xd
ja 0x4125b7
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, 0xdade450e
add eax, 0xdade450e
and eax, ecx
add eax, eax
sub edx, eax
mov dword [esi + 0x40], edx
mov eax, dword [esi + 0x40]
add al, 0x9e
mov ecx, dword [esi + 8]
mov byte [edi + ecx], al
inc dword [esi + 8]
mov eax, dword [esi + 8]
cmp eax, 0xe
jb 0x412580
push edi
push dword [ebp + 8]
call fcn.004027a0
add esp, 8
mov ecx, dword [esi + 0x1a4]
mov dword [ecx], eax
xor ecx, ecx
test eax, eax
setne cl
jmp dword [ecx*4 + 0x443a14]
push eax
call fcn.004029d0
add esp, 4
mov ebx, eax
mov ecx, 0xc
mul ecx
seto dl
mov ecx, 0xffffffff
mov edi, 0xffffffff
add eax, 4
jb 0x4125ff
mov edi, eax
mov eax, dword [esi + 0xf8]
mov dword [eax], ebx
test dl, dl
jne 0x41260d
mov ecx, edi
push ecx
call fcn.00408b20
add esp, 4
mov dword [eax], ebx
add eax, 4
xor ecx, ecx
mov edx, ebx
mov dword [esi + 4], ebx
test ebx, ebx
sete cl
jmp dword [ecx*4 + 0x443a1c]
mov ecx, dword [esi + 4]
lea ecx, [ecx + ecx*2]
lea ecx, [eax + ecx*4]
mov dword [eax], 0
mov dword [eax + 4], 0
mov byte [eax + 8], 0
lea edx, [eax + 0xc]
xor ebx, ebx
cmp edx, ecx
sete bl
jmp dword [ebx*4 + 0x443a24]
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 + 0x443a24]
mov ecx, dword [esi + 0xc8]
mov dword [ecx], eax
mov eax, dword [esi + 0x100]
add eax, 3
mov dword [esi], eax
xor edi, edi
xor eax, eax
cmp edi, dword [esi + 4]
mov ecx, dword [esi + 0xd0]
lea ecx, [ecx + 3]
mov dword [esi + 4], ecx
mov ecx, dword [esi + 0x12c]
mov dword [ecx], edi
setb al
mov ecx, dword [esi + 0x198]
add ecx, 4
mov dword [esi + 0x18], ecx
mov ebx, dword [esi + 0x19c]
jmp dword [eax*4 + 0x443a2c]
jmp dword [0x443a38]
jmp dword [0x443a3c]
jmp dword [0x443a3c]
mov edi, dword [esi + 0x124]
mov ecx, edi
push 2
call fcn.00409430
mov eax, dword [esi + 0xc8]
mov ecx, dword [eax]
mov eax, dword [esi + 0xf8]
push dword [eax]
mov dword [esi], ecx
push ecx
mov eax, dword [esi + 0xe8]
push dword [eax]
mov eax, dword [esi + 0xec]
push dword [eax]
push edi
call fcn.00415e70
add esp, 0x14
jmp dword [0x443a48]
push edi
push dword [ebx]
call fcn.00402800
add esp, 8
xor edx, edx
test eax, eax
setg dl
mov eax, dword [esi + 0x12c]
mov edi, dword [eax]
lea ecx, [edi + edi*2]
shl ecx, 2
mov eax, dword [esi + 0xc8]
add ecx, dword [eax]
push edx
mov eax, dword [esi + 0x1b4]
push dword [eax]
mov eax, dword [esi + 0x1b0]
push dword [eax]
call fcn.00415940
inc edi
mov eax, dword [esi + 0xf8]
mov eax, dword [eax]
xor ecx, ecx
cmp edi, eax
mov eax, dword [esi + 0x12c]
mov dword [eax], edi
setb cl
jmp dword [ecx*4 + 0x443a2c]
push edi
mov eax, dword [esi + 0x1a4]
push dword [eax]
call fcn.004029e0
add esp, 8
mov dword [ebx], eax
mov edi, dword [esi + 0x100]
mov word [edi], 0x9f89
mov byte [edi + 2], 0x72
mov ecx, dword [esi]
mov dword [ecx], 0
mov byte [ecx + 4], 0
mov dword [esi + 8], 0
mov ecx, dword [esi + 8]
cmp ecx, 7
ja 0x41281f
nop
nop
nop
nop
nop
nop
mov ecx, dword [esi + 8]
mov edx, dword [esi + 8]
mov edi, dword [esi + 0x100]
movzx edi, byte [edi + edx]
lea edx, [ecx + edi]
add edx, 0xd376ff2e
add ecx, 0xd376ff2e
and ecx, edi
add ecx, ecx
mov edi, ecx
xor edi, edx
not ecx
and ecx, edx
add ecx, ecx
sub ecx, edi
mov edi, dword [esi + 0x100]
mov dword [esi + 0x40], ecx
mov ecx, dword [esi + 0x40]
add cl, 0xbe
mov edx, dword [esi + 8]
mov byte [edi + edx], cl
inc dword [esi + 8]
mov ecx, dword [esi + 8]
cmp ecx, 8
jb 0x4127d0
push edi
push eax
call fcn.004026d0
add esp, 8
mov ecx, dword [esi + 0x1b4]
mov dword [ecx], eax
mov ecx, dword [esi + 0xd0]
mov word [ecx], 0xc3d1
mov byte [ecx + 2], 0xb8
mov eax, dword [esi + 4]
mov dword [eax], 0
mov dword [eax + 3], 0
mov dword [esi + 8], 0
mov eax, dword [esi + 8]
cmp eax, 9
ja 0x4128b4
nop
mov ebx, dword [esi + 8]
lea ecx, [ebx + 0x37]
lea edx, [ebx - 0x211d40c9]
mov edi, ecx
and edi, edx
or ecx, edx
mov edx, dword [esi + 8]
mov eax, dword [esi + 0xd0]
movzx edx, byte [eax + edx]
and edi, edx
and ecx, edx
add ecx, edi
lea eax, [ebx + edx]
add eax, 0xdee2bf37
sub eax, ecx
mov dword [esi + 0x40], eax
mov eax, dword [esi + 0x40]
add al, 0x7f
mov ecx, dword [esi + 8]
mov edx, dword [esi + 0xd0]
mov byte [edx + ecx], al
mov ecx, dword [esi + 0xd0]
inc dword [esi + 8]
mov eax, dword [esi + 8]
cmp eax, 0xa
jb 0x412860
push ecx
mov ebx, dword [esi + 0x19c]
push dword [ebx]
call fcn.004026d0
add esp, 8
mov ecx, dword [esi + 0x1b0]
mov dword [ecx], eax
mov edi, dword [esi + 0x198]
mov dword [edi], 0x5b3835cc
mov eax, dword [esi + 0x18]
mov dword [eax], 0
mov word [eax + 4], 0
mov dword [esi + 8], 0
mov eax, dword [esi + 8]
cmp eax, 9
ja 0x412730
nop
nop
nop
nop
nop
mov eax, dword [esi + 8]
mov ecx, dword [esi + 8]
movzx ecx, byte [edi + ecx]
lea edx, [eax + 0x222afd4c]
add eax, 0x4c
and eax, ecx
or edx, ecx
sub edx, eax
mov dword [esi + 0x40], edx
mov eax, dword [esi + 0x40]
add al, 0xec
mov ecx, dword [esi + 8]
mov byte [edi + ecx], al
inc dword [esi + 8]
mov eax, dword [esi + 8]
cmp eax, 0xa
jb 0x412900
jmp 0x412730
mov edx, dword [ebx + edi*8 + 4]
cmp edx, eax
je case.default.0x412967
push dword [esi + 0x10c]
push 0
push 0
push 0x2b
push ecx
push 5
push dword [0x449c90]
push edx
call fcn.0043a6a0
add esp, 0x20
xor ecx, ecx
cmp eax, 0xc0000004
sete cl
jmp dword [ecx*4 + 0x44392c]
mov edi, dword [esi + 0x10c]
mov eax, dword [edi]
add eax, 2
push eax
call fcn.00438d50
add esp, 4
mov ecx, eax
mov eax, dword [esi + 0x114]
mov dword [esi], ecx
mov dword [eax], ecx
mov eax, dword [edi]
add eax, 2
mov ecx, dword [esi + 0x118]
mov ecx, dword [ecx]
mov dword [esi + 4], ecx
mov dword [esi + 0x40], 0x2010007
mov dword [esi + 0x48], 0
mov dword [esi + 0x44], 0
mov dword [esi + 0x20], 0
mov ecx, dword [esi + 0x20]
cmp ecx, 0xb
ja 0x412a10
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov ecx, dword [esi + 0x20]
mov edx, dword [esi + 0x20]
movzx edi, byte [esi + edx + 0x40]
lea edx, [ecx - 0x4057fad5]
mov ebx, edi
not ebx
or ebx, edx
and edx, edi
add edx, ebx
neg edx
add ecx, edx
add ecx, 0xbfa8052a
mov dword [esi + 8], ecx
mov ecx, dword [esi + 8]
add cl, 0xd3
mov edx, dword [esi + 0x20]
mov byte [esi + edx + 0x40], cl
inc dword [esi + 0x20]
mov ecx, dword [esi + 0x20]
cmp ecx, 0xc
jb 0x4129d0
mov ecx, dword [esi + 0x40]
mov ebx, dword [0x449c88]
test ebx, ebx
je 0x412a42
xor edi, edi
mov edx, dword [0x449c8c]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp dword [edx + edi*8], 0x68655b54
je 0x412c00
inc edi
cmp ebx, edi
jne 0x412a30
mov edi, dword [esi + 0x3c]
not ecx
shr ecx, 0x1f
jmp dword [ecx*4 + 0x443934]
mov ebx, 0xfffffffe
xor eax, eax
nop
nop
nop
nop
nop
nop
nop
nop
add ebx, 2
cmp byte [edi + eax], 0
lea eax, [eax + 1]
jne 0x412a60
lea edi, [eax - 1]
mov ecx, dword [esi + 0x16c]
mov dword [ecx], edi
lea ecx, [ebx + 2]
test eax, eax
jns 0x412a83
mov ecx, 0xffffffff
push ecx
call fcn.00408b20
add esp, 4
mov ecx, eax
mov eax, dword [esi + 0x110]
mov dword [eax], ecx
cmp dword [esi + 0x3c], 0
jne 0x412ab9
mov edi, dword [esi + 0x3c]
not edi
xor eax, eax
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
inc edi
cmp byte [eax], 0
lea eax, [eax + 1]
jne 0x412ab0
mov dword [esi + 0x40], 0
add ebx, ecx
cmp ebx, ecx
jbe 0x412b10
test edi, edi
jle 0x412b10
mov eax, dword [esi + 0x3c]
mov edx, eax
add edx, edi
mov edi, eax
mov dword [esi + 4], edx
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp byte [edi], 0
je 0x412b10
lea eax, [esi + 0x40]
push eax
push edx
push edi
mov dword [esi], ecx
call fcn.0040eca0
add esp, 0xc
movzx ecx, word [esi + 0x40]
mov edx, dword [esi]
mov word [edx], cx
mov ecx, dword [esi]
add ecx, 2
cmp ecx, ebx
jae 0x412b10
add edi, eax
mov edx, dword [esi + 4]
cmp edi, edx
jb 0x412ae0
mov word [ecx], 0
mov eax, dword [esi + 0x114]
mov eax, dword [eax]
mov edi, dword [eax + 4]
mov dword [esi + 0x18], eax
movzx eax, word [eax]
and eax, 0xfffffffe
add eax, edi
add eax, 0xfffffffe
xor edx, edx
cmp eax, edi
setae dl
mov ecx, eax
jmp dword [edx*4 + 0x44393c]
xor edx, edx
cmp word [ecx], 0
setne dl
mov ebx, eax
jmp dword [edx*4 + 0x443944]
mov word [esi + 0x148], 0xaab6
mov byte [esi + 0x14a], 0x1a
mov dword [esi + 0x14b], 0
mov dword [esi + 0x14f], 0
mov dword [esi + 0x153], 0
mov dword [esi + 0x1c], 0
mov eax, dword [esi + 0x1c]
cmp eax, 0xe
ja 0x412be0
nop
nop
nop
mov eax, dword [esi + 0x1c]
mov ecx, dword [esi + 0x1c]
movzx ecx, byte [esi + ecx + 0x148]
lea edx, [eax - 0x39e81704]
add eax, 0xfc
and eax, ecx
or edx, ecx
sub edx, eax
mov dword [esi + 0xb0], edx
mov eax, dword [esi + 0xb0]
add al, 0x1c
mov ecx, dword [esi + 0x1c]
mov byte [esi + ecx + 0x148], al
mov eax, dword [esi + 0x1c]
mov ecx, eax
and ecx, 1
xor eax, 1
lea eax, [eax + ecx*2]
mov dword [esi + 0x1c], eax
mov eax, dword [esi + 0x1c]
cmp eax, 0xf
jb 0x412b90
push 3
lea eax, [esi + 0x148]
push eax
push edi
call fcn.00402960
add esp, 0xc
xor ecx, ecx
test eax, eax
sete cl
jmp dword [ecx*4 + 0x44386c]
mov edx, dword [edx + edi*8 + 4]
cmp edx, ecx
mov edi, dword [esi + 0x3c]
je 0x412a45
push 0
push eax
push dword [esi]
push 0x2b
push dword [esi + 4]
push 5
push dword [0x449c90]
push edx
call fcn.0043a6a0
add esp, 0x20
mov ecx, eax
jmp 0x412a45
mov word [esi + 0x158], 0xc0cc
mov byte [esi + 0x15a], 0x54
mov dword [esi + 0x15b], 0
mov dword [esi + 0x15f], 0
mov word [esi + 0x163], 0
mov dword [esi + 0x30], 0
mov eax, dword [esi + 0x30]
cmp eax, 0xc
ja 0x412cbc
nop
nop
nop
mov eax, dword [esi + 0x30]
mov ecx, dword [esi + 0x30]
movzx ecx, byte [esi + ecx + 0x158]
lea edx, [eax + 0x7184d04d]
and edx, ecx
add eax, ecx
add eax, 0x7184d04d
add edx, edx
sub eax, edx
mov dword [esi + 0x1c], eax
mov eax, dword [esi + 0x1c]
mov ecx, eax
xor ecx, 0xe4
and eax, 0x64
lea eax, [ecx + eax*2]
inc al
mov ecx, dword [esi + 0x30]
mov byte [esi + ecx + 0x158], al
inc dword [esi + 0x30]
mov eax, dword [esi + 0x30]
cmp eax, 0xd
jb 0x412c70
push 3
lea eax, [esi + 0x158]
push eax
push edi
call fcn.00402960
add esp, 0xc
xor ecx, ecx
test eax, eax
sete cl
jmp dword [ecx*4 + 0x443914]
mov ebx, eax
inc eax
cmp byte [ebx], 0
jne case.0x412b37.9
mov eax, ebx
sub eax, edi
mov dword [esi], 0
test eax, eax
mov dword [esi + 0x18], eax
jle 0x412d36
cmp byte [edi], 0
je 0x412d36
mov dword [esi], 0
mov edi, dword [esi + 0xc4]
nop
nop
nop
nop
nop
nop
mov dword [esi + 0x40], 0
lea eax, [esi + 0x40]
push eax
push ebx
push edi
call fcn.0040eca0
add esp, 0xc
lea ecx, [edi + eax]
inc dword [esi]
cmp ecx, ebx
jae 0x412d36
cmp byte [edi + eax], 0
mov edi, ecx
jne 0x412d10
mov edi, dword [esi]
mov eax, edi
inc eax
lea eax, [edi + edi + 2]
jns 0x412d46
mov eax, 0xffffffff
push eax
call fcn.00408b20
add esp, 4
mov ecx, eax
mov eax, dword [esi + 0x120]
mov dword [eax], ecx
mov dword [esi + 0x40], 0
lea eax, [ecx + edi*2]
mov dword [esi + 4], eax
cmp eax, ecx
jbe 0x412dae
cmp dword [esi + 0x18], 0
jle 0x412dae
mov edi, dword [esi + 0xc4]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp byte [edi], 0
je 0x412dae
lea eax, [esi + 0x40]
push eax
push ebx
push edi
mov dword [esi], ecx
call fcn.0040eca0
add esp, 0xc
movzx ecx, word [esi + 0x40]
mov edx, dword [esi]
mov word [edx], cx
mov ecx, dword [esi]
add ecx, 2
cmp ecx, dword [esi + 4]
jae 0x412dae
add edi, eax
cmp edi, ebx
jb 0x412d80
mov word [ecx], 0
mov ecx, dword [esi + 0x11c]
push 1
call fcn.00409430
mov eax, dword [esi + 0x188]
mov dword [eax], 0
xor ebx, ebx
mov edi, dword [esi + 0x34]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
push edi
call fcn.004029d0
add esp, 4
xor ecx, ecx
cmp ebx, eax
setb cl
jmp dword [ecx*4 + 0x443974]
jmp dword [0x44397c]
xor eax, eax
mov edi, dword [esi + 0x34]
jmp dword [eax*4 + 0x44399c]
push edi
call fcn.00408b30
add esp, 4
xor eax, eax
mov edi, dword [esi + 0x34]
jmp dword [eax*4 + 0x44399c]
jmp 0x412de0
xor ecx, ecx
test eax, eax
sete cl
jmp dword [ecx*4 + 0x44398c]
mov ecx, eax
mov edi, ecx
inc ecx
cmp byte [edi], 0
jne 0x412e50
sub edi, eax
mov ecx, edi
inc ecx
mov dword [esi + 0x18], eax
jns 0x412ec0
mov eax, 0xffffffff
jmp 0x412ec6
mov eax, 1
jmp dword [eax*4 + 0x44399c]
mov eax, dword [case.0x412f97.3]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
jmp eax
mov eax, dword [esi + 0x188]
mov ebx, dword [eax]
inc ebx
mov dword [eax], ebx
mov eax, dword [case.0x412f97.11]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
jmp eax
lea eax, [edi + edi]
add eax, 2
push eax
call fcn.00408b20
add esp, 4
mov ebx, eax
mov eax, dword [esi + 0x184]
mov dword [eax], ebx
mov eax, edi
mov edx, dword [esi + 0x18]
test edx, edx
jne 0x412ef9
mov eax, edx
not eax
xor ecx, ecx
nop
nop
nop
nop
nop
nop
nop
nop
inc eax
cmp byte [ecx], 0
lea ecx, [ecx + 1]
jne 0x412ef0
mov dword [esi + 0x40], 0
lea ecx, [ebx + edi*2]
mov dword [esi + 4], ecx
cmp ecx, ebx
mov dword [esi], ebx
jbe 0x412f50
test eax, eax
jle 0x412f50
mov ebx, edx
add ebx, eax
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp byte [edx], 0
je 0x412f50
lea eax, [esi + 0x40]
push eax
push ebx
push edx
mov edi, edx
call fcn.0040eca0
add esp, 0xc
movzx ecx, word [esi + 0x40]
mov edx, dword [esi]
mov word [edx], cx
add edx, 2
mov dword [esi], edx
cmp edx, dword [esi + 4]
jae 0x412f50
add edi, eax
cmp edi, ebx
mov edx, edi
jb 0x412f20
mov eax, dword [esi]
mov word [eax], 0
mov eax, dword [esi + 0x184]
mov edi, dword [eax]
push 0
push 0
push dword [esi + 0xf0]
mov eax, dword [esi + 0x180]
push dword [eax]
push edi
mov eax, dword [esi + 0xe4]
push dword [eax]
mov eax, dword [esi + 0x120]
push dword [eax]
push dword [esi + 0x11c]
call fcn.0041ae60
add esp, 0x20
xor eax, eax
test edi, edi
sete al
jmp dword [eax*4 + 0x443994]
push ebx
push edi
call fcn.004029b0
add esp, 8
push eax
call fcn.00402710
add esp, 4
push ebx
push edi
call fcn.004029b0
add esp, 8
push eax
call fcn.00402710
add esp, 4
jmp dword [0x443984]
mov eax, dword [case.0x412f97.14]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
jmp eax
mov eax, dword [esi + 0x120]
mov eax, dword [eax]
xor ecx, ecx
test eax, eax
sete cl
jmp dword [ecx*4 + 0x4439d4]
push eax
call fcn.00408b30
add esp, 4
mov eax, dword [esi + 0xe4]
mov eax, dword [eax]
xor ecx, ecx
test eax, eax
sete cl
jmp dword [ecx*4 + 0x4439dc]
mov eax, dword [esi + 0xe4]
mov eax, dword [eax]
xor ecx, ecx
test eax, eax
sete cl
jmp dword [ecx*4 + 0x4439dc]
push eax
call fcn.00408b30
add esp, 4
mov edi, dword [esi + 0x11c]
mov ecx, edi
call fcn.00409db0
mov ecx, edi
call fcn.00409470
nop
nop
nop
nop
nop
nop
jmp dword [0x4439f0]
mov eax, dword [esi + 0x114]
mov edi, dword [eax]
jmp dword [0x4439f8]
push edi
call fcn.00438e10
add esp, 4
nop
nop
nop
push edi
call fcn.00438e10
add esp, 4
jmp dword [0x443a00]
mov edi, dword [esi + 0x118]
mov ecx, edi
call fcn.00439250
jmp case.0x4108df.4
mov eax, dword [esi + 0xe8]
mov eax, dword [eax]
xor ecx, ecx
test eax, eax
sete cl
jmp dword [ecx*4 + 0x443a74]
push eax
call fcn.00408b30
add esp, 4
mov eax, dword [esi + 0xec]
mov eax, dword [eax]
xor ecx, ecx
test eax, eax
sete cl
jmp dword [ecx*4 + 0x443a7c]
jmp dword [0x443964]
push ebx
call fcn.00408b30
add esp, 4
nop
nop
nop
nop
nop
nop
nop
push ebx
call fcn.00408b30
add esp, 4
mov eax, edi
jmp dword [0x443970]
mov edx, ebx
sub edx, edi
sar edx, 1
mov eax, dword [esi + 0x16c]
mov eax, dword [eax]
lea ecx, [eax + edx]
inc ecx
mov dword [esi + 4], edx
add eax, edx
add eax, eax
add eax, 2
test ecx, ecx
mov dword [esi], edi
jns 0x413128
mov eax, 0xffffffff
push eax
call fcn.00408b20
add esp, 4
mov edi, eax
mov eax, dword [esi + 0x168]
mov dword [eax], edi
mov eax, dword [esi + 0x110]
mov eax, dword [eax]
cmp ebx, dword [esi]
je 0x4131f9
mov ecx, dword [esi + 0x18]
mov ecx, dword [ecx + 4]
mov edx, dword [esi + 4]
lea ebx, [edx - 1]
mov dword [esi + 0x18], ebx
mov ebx, edx
and ebx, 3
mov dword [esi + 0x38], eax
je 0x413193
xor edx, edx
mov dword [esi], ebx
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], edx
jne 0x413170
mov ebx, dword [esi + 4]
sub ebx, edx
mov edx, ebx
mov eax, dword [esi + 0x38]
mov ebx, dword [esi + 0x18]
cmp ebx, 3
jb 0x4131f9
nop
nop
nop
nop
nop
movzx eax, word [ecx]
mov ebx, edx
xor edx, edx
test ax, ax
setne dl
mov word [edi], ax
lea eax, [ecx + edx*2]
movzx ecx, word [ecx + edx*2]
xor edx, edx
test cx, cx
setne dl
mov word [edi + 2], cx
lea ecx, [eax + edx*2]
movzx eax, word [eax + edx*2]
xor edx, edx
test ax, ax
setne dl
mov word [edi + 4], ax
lea eax, [ecx + edx*2]
movzx edx, word [ecx + edx*2]
xor ecx, ecx
test dx, dx
setne cl
lea ecx, [eax + ecx*2]
mov word [edi + 6], dx
mov edx, ebx
add edi, 8
add edx, 0xfffffffc
jne 0x4131a0
mov eax, dword [esi + 0x38]
movzx ecx, word [eax]
test cx, cx
je 0x413221
add eax, 2
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov word [edi], cx
add edi, 2
movzx ecx, word [eax]
add eax, 2
test cx, cx
jne 0x413210
mov word [edi], 0
mov eax, dword [esi + 0x110]
mov eax, dword [eax]
xor ecx, ecx
test eax, eax
sete cl
jmp dword [ecx*4 + 0x443954]
push eax
call fcn.00408b30
add esp, 4
mov eax, dword [esi + 0x168]
mov ebx, dword [eax]
mov eax, ebx
not eax
and eax, edi
not edi
and edi, ebx
sub eax, edi
mov ecx, 0xffffffff
cmp eax, 0xfffffffe
jl 0x413268
add eax, 2
mov ecx, eax
push ecx
call fcn.00408b20
add esp, 4
mov ecx, dword [esi + 0xe4]
mov dword [ecx], eax
push eax
push ebx
call fcn.00435a90
add esp, 8
xor ecx, ecx
test ebx, ebx
sete cl
mov edi, dword [esi + 0xc4]
mov eax, edi
jmp dword [ecx*4 + 0x44395c]
mov eax, dword [esi + 0xec]
mov eax, dword [eax]
xor ecx, ecx
test eax, eax
sete cl
jmp dword [ecx*4 + 0x443a7c]
push eax
call fcn.00408b30
add esp, 4
mov ecx, dword [esi + 0x124]
call fcn.00409470
jmp case.0x4108df.4
xor eax, eax
cmp ebx, edi
sete al
jmp dword [eax*4 + 0x443a6c]
mov eax, dword [ebx - 0xc]
test eax, eax
je 0x4132ee
push eax
call fcn.00408b30
add esp, 4
mov eax, dword [ebx - 8]
add ebx, 0xfffffff4
test eax, eax
je 0x4132d0
push eax
call fcn.00408b30
add esp, 4
jmp 0x4132d0
jmp dword [0x4438dc]
mov ecx, edi
call fcn.00409470
jmp case.0x4108df.4
push edi
call fcn.004029d0
add esp, 4
jmp dword [0x443894]
xor ecx, ecx
mov edx, dword [esi + 0x34]
cmp edx, eax
setb cl
jmp dword [ecx*4 + 0x44389c]
push edx
push edi
call fcn.004029b0
add esp, 8
push eax
call fcn.00402710
add esp, 4
xor ecx, ecx
test eax, eax
sete cl
jmp dword [ecx*4 + 0x4438a4]
mov ecx, eax
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov edi, ecx
inc ecx
cmp byte [edi], 0
jne 0x413390
mov ebx, eax
sub edi, eax
mov eax, edi
inc eax
lea eax, [edi + edi + 2]
jns 0x4133aa
mov eax, 0xffffffff
push eax
call fcn.00408b20
add esp, 4
mov dword [esi + 0x18], eax
mov eax, edi
test ebx, ebx
jne 0x4133d9
mov ecx, ebx
mov eax, ebx
not eax
xor ecx, ecx
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
inc eax
cmp byte [ecx], 0
lea ecx, [ecx + 1]
jne 0x4133d0
mov dword [esi + 8], 0
mov ecx, dword [esi + 0x18]
lea edx, [ecx + edi*2]
mov edi, ecx
mov dword [esi + 4], edx
cmp edx, ecx
mov edx, ecx
jbe 0x413430
mov edx, dword [esi + 0x18]
test eax, eax
jle 0x413430
mov edi, ebx
add ebx, eax
mov edx, dword [esi + 0x18]
nop
cmp byte [edi], 0
je 0x413430
lea eax, [esi + 8]
push eax
push ebx
push edi
mov dword [esi], edx
call fcn.0040eca0
mov edx, dword [esi]
add esp, 0xc
movzx ecx, word [esi + 8]
mov word [edx], cx
add edx, 2
cmp edx, dword [esi + 4]
jae 0x413430
add edi, eax
cmp edi, ebx
jb 0x413400
nop
nop
nop
nop
mov word [edx], 0
xor eax, eax
cmp dword [esi + 0x1d0], 0
setg al
push 0
push eax
push dword [esi + 0xc4]
push dword [esi + 0x1d4]
push dword [esi + 0x18]
push dword [esi + 0x3c]
push dword [esi + 0x38]
lea eax, [esi + 0x40]
push eax
call fcn.0041ae60
add esp, 0x20
mov eax, dword [0x4438c8]
mov edi, dword [esi + 0xf0]
jmp eax
push edi
call fcn.004029d0
add esp, 4
jmp case.0x412bf9.9
add ecx, 0xfffffffe
xor edx, edx
cmp ecx, edi
setae dl
jmp dword [edx*4 + 0x44393c]
xor edx, edx
movzx edx, dl
mov ebx, eax
jmp dword [edx*4 + 0x443944]
xor edx, edx
cmp word [ecx], 0x5c
sete dl
mov ebx, ecx
jmp dword [edx*4 + 0x44394c]
mov eax, dword [esi + 0x124]
mov eax, dword [eax + 4]
mov ecx, dword [esi + 0x1c4]
mov byte [ecx + 0xa], 0
cmp eax, 0x3ff
ja 0x413504
lea edx, [ecx + 9]
mov byte [ecx + 9], 0x30
jmp 0x4135a5
add ecx, 0xa
mov edi, eax
shr edi, 0xa
cmp eax, 0x19000
jb 0x413566
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov dword [esi], 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 + 0x440528]
mov word [ecx - 2], ax
add ecx, 0xfffffffe
cmp dword [esi], 0x270f
mov edi, edx
ja 0x413520
jmp 0x413568
mov edx, edi
mov edi, ecx
cmp edx, 9
ja 0x41357e
movzx eax, byte [edx + str.0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ]
mov edx, edi
mov byte [edi - 1], al
dec edx
jmp 0x4135a5
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 + 0x440528]
mov edx, edi
mov word [edi - 2], ax
add edx, 0xfffffffe
mov edi, dword [esi + 0xb8]
mov ebx, dword [esi + 0xc0]
mov eax, dword [esi + 0x170]
mov dword [eax], edx
mov dword [edi], 0x6368232b
mov dword [edi + 4], 0
mov byte [edi + 8], 0
mov dword [esi + 8], 0
mov eax, dword [esi + 8]
cmp eax, 8
ja 0x413612
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 - 0x695057b0]
add eax, 0x50
and eax, ecx
or edx, ecx
sub edx, eax
mov dword [esi + 0x40], edx
mov eax, dword [esi + 0x40]
add al, 0xd0
mov ecx, dword [esi + 8]
mov byte [edi + ecx], al
inc dword [esi + 8]
mov eax, dword [esi + 8]
cmp eax, 9
jb 0x4135e0
mov eax, dword [esi + 0x170]
mov eax, dword [eax]
mov dword [ebx], 0x9083423
mov dword [ebx + 4], 0x67231713
mov dword [ebx + 8], 0x172b202e
mov dword [ebx + 0xc], 0x136e2121
mov dword [ebx + 0x10], 0x2619691f
mov dword [ebx + 0x14], 0xd496d9e2
mov dword [ebx + 0x18], 0xe6e5e3d8
mov dword [ebx + 0x1c], 0x9febe0d5
mov dword [ebx + 0x20], 0xd0d9d8e8
mov dword [ebx + 0x24], 0xfb86f9c9
mov dword [ebx + 0x28], 0xcbfe81f7
mov dword [ebx + 0x2c], 0xc2fd8dc1
mov dword [ebx + 0x30], 0xf9c7f7fa
mov dword [ebx + 0x34], 0xc0cab580
mov dword [ebx + 0x38], 0xb3c6f0cc
mov dword [ebx + 0x3c], 0xf4fdfccc
mov dword [ebx + 0x40], 0xc8bac5f5
mov dword [ebx + 0x44], 0x9debdfed
mov word [ebx + 0x48], 0x41a0
mov byte [ebx + 0x56], 0
mov dword [ebx + 0x52], 0
mov dword [ebx + 0x4e], 0
mov dword [ebx + 0x4a], 0
mov dword [esi + 8], 0
mov ecx, dword [esi + 8]
cmp ecx, 0x56
ja 0x41371e
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 edi, [ecx - 0x1c5c5494]
mov ebx, edi
and ebx, edx
not edx
or edx, edi
add edx, ebx
mov ebx, dword [esi + 0xc0]
neg edx
add ecx, edx
add ecx, 0xe3a3ab6b
mov dword [esi + 0x40], ecx
mov ecx, dword [esi + 0x40]
mov edx, ecx
xor edx, 0xb
and ecx, 0xb
lea ecx, [edx + ecx*2]
inc cl
mov edx, dword [esi + 8]
mov byte [ebx + edx], cl
inc dword [esi + 8]
mov ecx, dword [esi + 8]
cmp ecx, 0x57
jb 0x4136d0
lea ecx, [0x448c7b]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp byte [ecx + 1], 0
lea ecx, [ecx + 1]
jne 0x413730
movzx edx, byte [ebx]
test dl, dl
je 0x41375f
xor edi, edi
mov ebx, dword [esi + 0xc0]
nop
nop
nop
nop
nop
nop
nop
nop
mov byte [ecx + edi], dl
movzx edx, byte [ebx + edi + 1]
inc edi
test dl, dl
jne 0x413750
add ecx, edi
mov byte [ecx], 0
movzx edx, byte [eax]
test dl, dl
je 0x41377b
inc eax
nop
nop
nop
nop
nop
nop
mov byte [ecx], dl
inc ecx
movzx edx, byte [eax]
inc eax
test dl, dl
jne 0x413770
mov byte [ecx], 0
mov eax, dword [esi + 0xb8]
movzx eax, byte [eax]
test al, al
je 0x4137ab
mov edx, dword [esi + 0x1c0]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov byte [ecx], al
inc ecx
movzx eax, byte [edx]
inc edx
test al, al
jne 0x4137a0
mov byte [ecx], 0
mov eax, dword [esi + 0xc8]
mov edi, dword [eax]
xor eax, eax
test edi, edi
sete al
jmp dword [eax*4 + 0x443a5c]
mov dword [esi + 0x3c], edi
jmp dword [0x443884]
push dword [esi + 0x34]
call fcn.00408b30
add esp, 4
mov ecx, dword [esi + 0xe0]
mov eax, ecx
jmp 0x41388a
mov ecx, dword [esi + 0xe0]
mov edx, ecx
jmp 0x413882
push dword [esi]
call fcn.00408b30
add esp, 4
mov eax, dword [esi + 0xe8]
mov eax, dword [eax]
xor ecx, ecx
test eax, eax
sete cl
jmp dword [ecx*4 + 0x443a74]
lea eax, [esi + 0x20]
push eax
push ebx
push edi
push dword [esi + 4]
push dword [esi + 0x34]
push 0
call dword [esi]
lea eax, [esi + 0x20]
push eax
push ebx
push edi
push dword [esi + 4]
push dword [esi + 0x34]
push 0
call dword [esi]
jmp dword [0x44387c]
xor eax, eax
mov edi, dword [esi]
test edi, edi
sete al
jmp dword [eax*4 + 0x443a5c]
lea eax, [edi - 4]
mov dword [esi], 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 + 0x443a64]
mov ecx, edi
call fcn.00409db0
mov ecx, edi
call fcn.00409db0
jmp dword [0x443a50]
movzx eax, al
jmp dword [eax*4 + 0x443a54]
lea eax, [edx + 1]
cmp byte [edx], 0
je 0x41388e
mov edx, eax
jmp 0x413882
mov eax, edx
sub eax, ecx
xor ebx, ebx
mov dword [esi + 0x34], eax
test eax, eax
mov dword [esi], edx
jle 0x4138d7
cmp byte [ecx], 0
je 0x4138d7
xor ebx, ebx
mov edi, dword [esi + 0xe0]
nop
nop
nop
nop
nop
nop
mov dword [esi + 0x40], 0
lea eax, [esi + 0x40]
push eax
push edx
push edi
call fcn.0040eca0
mov edx, dword [esi]
add esp, 0xc
lea ecx, [edi + eax]
inc ebx
cmp ecx, edx
jae 0x4138d7
cmp byte [edi + eax], 0
mov edi, ecx
jne 0x4138b0
mov eax, ebx
inc eax
lea eax, [ebx + ebx + 2]
jns 0x4138e5
mov eax, 0xffffffff
push eax
call fcn.00408b20
add esp, 4
mov dword [esi + 0x40], 0
lea ecx, [eax + ebx*2]
mov dword [esi + 4], eax
mov dword [esi + 0x38], eax
mov dword [esi + 0x18], ecx
cmp ecx, eax
mov edi, dword [esi + 0xf0]
mov ebx, dword [esi + 0xe0]
mov edx, dword [esi]
jbe 0x413962
mov eax, dword [esi + 0x38]
mov dword [esi + 4], eax
cmp dword [esi + 0x34], 0
jle 0x413962
mov eax, dword [esi + 0x38]
mov dword [esi + 4], eax
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp byte [ebx], 0
je 0x413962
lea eax, [esi + 0x40]
push eax
push edx
push ebx
call fcn.0040eca0
add esp, 0xc
movzx ecx, word [esi + 0x40]
mov edx, dword [esi + 4]
mov word [edx], cx
mov ecx, edx
add ecx, 2
cmp ecx, dword [esi + 0x18]
mov dword [esi + 4], ecx
jae 0x413962
add ebx, eax
mov edx, dword [esi]
cmp ebx, edx
jb 0x413930
mov eax, dword [esi + 4]
mov word [eax], 0
lea ecx, [esi + 0x40]
push 1
call fcn.00409430
mov dword [esi + 0x34], 0
jmp dword [0x443890]
mov al, 1
jmp dword [0x443808]
mov ecx, dword [case.0x412f97.102]
nop
nop
jmp ecx
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
xor ebx, ebx
jmp 0x413bb7
mov ebx, dword [esi + 0x104]
inc ebx
push edx
call fcn.004029d0
mov edx, dword [esi + 0x8c]
add esp, 4
xor ecx, ecx
cmp ebx, eax
setb cl
mov al, 1
jmp dword [ecx*4 + 0x443b3c]
mov eax, dword [esi + 0x80]
add eax, 2
mov dword [esi + 0x100], eax
mov eax, dword [esi + 0x60]
lea eax, [eax + 2]
mov dword [esi + 0xfc], eax
mov eax, dword [esi + 0xb8]
lea eax, [eax + 2]
mov dword [esi + 0x5c], eax
mov eax, dword [esi + 0x84]
add eax, 2
mov dword [esi + 0x24], eax
mov eax, dword [esi + 0xbc]
add eax, 2
mov dword [esi + 0x38], eax
mov dword [esi + 0x104], ebx
push ebx
push edx
call fcn.004029e0
add esp, 8
mov dword [esi + 0x20], eax
mov word [edi], 0x6de1
mov dword [edi + 6], 0
mov dword [edi + 2], 0
mov dword [esi], 0
mov eax, dword [esi]
cmp eax, 9
ja 0x413c7d
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esi]
mov ecx, dword [esi]
movzx ecx, byte [edi + ecx]
lea edx, [eax - 0x20c171ce]
add eax, 0x32
and eax, ecx
or edx, ecx
sub edx, eax
mov dword [esi + 8], edx
mov eax, dword [esi + 8]
add al, 0xa2
mov ecx, dword [esi]
mov byte [edi + ecx], al
inc dword [esi]
mov eax, dword [esi]
cmp eax, 0xa
jb 0x413c50
push 2
push edi
push dword [esi + 0x20]
call fcn.00402960
add esp, 0xc
xor ecx, ecx
test eax, eax
setne cl
mov bl, 1
jmp dword [ecx*4 + 0x443b44]
mov edx, dword [esi + 0xc0]
mov word [edx], 0x6da0
mov byte [edx + 2], 0xf8
mov dword [edx + 3], 0
mov dword [edx + 7], 0
mov word [edx + 0xb], 0
mov dword [esi], 0
mov eax, dword [esi]
cmp eax, 0xc
ja 0x413d08
nop
nop
nop
nop
nop
mov eax, dword [esi]
mov ecx, dword [esi]
movzx ecx, byte [edx + ecx]
lea edx, [eax + ecx]
add edx, 0xc5ddd07f
add eax, 0xc5ddd07f
and eax, ecx
add eax, eax
sub edx, eax
mov dword [esi + 8], edx
mov edx, dword [esi + 0xc0]
mov eax, dword [esi + 8]
add al, 0x87
mov ecx, dword [esi]
mov byte [edx + ecx], al
inc dword [esi]
mov eax, dword [esi]
cmp eax, 0xd
jb 0x413cd0
push 3
push edx
push dword [esi + 0x20]
call fcn.00402960
add esp, 0xc
xor ecx, ecx
test eax, eax
setne cl
jmp dword [ecx*4 + 0x443b4c]
movzx eax, bl
jmp dword [eax*4 + 0x443b54]
mov edi, dword [esi + 0xf8]
mov word [edi], 0x35bd
mov dword [edi + 2], 0
mov dword [edi + 6], 0
mov dword [edi + 0xa], 0
mov word [edi + 0xe], 0
mov dword [esi], 0
mov eax, dword [esi]
cmp eax, 0xf
ja 0x413d9d
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esi]
mov ecx, dword [esi]
movzx ecx, byte [edi + ecx]
lea edx, [eax - 0xfae8187]
add eax, 0x79
and eax, ecx
or edx, ecx
sub edx, eax
mov dword [esi + 8], edx
mov eax, dword [esi + 8]
add al, 0xb1
mov ecx, dword [esi]
mov byte [edi + ecx], al
inc dword [esi]
mov eax, dword [esi]
cmp eax, 0x10
jb 0x413d70
push edi
push dword [esi + 0x20]
call fcn.004026d0
add esp, 8
mov ecx, dword [esi + 0xb4]
mov dword [ecx], eax
mov ebx, dword [esi + 0xf4]
mov word [ebx], 0x39cc
mov byte [ebx + 2], 0xb4
mov dword [ebx + 0xb], 0
mov dword [ebx + 7], 0
mov dword [ebx + 3], 0
mov dword [esi], 0
mov eax, dword [esi]
cmp eax, 0xe
ja 0x413e27
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esi]
mov ecx, dword [esi]
movzx edx, byte [ebx + ecx]
lea ecx, [eax - 0x6a1f1bc7]
mov edi, edx
not edi
or edi, ecx
and ecx, edx
add ecx, edi
neg ecx
add eax, ecx
add eax, 0x95e0e438
mov dword [esi + 8], eax
mov eax, dword [esi + 8]
add al, 0x71
mov ecx, dword [esi]
mov byte [ebx + ecx], al
inc dword [esi]
mov eax, dword [esi]
cmp eax, 0xf
jb 0x413df0
push ebx
push dword [esi + 0x20]
call fcn.00402730
add esp, 8
fnstcw word [esi + 0x4a]
movzx eax, word [esi + 0x4a]
or eax, 0xc00
mov word [esi + 0x92], ax
fldcw word [esi + 0x92]
fistp dword [esi + 0x10c]
fldcw word [esi + 0x4a]
mov eax, dword [esi + 0x10c]
mov ecx, dword [esi + 0x44]
mov dword [ecx], eax
mov edi, dword [esi + 0xf0]
mov word [edi], 0xb1d5
mov word [edi + 0xa], 0
mov dword [edi + 6], 0
mov dword [edi + 2], 0
mov dword [esi], 0
mov eax, dword [esi]
cmp eax, 0xb
ja 0x413eca
nop
nop
nop
nop
mov eax, dword [esi]
mov ecx, dword [esi]
movzx edx, byte [edi + ecx]
lea ecx, [eax + edx]
add ecx, 0x9f22dd38
add eax, 0x38
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, 0x78
mov ecx, dword [esi]
mov byte [edi + ecx], al
inc dword [esi]
mov eax, dword [esi]
cmp eax, 0xc
jb 0x413e90
push edi
push dword [esi + 0x20]
call fcn.00402730
add esp, 8
fnstcw word [esi + 0x48]
movzx eax, word [esi + 0x48]
or eax, 0xc00
mov word [esi + 0x90], ax
fldcw word [esi + 0x90]
fistp dword [esi + 0x108]
fldcw word [esi + 0x48]
mov ecx, dword [esi + 0x108]
mov eax, dword [esi + 0xac]
mov dword [esi + 0x78], ecx
mov dword [eax], ecx
mov eax, dword [esi + 0xb4]
mov ebx, dword [eax]
mov edi, 0xffffffff
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp byte [ebx + edi + 1], 0
lea edi, [edi + 1]
jne 0x413f20
mov dword [esi + 8], 0
mov ecx, dword [esi + 0x88]
test edi, edi
jle 0x413f90
add edi, ebx
xor edx, edx
mov ecx, dword [esi + 0x88]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp byte [ebx], 0
je 0x413f90
lea eax, [esi + 8]
push eax
push edi
push ebx
mov dword [esi + 0x28], ecx
mov dword [esi + 0x2c], edx
call fcn.0040eca0
add esp, 0xc
movzx ecx, word [esi + 8]
mov edx, dword [esi + 0x28]
mov word [edx], cx
mov edx, dword [esi + 0x2c]
mov ecx, dword [esi + 0x28]
add ecx, 2
cmp edx, 0x3fd
ja 0x413f90
add ebx, eax
inc edx
cmp ebx, edi
jb case.default.0x413fc9
nop
nop
nop
nop
nop
mov word [ecx], 0
mov eax, dword [esi + 0x1c]
mov dword [eax], 0
mov eax, dword [esi + 0x40]
mov dword [eax], 0
push dword [esi + 0xb0]
push dword [esi + 0x30]
push dword [esi + 0x88]
call fcn.0040bad0
add esp, 0xc
movzx ecx, al
mov eax, 4
mov edi, dword [esi + 0x34]
jmp dword [ecx*4 + 0x443b6c]
xor eax, eax
cmp dword [esi + 0x78], 0
sete al
jmp dword [eax*4 + 0x443b74]
mov edi, dword [esi + 0xe8]
mov word [edi], 0x15a6
mov dword [edi + 2], 0
mov word [edi + 6], 0
mov dword [esi], 0
mov eax, dword [esi]
cmp eax, 7
ja 0x414045
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov ecx, dword [esi]
mov eax, dword [esi]
movzx eax, byte [edi + eax]
mov edx, 0x856fcb02
sub edx, ecx
add ecx, 0xfd
and ecx, eax
or edx, eax
not edx
add edx, eax
sub edx, ecx
mov dword [esi + 8], edx
mov eax, dword [esi + 8]
add al, 0x15
mov ecx, dword [esi]
mov byte [edi + ecx], al
inc dword [esi]
mov eax, dword [esi]
cmp eax, 8
jb 0x414010
push edi
push dword [esi + 0x20]
call fcn.004026d0
add esp, 8
xor ecx, ecx
test eax, eax
setne cl
jmp dword [ecx*4 + 0x443b7c]
mov edi, dword [esi + 0xe4]
mov dword [edi], 0xa2262126
mov dword [edi + 8], 0
mov dword [edi + 4], 0
mov dword [esi], 0
mov eax, dword [esi]
cmp eax, 0xb
ja 0x4140c2
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esi]
mov ecx, dword [esi]
movzx edx, byte [edi + ecx]
lea ecx, [eax + edx]
add eax, 0xfb
and eax, edx
add eax, eax
sub ecx, eax
add ecx, 0xeeaf0ffb
mov dword [esi + 8], ecx
mov eax, dword [esi + 8]
add al, 0x23
mov ecx, dword [esi]
mov byte [edi + ecx], al
inc dword [esi]
mov eax, dword [esi]
cmp eax, 0xc
jb 0x414090
mov eax, dword [edi]
push dword [eax + 0x14]
call fcn.004092b0
add esp, 4
call fcn.004092d0
and eax, 0xf
or eax, 0x10
xor edx, edx
xor ecx, ecx
mov dword [esi + 0x2c], eax
cmp edx, eax
setb cl
mov ebx, dword [esi + 0x84]
jmp dword [ecx*4 + 0x443b9c]
mov word [ebx], 0
mov edi, dword [esi + 0xbc]
mov dword [edi], 0xeb00d5ed
mov dword [edi + 4], 0xef3be931
mov dword [edi + 8], 0xe3d7ed3e
mov dword [edi + 0xc], 0xe7e0e10e
mov word [edi + 0x10], 0
mov byte [edi + 0x12], 0
mov dword [esi], 0
mov eax, dword [esi]
cmp eax, 0x12
ja 0x414161
mov eax, dword [esi]
mov ecx, dword [esi]
movzx ecx, byte [edi + ecx]
lea edx, [eax + 0x9d]
and edx, ecx
add eax, ecx
add edx, edx
sub eax, edx
add eax, 0x362d069d
mov dword [esi + 8], eax
mov eax, dword [esi + 8]
add al, 0xb5
mov ecx, dword [esi]
mov byte [edi + ecx], al
inc dword [esi]
mov eax, dword [esi]
cmp eax, 0x13
jb 0x414130
movzx ecx, word [edi]
mov eax, dword [esi + 0x58]
test cx, cx
mov edx, dword [esi + 0x38]
je 0x414191
mov eax, dword [esi + 0x58]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov word [eax], cx
add eax, 2
movzx ecx, word [edx]
add edx, 2
test cx, cx
jne 0x414180
mov word [eax], 0
mov ecx, dword [esi + 0x84]
movzx ecx, word [ecx]
test cx, cx
mov edx, dword [esi + 0x24]
je 0x4141c1
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 0x4141b0
mov word [eax], 0
mov ecx, eax
not ecx
mov edx, dword [esi + 0x58]
and ecx, edx
mov edi, edx
not edi
and edi, eax
sub edi, ecx
sar edi, 1
mov ebx, dword [esi + 0xa0]
push ebx
push 0
push 0
push edi
push edx
push 0
call dword [0x449c84]
mov ebx, dword [ebx]
mov eax, ebx
add eax, 4
lea eax, [ebx + ebx + 8]
jns 0x414200
mov eax, 0xffffffff
push eax
call fcn.00408b20
add esp, 4
mov ecx, dword [esi + 0x1c]
mov dword [ecx], eax
push dword [esi + 0xa0]
push ebx
push eax
push edi
push dword [esi + 0x58]
push 0
call dword [0x449c84]
mov eax, dword [esi + 0x44]
mov eax, dword [eax]
xor ecx, ecx
test eax, eax
sete cl
jmp dword [ecx*4 + 0x443bb4]
xor ecx, ecx
cmp eax, 1
sete cl
jmp dword [ecx*4 + 0x443bbc]
xor ecx, ecx
cmp eax, 2
sete cl
jmp dword [ecx*4 + 0x443bd4]
mov edi, dword [esi + 0xc4]
mov dword [edi], 0xbba0d7e
mov dword [edi + 4], 0x176709b7
mov word [edi + 8], 0x1514
mov dword [edi + 0xa], 0
mov word [edi + 0xe], 0
mov dword [esi], 0
mov eax, dword [esi]
cmp eax, 0xf
ja 0x4142c1
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esi]
mov ecx, dword [esi]
movzx ecx, byte [edi + ecx]
lea edx, [eax + 0xaa]
add eax, ecx
and edx, ecx
add edx, edx
sub eax, edx
add eax, 0x8cec0daa
mov dword [esi + 8], eax
mov eax, dword [esi + 8]
add al, 0x5a
mov ecx, dword [esi]
mov byte [edi + ecx], al
inc dword [esi]
mov eax, dword [esi]
cmp eax, 0x10
jb 0x414290
mov eax, dword [esi + 0x1c]
mov eax, dword [eax]
add eax, 0xfffffffe
nop
nop
nop
nop
nop
nop
nop
cmp word [eax + 2], 0
lea eax, [eax + 2]
jne 0x4142d0
movzx ecx, word [edi]
test cx, cx
je 0x414523
xor edx, edx
nop
nop
nop
nop
nop
nop
nop
nop
mov word [eax + edx], cx
movzx ecx, word [edi + edx + 2]
add edx, 2
test cx, cx
jne 0x4142f0
jmp 0x414521
mov edx, dword [esi + 0x28]
inc edx
xor eax, eax
cmp edx, dword [esi + 0x2c]
setb al
jmp dword [eax*4 + 0x443b9c]
mov dword [esi + 0x28], edx
jmp dword [0x443ba4]
mov edi, 0x38e38e39
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
call fcn.004092d0
mov ecx, eax
imul edi
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
jmp dword [0x443bb0]
call fcn.004092d0
mov ecx, eax
mov edi, 0x38e38e39
imul edi
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
jmp 0x414340
mov ebx, dword [esi + 0xec]
mov word [ebx], 0x61c5
mov dword [ebx + 2], 0
mov dword [ebx + 6], 0
mov byte [ebx + 0xa], 0
mov dword [esi], 0
mov eax, dword [esi]
cmp eax, 0xa
ja 0x414404
nop
nop
nop
nop
nop
nop
mov eax, dword [esi]
mov ecx, dword [esi]
movzx edx, byte [ebx + ecx]
mov ecx, 0x1c00842f
sub ecx, eax
add eax, 0xd0
and eax, edx
or ecx, edx
not ecx
add ecx, edx
sub ecx, eax
mov dword [esi + 8], ecx
mov eax, dword [esi + 8]
add al, 0x50
mov ecx, dword [esi]
mov byte [ebx + ecx], al
inc dword [esi]
mov eax, dword [esi]
cmp eax, 0xb
jb 0x4143d0
push 3
push ebx
push dword [esi + 0x20]
call fcn.00402960
add esp, 0xc
xor ecx, ecx
test eax, eax
sete cl
jmp dword [ecx*4 + 0x443b54]
mov eax, dword [case.0x414419.5]
mov edx, dword [esi + 0x8c]
nop
nop
nop
nop
nop
jmp eax
mov eax, 4
mov ecx, dword [case.0x415855.16]
jmp case.0x415855.14
mov ecx, eax
mov dword [esi + 0x24], eax
jmp dword [0x443b88]
mov edx, eax
jmp 0x415860
mov edi, dword [esi + 0xdc]
mov dword [edi], 0xf3578dde
mov dword [edi + 4], 0xf753f168
mov word [edi + 8], 0xf5f4
mov dword [edi + 0xa], 0
mov dword [edi + 0xe], 0
mov dword [edi + 0x12], 0
mov byte [edi + 0x16], 0
mov dword [esi], 0
mov eax, dword [esi]
cmp eax, 0x16
ja 0x4144e0
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esi]
mov ecx, dword [esi]
movzx edx, byte [edi + ecx]
lea ecx, [eax + edx]
add eax, 0xbe
and eax, edx
add eax, eax
sub ecx, eax
add ecx, 0xa9270be
mov dword [esi + 8], ecx
mov eax, dword [esi + 8]
mov ecx, eax
xor ecx, 0xcd
and eax, 0x4d
lea eax, [ecx + eax*2]
inc al
mov ecx, dword [esi]
mov byte [edi + ecx], al
inc dword [esi]
mov eax, dword [esi]
cmp eax, 0x17
jb 0x4144a0
mov eax, dword [esi + 0x1c]
mov eax, dword [eax]
add eax, 0xfffffffe
nop
nop
nop
nop
nop
nop
nop
nop
cmp word [eax + 2], 0
lea eax, [eax + 2]
jne 0x4144f0
movzx ecx, word [edi]
test cx, cx
je 0x414523
xor edx, edx
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov word [eax + edx], cx
movzx ecx, word [edi + edx + 2]
add edx, 2
test cx, cx
jne 0x414510
add eax, edx
mov word [eax], 0
mov eax, dword [esi + 0x1c]
mov edi, dword [eax]
jmp 0x414bca
mov edi, dword [esi + 0xc8]
jmp dword [0x443bc4]
mov dword [edi], 0x6bf66dbe
mov dword [edi + 4], 0x67f269fc
mov word [edi + 8], 0x6564
mov dword [edi + 0xe], 0
mov dword [edi + 0xa], 0
mov dword [esi], 0
mov eax, dword [esi]
cmp eax, 0x11
ja 0x4145a1
nop
nop
nop
nop
mov eax, dword [esi]
mov ecx, dword [esi]
movzx ecx, byte [edi + ecx]
lea edx, [eax + 0xb2]
and edx, ecx
add eax, ecx
add edx, edx
sub eax, edx
add eax, 0x6fa1b1b2
mov dword [esi + 8], eax
mov eax, dword [esi + 8]
add al, 0x22
mov ecx, dword [esi]
mov byte [edi + ecx], al
inc dword [esi]
mov eax, dword [esi]
cmp eax, 0x12
jb 0x414570
mov eax, dword [esi + 0x1c]
mov eax, dword [eax]
add eax, 0xfffffffe
nop
nop
nop
nop
nop
nop
nop
cmp word [eax + 2], 0
lea eax, [eax + 2]
jne 0x4145b0
movzx ecx, word [edi]
test cx, cx
je 0x4145e3
xor edx, edx
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov word [eax + edx], cx
movzx ecx, word [edi + edx + 2]
add edx, 2
test cx, cx
jne 0x4145d0
add eax, edx
mov word [eax], 0
jmp case.0x4140ec.10
mov word [eax], 0
jmp dword [0x443bcc]
mov dword [edi], 0x6bf66dbe
mov dword [edi + 4], 0x67f269fc
mov word [edi + 8], 0x6564
mov dword [edi + 0xe], 0
mov dword [edi + 0xa], 0
mov dword [esi], 0
mov eax, dword [esi]
cmp eax, 0x11
ja 0x414661
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esi]
mov ecx, dword [esi]
movzx ecx, byte [edi + ecx]
lea edx, [eax + 0xb2]
and edx, ecx
add eax, ecx
add edx, edx
sub eax, edx
add eax, 0x6fa1b1b2
mov dword [esi + 8], eax
mov eax, dword [esi + 8]
add al, 0x22
mov ecx, dword [esi]
mov byte [edi + ecx], al
inc dword [esi]
mov eax, dword [esi]
cmp eax, 0x12
jb 0x414630
mov eax, dword [esi + 0x1c]
mov eax, dword [eax]
add eax, 0xfffffffe
nop
nop
nop
nop
nop
nop
nop
cmp word [eax + 2], 0
lea eax, [eax + 2]
jne 0x414670
movzx ecx, word [edi]
test cx, cx
je 0x4145f0
xor edx, edx
nop
nop
nop
nop
nop
nop
nop
nop
mov word [eax + edx], cx
movzx ecx, word [edi + edx + 2]
add edx, 2
test cx, cx
jne 0x414690
add eax, edx
jmp 0x4145f0
nop
nop
nop
nop
nop
nop
nop
nop
mov edx, ecx
inc ecx
cmp byte [edx], 0
jne 0x4146b0
sub edx, eax
inc edx
jmp 0x414eaa
mov edx, eax
inc eax
cmp byte [edx], 0
jne case.0x414d01.23
mov dword [esi + 8], 0
mov ebx, dword [esi + 0x20]
cmp dword [esi + 0x38], 2
jl 0x41472b
mov eax, edx
sub eax, dword [esi + 0x24]
mov ebx, dword [esi + 0x20]
test eax, eax
jle 0x41472b
mov eax, dword [esi + 0x5c]
mov ecx, dword [esi + 0x38]
lea eax, [eax + ecx*2]
mov dword [esi + 0x28], eax
mov edi, dword [esi + 0x24]
mov ebx, dword [esi + 0x20]
mov dword [esi + 0x2c], edx
nop
nop
nop
nop
nop
nop
nop
cmp byte [edi], 0
je 0x41472b
lea eax, [esi + 8]
push eax
push edx
push edi
call fcn.0040eca0
add esp, 0xc
movzx ecx, word [esi + 8]
mov word [ebx], cx
add ebx, 2
cmp ebx, dword [esi + 0x28]
jae 0x41472b
add edi, eax
mov edx, dword [esi + 0x2c]
cmp edi, edx
jb 0x414700
mov word [ebx], 0
sub ebx, dword [esi + 0x20]
mov eax, dword [esi + 0x3c]
add dword [eax], ebx
mov eax, dword [esi + 0x24]
mov edx, eax
lea eax, [edx + 1]
cmp byte [edx], 0
jne 0x41473b
mov dword [esi + 8], 0
mov ebx, dword [esi + 0x20]
cmp dword [esi + 0x38], 2
jl 0x4147ab
mov eax, edx
sub eax, dword [esi + 0x24]
mov ebx, dword [esi + 0x20]
test eax, eax
jle 0x4147ab
mov eax, dword [esi + 0x5c]
mov ecx, dword [esi + 0x38]
lea eax, [eax + ecx*2]
mov dword [esi + 0x28], eax
mov edi, dword [esi + 0x24]
mov ebx, dword [esi + 0x20]
mov dword [esi + 0x2c], edx
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp byte [edi], 0
je 0x4147ab
lea eax, [esi + 8]
push eax
push edx
push edi
call fcn.0040eca0
add esp, 0xc
movzx ecx, word [esi + 8]
mov word [ebx], cx
add ebx, 2
cmp ebx, dword [esi + 0x28]
jae 0x4147ab
add edi, eax
mov edx, dword [esi + 0x2c]
cmp edi, edx
jb 0x414780
mov word [ebx], 0
sub ebx, dword [esi + 0x20]
mov eax, dword [esi + 0x3c]
add dword [eax], ebx
mov eax, dword [esi + 0x24]
jmp dword [0x443c44]
mov eax, dword [esi + 0x3c]
mov ecx, dword [eax]
lea edx, [ecx + 2]
mov dword [esi + 0x20], edx
mov dword [eax], edx
mov dword [esi + 0x5c], ecx
mov word [ecx], 0x2c
mov eax, dword [esi + 0x68]
mov eax, dword [eax]
mov dword [esi + 0x38], eax
mov eax, dword [esi + 0x24]
jmp dword [0x443c3c]
mov edx, dword [esi + 0x24]
jmp 0x41473d
mov eax, dword [esi + 0x54]
mov dword [eax + 4], 0xffffffff
mov dword [eax], 0xb8797400
mov eax, dword [esi + 0x6c]
mov edi, dword [eax]
mov dword [esi + 8], 0x2010007
mov dword [esi + 0x10], 0
mov dword [esi + 0xc], 0
mov dword [esi + 4], 0
mov eax, dword [esi + 4]
cmp eax, 0xb
ja 0x41486c
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esi + 4]
mov ecx, dword [esi + 4]
movzx edx, byte [esi + ecx + 8]
lea ecx, [eax - 0x4057fad5]
mov ebx, edx
not ebx
or ebx, ecx
and ecx, edx
add ecx, ebx
neg ecx
add eax, ecx
add eax, 0xbfa8052a
mov dword [esi], eax
mov eax, dword [esi]
add al, 0xd3
mov ecx, dword [esi + 4]
mov byte [esi + ecx + 8], al
inc dword [esi + 4]
mov eax, dword [esi + 4]
cmp eax, 0xc
jb 0x414830
mov eax, dword [0x449c88]
test eax, eax
je 0x4148af
mov ecx, dword [esi + 8]
xor edx, edx
mov ebx, dword [0x449c8c]
cmp dword [ebx + edx*8], 0x10c53004
je 0x414890
inc edx
cmp eax, edx
jne 0x414880
jmp 0x4148af
mov eax, dword [ebx + edx*8 + 4]
cmp eax, ecx
je 0x4148af
push dword [esi + 0x54]
push 0
push edi
push 3
push dword [0x449c90]
push eax
call fcn.0043a6a0
add esp, 0x18
mov dword [esi + 8], 0x2010007
mov dword [esi + 0x10], 0
mov dword [esi + 0xc], 0
mov dword [esi + 4], 0
mov eax, dword [esi + 4]
cmp eax, 0xb
ja 0x41491c
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esi + 4]
mov ecx, dword [esi + 4]
movzx edx, byte [esi + ecx + 8]
lea ecx, [eax - 0x4057fad5]
mov ebx, edx
not ebx
or ebx, ecx
and ecx, edx
add ecx, ebx
neg ecx
add eax, ecx
add eax, 0xbfa8052a
mov dword [esi], eax
mov eax, dword [esi]
add al, 0xd3
mov ecx, dword [esi + 4]
mov byte [esi + ecx + 8], al
inc dword [esi + 4]
mov eax, dword [esi + 4]
cmp eax, 0xc
jb 0x4148e0
mov eax, dword [0x449c88]
test eax, eax
je 0x41495a
mov ecx, dword [esi + 8]
xor edx, edx
mov ebx, dword [0x449c8c]
cmp dword [ebx + edx*8], 0xad91fd63
je 0x414940
inc edx
cmp eax, edx
jne 0x414930
jmp 0x41495a
mov eax, dword [ebx + edx*8 + 4]
cmp eax, ecx
je 0x41495a
push edi
push 1
push dword [0x449c90]
push eax
call fcn.0043a6a0
add esp, 0x10
mov eax, dword [esi + 0x6c]
mov edi, dword [eax]
mov eax, dword [esi + 0x54]
mov dword [eax + 4], 0xffffffff
mov dword [eax], 0xb8797400
mov dword [esi + 8], 0x2010007
mov dword [esi + 0x10], 0
mov dword [esi + 0xc], 0
mov dword [esi + 4], 0
mov eax, dword [esi + 4]
cmp eax, 0xb
ja 0x4149dc
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esi + 4]
mov ecx, dword [esi + 4]
movzx edx, byte [esi + ecx + 8]
lea ecx, [eax - 0x4057fad5]
mov ebx, edx
not ebx
or ebx, ecx
and ecx, edx
add ecx, ebx
neg ecx
add eax, ecx
add eax, 0xbfa8052a
mov dword [esi], eax
mov eax, dword [esi]
add al, 0xd3
mov ecx, dword [esi + 4]
mov byte [esi + ecx + 8], al
inc dword [esi + 4]
mov eax, dword [esi + 4]
cmp eax, 0xc
jb 0x4149a0
mov eax, dword [0x449c88]
test eax, eax
je 0x414a1f
mov ecx, dword [esi + 8]
xor edx, edx
mov ebx, dword [0x449c8c]
cmp dword [ebx + edx*8], 0x10c53004
je 0x414a00
inc edx
cmp eax, edx
jne 0x4149f0
jmp 0x414a1f
mov eax, dword [ebx + edx*8 + 4]
cmp eax, ecx
je 0x414a1f
push dword [esi + 0x54]
push 0
push edi
push 3
push dword [0x449c90]
push eax
call fcn.0043a6a0
add esp, 0x18
mov dword [esi + 8], 0x2010007
mov dword [esi + 0x10], 0
mov dword [esi + 0xc], 0
mov dword [esi + 4], 0
mov eax, dword [esi + 4]
cmp eax, 0xb
ja 0x414a8c
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esi + 4]
mov ecx, dword [esi + 4]
movzx edx, byte [esi + ecx + 8]
lea ecx, [eax - 0x4057fad5]
mov ebx, edx
not ebx
or ebx, ecx
and ecx, edx
add ecx, ebx
neg ecx
add eax, ecx
add eax, 0xbfa8052a
mov dword [esi], eax
mov eax, dword [esi]
add al, 0xd3
mov ecx, dword [esi + 4]
mov byte [esi + ecx + 8], al
inc dword [esi + 4]
mov eax, dword [esi + 4]
cmp eax, 0xc
jb 0x414a50
mov eax, dword [0x449c88]
test eax, eax
je 0x414aca
mov ecx, dword [esi + 8]
xor edx, edx
mov ebx, dword [0x449c8c]
cmp dword [ebx + edx*8], 0xad91fd63
je 0x414ab0
inc edx
cmp eax, edx
jne 0x414aa0
jmp 0x414aca
mov eax, dword [ebx + edx*8 + 4]
cmp eax, ecx
je 0x414aca
push edi
push 1
push dword [0x449c90]
push eax
call fcn.0043a6a0
add esp, 0x10
jmp dword [0x443cb4]
mov edi, edx
mov eax, ebx
inc eax
lea eax, [ebx + ebx + 2]
jns 0x414ae0
mov eax, 0xffffffff
push eax
call fcn.00408b20
add esp, 4
mov ecx, eax
mov eax, dword [esi + 0x1c]
mov dword [eax], ecx
mov dword [esi + 8], 0
mov dword [esi + 0xe0], ebx
lea eax, [ecx + ebx*2]
mov dword [esi + 0x2c], ecx
mov dword [esi + 0x38], eax
cmp eax, ecx
jbe 0x414b52
cmp dword [esi + 0x78], 0
mov ecx, dword [esi + 0x24]
jle 0x414b52
mov ebx, edi
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp byte [ecx], 0
je 0x414b52
lea eax, [esi + 8]
push eax
push ebx
push ecx
mov edi, ecx
call fcn.0040eca0
add esp, 0xc
movzx ecx, word [esi + 8]
mov edx, dword [esi + 0x2c]
mov word [edx], cx
add edx, 2
mov dword [esi + 0x2c], edx
cmp edx, dword [esi + 0x38]
jae 0x414b52
add edi, eax
cmp edi, ebx
mov ecx, edi
jb 0x414b20
mov eax, dword [esi + 0x2c]
mov word [eax], 0
mov eax, dword [esi + 0x1c]
mov eax, dword [eax]
mov edi, dword [esi + 0xa4]
push edi
push 0
push 0
push dword [esi + 0xe0]
mov dword [esi + 0x28], eax
push eax
push 0
call dword [0x449c84]
mov ebx, dword [edi]
lea eax, [ebx + ebx]
test ebx, ebx
jns 0x414b8a
mov eax, 0xffffffff
push eax
call fcn.00408b20
add esp, 4
mov edi, eax
push dword [esi + 0xa4]
push ebx
push eax
mov eax, dword [esi + 0x74]
push dword [eax]
mov ebx, dword [esi + 0x28]
push ebx
push 0
call dword [0x449c84]
xor eax, eax
test ebx, ebx
sete al
jmp dword [eax*4 + 0x443b94]
push ebx
call fcn.00408b30
add esp, 4
mov eax, dword [esi + 0x1c]
mov dword [eax], edi
push 0x80
push 0x60
push 5
push 0
push 0x100002
push dword [esi + 0xa8]
push edi
call fcn.0043c950
add esp, 0x1c
mov ecx, dword [esi + 0x70]
mov dword [ecx], eax
not eax
shr eax, 0x1f
jmp dword [eax*4 + 0x443bdc]
push 0
mov eax, dword [esi + 0xb0]
push dword [eax]
mov eax, dword [esi + 0x30]
push dword [eax]
mov edi, dword [esi + 0xa8]
push dword [edi]
call fcn.0043d220
add esp, 0x10
mov ecx, dword [esi + 0x70]
mov dword [ecx], eax
mov eax, dword [edi]
mov dword [esi + 8], 0x2010007
mov dword [esi + 0x10], 0
mov dword [esi + 0xc], 0
mov dword [esi + 4], 0
mov ecx, dword [esi + 4]
cmp ecx, 0xb
ja 0x414c8e
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov ecx, dword [esi + 4]
mov edx, dword [esi + 4]
movzx edi, byte [esi + edx + 8]
lea edx, [ecx - 0x4057fad5]
mov ebx, edi
not ebx
or ebx, edx
and edx, edi
add edx, ebx
neg edx
add ecx, edx
add ecx, 0xbfa8052a
mov dword [esi], ecx
mov ecx, dword [esi]
add cl, 0xd3
mov edx, dword [esi + 4]
mov byte [esi + edx + 8], cl
inc dword [esi + 4]
mov ecx, dword [esi + 4]
cmp ecx, 0xc
jb 0x414c50
mov ecx, dword [0x449c88]
test ecx, ecx
je case.0x413fc9.28
mov edx, dword [esi + 8]
xor edi, edi
mov ebx, dword [0x449c8c]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp dword [ebx + edi*8], 0xad91fd63
je 0x414cc0
inc edi
cmp ecx, edi
jne 0x414cb0
jmp case.0x413fc9.28
mov ecx, dword [ebx + edi*8 + 4]
cmp ecx, edx
je case.0x413fc9.28
push eax
push 1
push dword [0x449c90]
push ecx
call fcn.0043a6a0
add esp, 0x10
mov edi, dword [esi + 0x30]
push dword [edi]
call fcn.00438e10
add esp, 4
mov dword [edi], 0
mov eax, dword [esi + 0x70]
mov edx, dword [eax]
not edx
shr edx, 0x1f
mov eax, 4
xor ecx, ecx
mov edi, dword [esi + 0x34]
jmp dword [edx*4 + 0x443be4]
mov eax, dword [esi + 0x44]
mov eax, dword [eax]
jmp dword [0x443bf8]
jmp dword [0x443c04]
xor ecx, ecx
cmp eax, 1
sete cl
jmp dword [ecx*4 + 0x443c0c]
mov eax, dword [esi + 0x44]
mov dword [eax], 0
mov edi, dword [esi + 0xd8]
mov word [edi], 0xe7f8
mov byte [edi + 2], 0x50
mov dword [edi + 3], 0
mov dword [edi + 7], 0
mov dword [edi + 0xa], 0
mov dword [esi], 0
mov eax, dword [esi]
cmp eax, 0xd
ja 0x414da1
nop
mov eax, dword [esi]
mov ecx, dword [esi]
movzx ecx, byte [edi + ecx]
lea edx, [eax - 0x16ddb58d]
and edx, ecx
add eax, ecx
add eax, 0xe9224a73
add edx, edx
sub eax, edx
mov dword [esi + 8], eax
mov eax, dword [esi + 8]
add al, 0xdb
mov ecx, dword [esi]
mov byte [edi + ecx], al
inc dword [esi]
mov eax, dword [esi]
cmp eax, 0xe
jb 0x414d70
push edi
push dword [esi + 0x20]
call fcn.004026d0
add esp, 8
mov ecx, dword [esi + 0x50]
mov dword [ecx], eax
mov edi, dword [esi + 0xd4]
mov word [edi], 0xbba9
mov byte [edi + 2], 0x34
mov word [edi + 0xb], 0
mov dword [edi + 7], 0
mov dword [edi + 3], 0
mov dword [esi], 0
mov eax, dword [esi]
cmp eax, 0xc
ja 0x414e21
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esi]
mov ecx, dword [esi]
movzx ecx, byte [edi + ecx]
lea edx, [eax + 0x89]
and edx, ecx
add eax, ecx
add edx, edx
sub eax, edx
add eax, 0x87f76889
mov dword [esi + 8], eax
mov eax, dword [esi + 8]
add al, 0x41
mov ecx, dword [esi]
mov byte [edi + ecx], al
inc dword [esi]
mov eax, dword [esi]
cmp eax, 0xd
jb 0x414df0
push edi
push dword [esi + 0x20]
call fcn.004026d0
add esp, 8
mov ecx, eax
mov edx, dword [esi + 0x64]
mov dword [edx], eax
mov edx, dword [esi + 0x1c]
mov edx, dword [edx]
mov edi, 0xfffffffe
nop
nop
cmp word [edx + edi + 2], 0
lea edi, [edi + 2]
jne case.default.0x414e61
sar edi, 1
mov edx, dword [esi + 0x9c]
mov dword [edx], edi
mov edx, dword [esi + 0x50]
mov edx, dword [edx]
xor ebx, ebx
test edx, edx
setne bl
jmp dword [ebx*4 + 0x443c14]
mov edx, dword [esi + 0x4c]
xor edi, edi
mov dword [edx], edi
xor edx, edx
test eax, eax
setne dl
jmp dword [edx*4 + 0x443c1c]
mov ebx, edx
nop
mov edi, ebx
inc ebx
cmp byte [edi], 0
jne case.default.0x414ea1
sub edi, edx
mov edx, edi
and edx, 1
xor edi, 1
lea edx, [edi + edx*2]
mov edi, dword [esi + 0x4c]
mov dword [edi], edx
xor edx, edx
test eax, eax
setne dl
jmp dword [edx*4 + 0x443c1c]
xor edx, edx
mov eax, dword [esi + 0x68]
mov dword [eax], edx
mov edx, dword [esi + 0x7c]
mov dword [edx], 0x43cf4134
mov dword [edx + 4], 0x5f205d34
mov dword [edx + 8], 0x5b2c592a
mov dword [edx + 0xc], 0x57665517
lea eax, [edx + 0x10]
mov word [edx + 0x10], 0x5156
mov dword [edx + 0x12], 0
mov dword [edx + 0x15], 0
mov dword [esi], 0
mov ecx, dword [esi]
cmp ecx, 0x18
ja 0x414f49
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov edi, dword [esi]
mov ecx, dword [esi]
movzx ebx, byte [edx + ecx]
lea ecx, [edi - 0x887c6b5]
lea edx, [edi + ebx]
add edx, 0xf778394b
add edi, 0x4b
and edi, ebx
and ecx, edi
add ecx, edi
mov edi, edx
not edi
and edi, ecx
not ecx
and ecx, edx
sub ecx, edi
mov dword [esi + 8], ecx
mov ecx, dword [esi + 8]
add cl, 0xf3
mov edx, dword [esi]
mov edi, dword [esi + 0x7c]
mov byte [edi + edx], cl
mov edx, dword [esi + 0x7c]
inc dword [esi]
mov ecx, dword [esi]
cmp ecx, 0x19
jb 0x414f00
mov ebx, dword [esi + 0xb8]
mov edi, ebx
mov ecx, 4
xchg esi, edx
rep movsd dword es:[edi], dword [esi]
xchg esi, edx
lea edi, [ebx + 0x10]
mov ecx, 1
xchg esi, eax
rep movsw word es:[edi], word [esi]
xchg esi, eax
mov eax, 0xfffffffe
nop
nop
cmp word [ebx + eax + 2], 0
lea eax, [eax + 2]
jne 0x414f70
mov ecx, eax
sar ecx, 1
and eax, 2
xor ecx, 1
add ecx, eax
mov eax, dword [esi + 0x68]
mov eax, dword [eax]
mov edx, dword [esi + 0x9c]
add ecx, dword [edx]
mov edx, dword [esi + 0x4c]
add ecx, dword [edx]
lea edx, [ecx + eax]
add ecx, eax
inc ecx
lea eax, [edx + edx]
add eax, 2
test ecx, ecx
jns 0x414fae
mov eax, 0xffffffff
push eax
call fcn.00408b20
add esp, 4
mov ecx, dword [esi + 0x40]
mov dword [ecx], eax
movzx ecx, word [ebx]
test cx, cx
je 0x414fe1
mov edx, dword [esi + 0x5c]
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 0x414fd0
mov word [eax], 0x20
lea ecx, [eax + 4]
mov edx, dword [esi + 0x3c]
mov dword [edx], ecx
mov word [eax + 2], 0x22
mov eax, dword [esi + 0x1c]
mov eax, dword [eax]
movzx edx, word [eax]
test dx, dx
je 0x415021
lea edi, [eax + 2]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov word [ecx], dx
add ecx, 2
movzx edx, word [edi]
add edi, 2
test dx, dx
jne 0x415010
lea edx, [ecx + 2]
mov edi, dword [esi + 0x3c]
mov dword [edi], edx
mov word [ecx], 0x22
jmp dword [0x443c24]
push eax
call fcn.00408b30
add esp, 4
mov eax, dword [esi + 0x1c]
mov dword [eax], 0
mov eax, dword [esi + 0x50]
mov edi, dword [eax]
xor eax, eax
test edi, edi
setne al
jmp dword [eax*4 + 0x443c2c]
mov ecx, dword [esi + 0x3c]
mov eax, dword [ecx]
lea edx, [eax + 2]
mov dword [ecx], edx
mov word [eax], 0x2c
mov ecx, dword [esi + 0x4c]
mov ecx, dword [ecx]
mov ebx, 0xffffffff
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp byte [edi + ebx + 1], 0
lea ebx, [ebx + 1]
jne 0x415080
mov dword [esi + 8], 0
cmp ecx, 2
jl 0x4150de
test ebx, ebx
jle 0x4150de
add ebx, edi
lea eax, [eax + ecx*2]
mov dword [esi + 0x2c], eax
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp byte [edi], 0
je 0x4150de
lea eax, [esi + 8]
push eax
push ebx
push edi
mov dword [esi + 0x28], edx
call fcn.0040eca0
mov edx, dword [esi + 0x28]
add esp, 0xc
movzx ecx, word [esi + 8]
mov word [edx], cx
add edx, 2
cmp edx, dword [esi + 0x2c]
jae 0x4150de
add edi, eax
cmp edi, ebx
jb 0x4150b0
mov word [edx], 0
mov eax, dword [esi + 0x3c]
mov dword [eax], edx
mov eax, dword [esi + 0x64]
mov ecx, dword [eax]
xor eax, eax
mov dword [esi + 0x24], ecx
test ecx, ecx
setne al
jmp dword [eax*4 + 0x443c34]
mov eax, dword [esi + 0x1c]
mov dword [eax], 0
mov eax, dword [esi + 0x50]
mov edi, dword [eax]
xor eax, eax
test edi, edi
setne al
jmp dword [eax*4 + 0x443c2c]
mov eax, dword [esi + 0x64]
mov ecx, dword [eax]
xor eax, eax
mov dword [esi + 0x24], ecx
test ecx, ecx
setne al
jmp dword [eax*4 + 0x443c34]
mov eax, dword [case.0x414d01.10]
mov edi, dword [esi + 0x34]
nop
nop
nop
nop
nop
nop
nop
nop
jmp eax
mov edx, dword [case.0x414d01.0]
nop
nop
nop
nop
nop
nop
nop
nop
xor eax, eax
mov ecx, 1
jmp edx
jmp dword [ecx*4 + 0x443c6c]
mov eax, dword [esi + 0x44]
mov eax, dword [eax]
xor ecx, ecx
test eax, eax
setle cl
jmp dword [ecx*4 + 0x443c74]
xor ecx, ecx
cmp eax, 2
setl cl
jmp dword [ecx*4 + 0x443c7c]
sete al
movzx eax, al
jmp dword [eax*4 + 0x443c84]
mov eax, dword [esi + 0x1c]
mov eax, dword [eax]
mov ecx, 0xfffffffe
nop
nop
nop
nop
nop
nop
nop
cmp word [eax + ecx + 2], 0
lea ecx, [ecx + 2]
jne 0x4151a0
lea eax, [ecx + 0x3c]
cmp ecx, 0xffffffc3
mov ebx, dword [esi + 0x80]
jge 0x4151be
mov eax, 0xffffffff
push eax
call fcn.00408b20
add esp, 4
mov ecx, dword [esi + 0x40]
mov dword [ecx], eax
mov dword [ebx], 0xb0a0d32
mov byte [ebx + 0xc], 0
mov dword [ebx + 8], 0
mov dword [ebx + 4], 0
mov dword [esi], 0
mov eax, dword [esi]
cmp eax, 0xc
ja 0x415244
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esi]
mov ecx, dword [esi]
movzx edx, byte [ebx + ecx]
lea edi, [eax - 0x37bc1a7e]
lea ecx, [eax + edx]
add ecx, 0xc843e582
and edi, edx
add eax, 0x82
and eax, edx
add eax, edi
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, 0x72
mov ecx, dword [esi]
mov byte [ebx + ecx], al
inc dword [esi]
mov eax, dword [esi]
cmp eax, 0xd
jb 0x415200
mov eax, dword [esi + 0x1c]
mov eax, dword [eax]
mov edi, dword [esi + 0x60]
mov dword [edi], 0xc375c576
mov dword [edi + 4], 0xcf6bc17b
mov dword [edi + 8], 0xcb71cd70
mov dword [edi + 0xc], 0xd763c962
mov dword [edi + 0x10], 0xd360d562
mov dword [edi + 0x14], 0xdfa3d1b2
mov dword [edi + 0x18], 0xdb64dd75
mov dword [edi + 0x1c], 0x2775d971
mov dword [edi + 0x20], 0x238a2546
mov dword [edi + 0x24], 0x2f9021a5
mov dword [edi + 0x28], 0x2b912d81
mov dword [edi + 0x2c], 0x37482997
mov dword [edi + 0x30], 0x339e3545
mov dword [edi + 0x34], 0x3f5e3152
mov word [edi + 0x38], 0x3d3e
mov dword [edi + 0x3a], 0
mov dword [edi + 0x3e], 0
mov dword [edi + 0x42], 0
mov dword [esi], 0
mov ecx, dword [esi]
cmp ecx, 0x45
ja 0x41531f
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov ecx, dword [esi]
mov edx, dword [esi]
mov edi, dword [esi + 0x60]
movzx edi, byte [edi + edx]
lea edx, [ecx - 0x468c1b9f]
mov ebx, edi
not ebx
or ebx, edx
and edx, edi
mov edi, dword [esi + 0x60]
add edx, ebx
neg edx
add ecx, edx
add ecx, 0xb973e460
mov dword [esi + 8], ecx
mov ecx, dword [esi + 8]
add cl, 0x59
mov edx, dword [esi]
mov byte [edi + edx], cl
inc dword [esi]
mov ecx, dword [esi]
cmp ecx, 0x46
jb 0x4152e0
mov ecx, dword [esi + 0x40]
mov ecx, dword [ecx]
movzx edx, word [edi]
test dx, dx
je 0x415351
mov edi, dword [esi + 0xfc]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov word [ecx], dx
add ecx, 2
movzx edx, word [edi]
add edi, 2
test dx, dx
jne 0x415340
mov word [ecx], 0
movzx edx, word [eax]
test dx, dx
mov edi, dword [esi + 0x80]
je 0x415381
add eax, 2
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov word [ecx], dx
add ecx, 2
movzx edx, word [eax]
add eax, 2
test dx, dx
jne 0x415370
mov word [ecx], 0
movzx eax, word [edi]
test ax, ax
je 0x4153b1
mov edx, dword [esi + 0x100]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov word [ecx], ax
add ecx, 2
movzx eax, word [edx]
add edx, 2
test ax, ax
jne 0x4153a0
mov word [ecx], 0
mov edi, dword [esi + 0xcc]
mov dword [edi + 0x40], 0
mov dword [edi + 0x3c], 0
mov dword [edi + 0x38], 0
mov dword [edi + 0x34], 0
mov dword [edi + 0x30], 0
mov dword [edi + 0x2c], 0
mov dword [edi + 0x28], 0
mov dword [edi + 0x24], 0
mov dword [edi + 0x20], 0
mov dword [edi + 0x1c], 0
mov dword [edi + 0x18], 0
mov dword [edi + 0x14], 0
mov dword [edi + 0x10], 0
mov dword [edi + 0xc], 0
mov dword [edi + 8], 0
mov dword [edi + 4], 0
mov dword [edi], 0x44
push 0x89047569
push dword [0x449c7c]
call fcn.0043bf80
add esp, 8
push dword [esi + 0x94]
push edi
push 0
push 0
push 0x8000000
push 0
push 0
push 0
mov ecx, dword [esi + 0x40]
push dword [ecx]
push 0
call eax
xor ecx, ecx
test eax, eax
setne cl
jmp dword [ecx*4 + 0x443cbc]
mov eax, dword [esi + 0x94]
mov eax, dword [eax]
mov dword [esi + 8], 0x2010007
mov dword [esi + 0x10], 0
mov dword [esi + 0xc], 0
mov dword [esi + 4], 0
mov ecx, dword [esi + 4]
cmp ecx, 0xb
ja 0x4154de
nop
nop
mov ecx, dword [esi + 4]
mov edx, dword [esi + 4]
movzx edi, byte [esi + edx + 8]
lea edx, [ecx - 0x4057fad5]
mov ebx, edi
not ebx
or ebx, edx
and edx, edi
add edx, ebx
neg edx
add ecx, edx
add ecx, 0xbfa8052a
mov dword [esi], ecx
mov ecx, dword [esi]
add cl, 0xd3
mov edx, dword [esi + 4]
mov byte [esi + edx + 8], cl
inc dword [esi + 4]
mov ecx, dword [esi + 4]
cmp ecx, 0xc
jb 0x4154a0
mov ecx, dword [0x449c88]
test ecx, ecx
je case.0x414d01.54
mov edx, dword [esi + 8]
xor edi, edi
mov ebx, dword [0x449c8c]
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp dword [ebx + edi*8], 0xad91fd63
je 0x4157d0
inc edi
cmp ecx, edi
jne 0x415500
jmp case.0x414d01.54
xor ecx, ecx
test eax, eax
sete cl
jmp dword [ecx*4 + 0x443c8c]
jmp dword [0x443cd0]
mov eax, dword [esi + 0x30]
mov eax, dword [eax]
xor ecx, ecx
test eax, eax
setne cl
jmp dword [ecx*4 + 0x443cd4]
mov eax, dword [esi + 0x1c]
mov eax, dword [eax]
xor ecx, ecx
test eax, eax
sete cl
jmp dword [ecx*4 + 0x443cdc]
push eax
call fcn.00408b30
add esp, 4
mov eax, dword [case.0x415855.6]
nop
nop
nop
nop
nop
nop
jmp eax
mov eax, dword [esi + 0x40]
mov eax, dword [eax]
xor ecx, ecx
test eax, eax
sete cl
jmp dword [ecx*4 + 0x443cf4]
push eax
call fcn.00408b30
add esp, 4
mov ecx, dword [case.0x413fc9.0]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
xor eax, eax
jmp ecx
mov ecx, dword [case.0x415855.16]
mov edx, dword [esi + 0x8c]
jmp ecx
mov ecx, dword [case.0x415855.20]
nop
nop
nop
nop
nop
nop
nop
nop
jmp ecx
xor ecx, ecx
cmp eax, 4
sete cl
jmp dword [ecx*4 + 0x443d2c]
jmp dword [0x443d3c]
xor eax, eax
mov ecx, dword [esi + 0xac]
cmp dword [ecx], 0
sete al
jmp dword [eax*4 + 0x443c94]
push 0x51b4a2b7
push dword [0x449c7c]
call fcn.0043bf80
add esp, 8
push 0
push 0
mov ecx, dword [esi + 0x30]
push dword [ecx]
push 0x41d2f0
push 0
push 0
call eax
mov edi, eax
mov eax, dword [esi + 0x6c]
mov dword [eax], edi
xor eax, eax
test edi, edi
setne al
jmp dword [eax*4 + 0x443ca4]
mov eax, dword [esi + 0x30]
mov eax, dword [eax]
xor ecx, ecx
test eax, eax
setne cl
mov edi, dword [esi + 0x34]
jmp dword [ecx*4 + 0x443cd4]
push eax
call fcn.00438e10
add esp, 4
mov eax, dword [esi + 0x1c]
mov eax, dword [eax]
xor ecx, ecx
test eax, eax
sete cl
jmp dword [ecx*4 + 0x443cdc]
jmp dword [0x443cac]
jmp 0x41495f
mov edi, dword [esi + 0xd0]
mov dword [edi + 0x40], 0
mov dword [edi + 0x3c], 0
mov dword [edi + 0x38], 0
mov dword [edi + 0x34], 0
mov dword [edi + 0x30], 0
mov dword [edi + 0x2c], 0
mov dword [edi + 0x28], 0
mov dword [edi + 0x24], 0
mov dword [edi + 0x20], 0
mov dword [edi + 0x1c], 0
mov dword [edi + 0x18], 0
mov dword [edi + 0x14], 0
mov dword [edi + 0x10], 0
mov dword [edi + 0xc], 0
mov dword [edi + 8], 0
mov dword [edi + 4], 0
mov dword [edi], 0x44
push 0x89047569
push dword [0x449c7c]
call fcn.0043bf80
add esp, 8
push dword [esi + 0x98]
push edi
push 0
push 0
push 0
push 0
push 0
push 0
mov ecx, dword [esi + 0x40]
push dword [ecx]
mov ecx, dword [esi + 0x1c]
push dword [ecx]
call eax
xor ecx, ecx
test eax, eax
setne cl
jmp dword [ecx*4 + 0x443c9c]
mov eax, dword [esi + 0x98]
mov eax, dword [eax]
mov dword [esi + 8], 0x2010007
mov dword [esi + 0x10], 0
mov dword [esi + 0xc], 0
mov dword [esi + 4], 0
mov ecx, dword [esi + 4]
cmp ecx, 0xb
ja 0x41579e
nop
nop
nop
nop
mov ecx, dword [esi + 4]
mov edx, dword [esi + 4]
movzx edi, byte [esi + edx + 8]
lea edx, [ecx - 0x4057fad5]
mov ebx, edi
not ebx
or ebx, edx
and edx, edi
add edx, ebx
neg edx
add ecx, edx
add ecx, 0xbfa8052a
mov dword [esi], ecx
mov ecx, dword [esi]
add cl, 0xd3
mov edx, dword [esi + 4]
mov byte [esi + edx + 8], cl
inc dword [esi + 4]
mov ecx, dword [esi + 4]
cmp ecx, 0xc
jb 0x415760
mov ecx, dword [0x449c88]
test ecx, ecx
je case.0x414d01.46
mov edx, dword [esi + 8]
xor edi, edi
mov ebx, dword [0x449c8c]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp dword [ebx + edi*8], 0xad91fd63
je 0x4157ee
inc edi
cmp ecx, edi
jne 0x4157c0
jmp case.0x414d01.46
mov ecx, dword [ebx + edi*8 + 4]
cmp ecx, edx
jne 0x41580c
mov eax, dword [esi + 0x30]
mov eax, dword [eax]
xor ecx, ecx
test eax, eax
setne cl
mov edi, dword [esi + 0x34]
jmp dword [ecx*4 + 0x443cd4]
mov ecx, dword [ebx + edi*8 + 4]
cmp ecx, edx
jne 0x415834
mov eax, dword [esi + 0x30]
mov eax, dword [eax]
xor ecx, ecx
test eax, eax
setne cl
mov edi, dword [esi + 0x34]
jmp dword [ecx*4 + 0x443cd4]
push eax
push 1
push dword [0x449c90]
push ecx
call fcn.0043a6a0
add esp, 0x10
mov eax, dword [esi + 0x30]
mov eax, dword [eax]
xor ecx, ecx
test eax, eax
setne cl
mov edi, dword [esi + 0x34]
jmp dword [ecx*4 + 0x443cd4]
push eax
push 1
push dword [0x449c90]
push ecx
call fcn.0043a6a0
add esp, 0x10
mov eax, dword [esi + 0x30]
mov eax, dword [eax]
xor ecx, ecx
test eax, eax
setne cl
mov edi, dword [esi + 0x34]
jmp dword [ecx*4 + 0x443cd4]
lea ecx, [edx + 1]
cmp byte [edx], 0
jne 0x415922
mov ecx, edx
sub ecx, eax
xor ebx, ebx
mov dword [esi + 0x78], ecx
test ecx, ecx
jle 0x4158b8
cmp byte [eax], 0
je 0x4158b8
xor ebx, ebx
mov edi, dword [esi + 0x24]
mov dword [esi + 0x28], edx
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov dword [esi + 8], 0
lea eax, [esi + 8]
push eax
push edx
push edi
call fcn.0040eca0
mov edx, dword [esi + 0x28]
add esp, 0xc
lea ecx, [edi + eax]
inc ebx
cmp ecx, edx
jae 0x4158b8
cmp byte [edi + eax], 0
mov edi, ecx
jne 0x415890
mov eax, dword [esi + 0x74]
mov dword [eax], ebx
mov eax, dword [esi + 0x24]
mov ecx, eax
jmp dword [0x443b90]
mov edx, ecx
inc ecx
cmp byte [edx], 0
jne case.0x414058.2
mov ecx, edx
sub ecx, eax
xor ebx, ebx
test ecx, ecx
jle 0x415918
cmp byte [eax], 0
je 0x415918
xor ebx, ebx
mov edi, dword [esi + 0x24]
mov dword [esi + 0x28], edx
nop
mov dword [esi + 8], 0
lea eax, [esi + 8]
push eax
push edx
push edi
call fcn.0040eca0
mov edx, dword [esi + 0x28]
add esp, 0xc
lea ecx, [edi + eax]
inc ebx
cmp ecx, edx
jae 0x415918
cmp byte [edi + eax], 0
mov edi, ecx
jne 0x4158f0
mov eax, dword [esi + 0x74]
mov dword [eax], ebx
mov eax, dword [esi + 0x24]
mov ecx, eax
mov edx, ecx
jmp 0x415860
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret