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

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff8
sub esp, 0x1c8
mov ecx, dword [ebp + 0x14]
mov ebx, dword [ebp + 8]
mov edi, dword [ecx + 0x10]
mov edx, dword [ecx + 0x14]
cmp edi, edx
jbe 0x4918da
mov dword [ebx], 0
jmp 0x49405a
mov eax, dword [ecx]
mov esi, dword [ebp + 0xc]
mov dword [esp + 8], edx
mov dword [esp + 0x18], eax
dec eax
cmp eax, 2
mov eax, edx
jb 0x491908
cmp byte [esi + 0x48], 3
lea eax, [esi + 0x40]
mov ebx, 0x5adff8
cmovne ebx, eax
cmp byte [ebx + 8], 2
jne 0x491c7c
cmp byte [ecx + 0x18], 0
je 0x491ac6
mov eax, dword [esi + 0x278]
test edi, edi
mov dword [esp + 0x20], eax
je 0x491e2f
mov eax, dword [esi + 0x258]
mov ecx, dword [esi + 0x25c]
mov edx, dword [esi + 0x260]
mov ebx, dword [ebp + 0xc]
mov esi, dword [esi + 0x264]
or esi, dword [ebx + 0x274]
or ecx, dword [ebx + 0x26c]
or edx, dword [ebx + 0x270]
mov ebx, dword [ebp + 0xc]
or eax, dword [ebx + 0x268]
or ecx, esi
or eax, edx
or eax, ecx
mov ecx, dword [ebp + 0x14]
je 0x491e2f
mov edx, dword [ecx + 0xc]
lea eax, [edi - 1]
cmp eax, edx
mov dword [esp + 0x48], edx
jae 0x494be7
mov edx, dword [ecx + 8]
mov dword [esp + 0x1c], eax
movzx ecx, byte [edx + eax]
mov dword [esp + 0x14], edx
mov eax, ecx
mov dword [esp + 4], ecx
mov dword [esp + 0x100], 0
mov dword [esp + 0xfc], 0
mov dword [esp + 0xf8], 0
mov dword [esp + 0xf4], 1
mov dword [esp + 0xf0], 0
mov dword [esp + 0xec], 0
mov dword [esp + 0xe8], 0
mov dword [esp + 0xe4], 0
mov ch, cl
and al, 0x78
and ch, 7
shr al, 3
mov cl, ch
neg al
movsx esi, al
mov edx, dword [esp + esi + 0xfc]
mov eax, dword [esp + esi + 0x100]
shld eax, edx, cl
shl edx, cl
not cl
mov dword [esp + 0xc], eax
mov eax, dword [esp + esi + 0xf8]
mov esi, dword [esp + esi + 0xf4]
mov ebx, eax
shr ebx, 1
shr ebx, cl
mov cl, ch
shld eax, esi, cl
or ebx, edx
mov edx, dword [esp + 4]
shl esi, cl
mov ecx, dword [ebp + 0xc]
mov dword [esp + 0x24], eax
shr edx, 3
lea eax, [ecx + 0x258]
mov ecx, dword [esp + 0xc]
and edx, 0x10
mov dword [esp + 0x10], eax
and ebx, dword [eax + edx + 8]
mov eax, dword [esp + 0x10]
and ecx, dword [eax + edx + 0xc]
mov eax, dword [esp + 0x24]
mov dword [esp + 0xc], ecx
mov ecx, dword [esp + 0x10]
and eax, dword [ecx + edx + 4]
and esi, dword [ecx + edx]
or eax, dword [esp + 0xc]
or esi, ebx
or eax, esi
je 0x49201b
mov eax, dword [0x6074b4]
mov esi, dword [0x6074a0]
mov ebx, dword [ebp + 8]
movzx eax, byte [eax]
mov eax, dword [esi]
test eax, eax
jne 0x491aa1
call sub.KERNEL32.dll_GetProcessHeap
test eax, eax
je 0x494d78
mov dword [esi], eax
push 0xc
push 0
push eax
call sub.KERNEL32.dll_HeapAlloc
test eax, eax
je 0x494d78
mov ecx, dword [esp + 4]
mov byte [eax], 0
mov byte [eax + 1], cl
mov ecx, dword [esp + 0x1c]
jmp 0x49248f
mov eax, dword [esi + 0x278]
test edi, edi
mov dword [esp + 0x14], eax
je 0x491e56
mov eax, dword [esi + 0x258]
mov ecx, dword [esi + 0x25c]
mov edx, dword [esi + 0x260]
mov ebx, dword [ebp + 0xc]
mov esi, dword [esi + 0x264]
or esi, dword [ebx + 0x274]
or ecx, dword [ebx + 0x26c]
or edx, dword [ebx + 0x270]
mov ebx, dword [ebp + 0xc]
or eax, dword [ebx + 0x268]
or ecx, esi
or eax, edx
or eax, ecx
mov ecx, dword [ebp + 0x14]
je 0x491e56
mov edx, dword [ecx + 0xc]
lea eax, [edi - 1]
cmp eax, edx
mov dword [esp + 0x1c], edx
jae 0x494c36
mov ecx, dword [ecx + 8]
mov dword [esp + 0x24], eax
mov dword [esp + 0x48], ecx
movzx ecx, byte [ecx + eax]
mov eax, ecx
mov dword [esp + 4], ecx
mov dword [esp + 0xe0], 0
mov dword [esp + 0xdc], 0
mov dword [esp + 0xd8], 0
mov dword [esp + 0xd4], 1
mov dword [esp + 0xd0], 0
mov dword [esp + 0xcc], 0
mov dword [esp + 0xc8], 0
mov dword [esp + 0xc4], 0
mov ch, cl
and al, 0x78
and ch, 7
shr al, 3
mov cl, ch
neg al
movsx esi, al
mov edx, dword [esp + esi + 0xdc]
mov eax, dword [esp + esi + 0xe0]
shld eax, edx, cl
shl edx, cl
not cl
mov dword [esp + 0xc], eax
mov eax, dword [esp + esi + 0xd8]
mov esi, dword [esp + esi + 0xd4]
mov ebx, eax
shr ebx, 1
shr ebx, cl
mov cl, ch
shld eax, esi, cl
or ebx, edx
mov edx, dword [esp + 4]
shl esi, cl
mov ecx, dword [ebp + 0xc]
mov dword [esp + 0x20], eax
shr edx, 3
lea eax, [ecx + 0x258]
mov ecx, dword [esp + 0xc]
and edx, 0x10
mov dword [esp + 0x10], eax
and ebx, dword [eax + edx + 8]
mov eax, dword [esp + 0x10]
and ecx, dword [eax + edx + 0xc]
mov eax, dword [esp + 0x20]
mov dword [esp + 0xc], ecx
mov ecx, dword [esp + 0x10]
and eax, dword [ecx + edx + 4]
and esi, dword [ecx + edx]
or eax, dword [esp + 0xc]
or esi, ebx
or eax, esi
je 0x49252f
mov eax, dword [0x6074b4]
mov esi, dword [0x6074a0]
movzx eax, byte [eax]
mov eax, dword [esi]
test eax, eax
jne 0x491c52
call sub.KERNEL32.dll_GetProcessHeap
test eax, eax
je 0x494d78
mov dword [esi], eax
push 0xc
push 0
push eax
call sub.KERNEL32.dll_HeapAlloc
test eax, eax
je 0x494d78
mov ebx, eax
mov byte [eax], 0
mov eax, dword [esp + 4]
mov ecx, dword [esp + 0x24]
mov byte [ebx + 1], al
mov dword [ebx + 4], ecx
jmp 0x492ac3
cmp byte [ecx + 0x18], 0
mov dword [esp + 0x10], ebx
je 0x491e7d
mov eax, dword [esi + 0x278]
lea edx, [esi + 0x258]
test edi, edi
mov dword [esp + 0x20], edx
mov dword [esp + 0x64], eax
movzx eax, word [eax + 0x152]
mov word [esp + 0x24], ax
je 0x4923dd
mov eax, dword [esi + 0x258]
mov ecx, dword [esi + 0x25c]
mov edx, dword [esi + 0x260]
mov ebx, dword [ebp + 0xc]
mov esi, dword [esi + 0x264]
or esi, dword [ebx + 0x274]
or ecx, dword [ebx + 0x26c]
or edx, dword [ebx + 0x270]
or ecx, esi
mov esi, dword [ebp + 0xc]
or eax, dword [esi + 0x268]
or eax, edx
or eax, ecx
mov ecx, dword [ebp + 0x14]
je 0x4923dd
mov edx, dword [ecx + 0xc]
lea eax, [edi - 1]
cmp eax, edx
mov dword [esp + 0x50], edx
jae 0x494c6f
mov ecx, dword [ecx + 8]
mov dword [esp + 0x48], eax
mov dword [esp + 4], ecx
movzx ecx, byte [ecx + eax]
mov eax, ecx
mov dword [esp + 0xc], ecx
mov dword [esp + 0x1c0], 0
mov dword [esp + 0x1bc], 0
mov dword [esp + 0x1b8], 0
mov dword [esp + 0x1b4], 1
mov dword [esp + 0x1b0], 0
mov dword [esp + 0x1ac], 0
mov dword [esp + 0x1a8], 0
mov dword [esp + 0x1a4], 0
mov ch, cl
and al, 0x78
and ch, 7
shr al, 3
mov cl, ch
neg al
movsx esi, al
mov edx, dword [esp + esi + 0x1bc]
mov eax, dword [esp + esi + 0x1c0]
mov dword [esp + 0x1c], esi
shld eax, edx, cl
shl edx, cl
not cl
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0xc]
mov esi, dword [esp + esi + 0x1b8]
shr eax, 3
mov ebx, esi
and eax, 0x10
shr ebx, 1
shr ebx, cl
mov cl, ch
or ebx, edx
mov edx, dword [esp + 0x1c]
mov edx, dword [esp + edx + 0x1b4]
shld esi, edx, cl
shl edx, cl
mov ecx, dword [esp + 0x20]
and ebx, dword [ecx + eax + 8]
and edx, dword [ecx + eax]
and esi, dword [ecx + eax + 4]
or edx, ebx
mov ebx, dword [esp + 0x14]
and ebx, dword [ecx + eax + 0xc]
or esi, ebx
or esi, edx
je 0x492b77
mov eax, dword [0x6074b4]
mov esi, dword [0x6074a0]
mov ebx, dword [ebp + 8]
movzx eax, byte [eax]
mov eax, dword [esi]
test eax, eax
jne 0x491e18
call sub.KERNEL32.dll_GetProcessHeap
test eax, eax
je 0x494d78
mov dword [esi], eax
push 0xc
push 0
push eax
call sub.KERNEL32.dll_HeapAlloc
test eax, eax
jne 0x492004
jmp 0x494d78
mov esi, dword [ebp + 0x10]
test edi, edi
je 0x492017
mov eax, dword [ecx + 8]
lea edx, [edi - 1]
mov dword [esp + 0x14], eax
mov eax, dword [ecx + 0xc]
cmp eax, edx
mov al, 2
ja 0x49202f
jmp 0x492046
mov esi, dword [ebp + 0x10]
mov edx, dword [esp + 0x18]
test edi, edi
je 0x49252b
mov ebx, dword [ecx + 8]
mov eax, dword [ecx + 0xc]
lea ecx, [edi - 1]
cmp eax, ecx
mov al, 2
ja 0x492548
jmp 0x492558
mov eax, dword [esi + 0x278]
lea edx, [esi + 0x258]
test edi, edi
mov dword [esp + 0x20], edx
mov dword [esp + 0x64], eax
movzx eax, word [eax + 0x152]
mov word [esp + 0x24], ax
je 0x492b24
mov eax, dword [esi + 0x258]
mov ecx, dword [esi + 0x25c]
mov edx, dword [esi + 0x260]
mov ebx, dword [ebp + 0xc]
mov esi, dword [esi + 0x264]
or esi, dword [ebx + 0x274]
or ecx, dword [ebx + 0x26c]
or edx, dword [ebx + 0x270]
or ecx, esi
mov esi, dword [ebp + 0xc]
or eax, dword [esi + 0x268]
or eax, edx
or eax, ecx
mov ecx, dword [ebp + 0x14]
je 0x492b24
mov edx, dword [ecx + 0xc]
lea eax, [edi - 1]
cmp eax, edx
mov dword [esp + 0x50], edx
jae 0x494c6f
mov ecx, dword [ecx + 8]
mov dword [esp + 0x48], eax
mov dword [esp + 4], ecx
movzx ecx, byte [ecx + eax]
mov eax, ecx
mov dword [esp + 0xc], ecx
mov dword [esp + 0x160], 0
mov dword [esp + 0x15c], 0
mov dword [esp + 0x158], 0
mov dword [esp + 0x154], 1
mov dword [esp + 0x150], 0
mov dword [esp + 0x14c], 0
mov dword [esp + 0x148], 0
mov dword [esp + 0x144], 0
mov ch, cl
and al, 0x78
and ch, 7
shr al, 3
mov cl, ch
neg al
movsx esi, al
mov edx, dword [esp + esi + 0x15c]
mov eax, dword [esp + esi + 0x160]
mov dword [esp + 0x1c], esi
shld eax, edx, cl
shl edx, cl
not cl
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0xc]
mov esi, dword [esp + esi + 0x158]
shr eax, 3
mov ebx, esi
and eax, 0x10
shr ebx, 1
shr ebx, cl
mov cl, ch
or ebx, edx
mov edx, dword [esp + 0x1c]
mov edx, dword [esp + edx + 0x154]
shld esi, edx, cl
shl edx, cl
mov ecx, dword [esp + 0x20]
and ebx, dword [ecx + eax + 8]
and edx, dword [ecx + eax]
and esi, dword [ecx + eax + 4]
or edx, ebx
mov ebx, dword [esp + 0x14]
and ebx, dword [ecx + eax + 0xc]
or esi, ebx
or esi, edx
je 0x492ecb
mov eax, dword [0x6074b4]
movzx eax, byte [eax]
push 4
push 0xc
call fcn.00401610
add esp, 8
mov ebx, dword [ebp + 8]
test eax, eax
je 0x494d78
mov ecx, dword [esp + 0xc]
mov byte [eax], 0
mov byte [eax + 1], cl
mov ecx, dword [esp + 0x48]
jmp 0x49248f
mov al, 2
jmp 0x492046
mov esi, dword [ebp + 0x10]
mov ecx, dword [ebp + 0x14]
mov edx, dword [esp + 0x1c]
mov eax, dword [esp + 0x48]
cmp eax, edx
mov al, 2
jbe 0x492046
mov ebx, dword [esp + 0x14]
test ebx, ebx
je 0x492046
movzx eax, byte [ebx + edx]
mov ecx, dword [ebp + 0xc]
movzx eax, byte [ecx + eax + 0x58]
mov ecx, dword [ebp + 0x14]
mov ebx, dword [esp + 0x18]
movzx edx, al
mov eax, edx
test ebx, ebx
je 0x49205f
cmp ebx, 1
jne 0x492383
lea eax, [edx + 6]
mov ecx, dword [esi + 0x88]
mov ebx, dword [ebp + 8]
cmp eax, ecx
jae 0x494b76
mov ecx, dword [esi + 0x80]
mov eax, dword [ecx + eax*4]
test eax, eax
js 0x492e20
cmp dword [esi + 0xb0], 1
mov ebx, dword [esp + 8]
jne 0x4920ab
mov ecx, dword [esi + 0xb8]
mov edx, dword [esi + 0xb4]
mov esi, ecx
sub esi, edx
neg esi
sub ecx, edx
cmovb ecx, esi
mov esi, dword [ebp + 0x10]
add dword [esi + 0x70], ecx
mov ecx, dword [ebp + 0x14]
cmp edi, ebx
mov dword [esi + 0xb0], 1
mov dword [esi + 0xb4], edi
mov dword [esi + 0xb8], edi
jae 0x492369
mov edx, dword [ecx + 8]
mov ecx, dword [ecx + 0xc]
mov dword [esp + 4], ecx
mov ecx, dword [ebp + 0xc]
mov dword [esp + 0x18], edx
mov ecx, dword [ecx + 0x27c]
and ecx, 0x1f
mov dword [esp + 0x24], ecx
jmp 0x4920fe
mov edi, esi
mov esi, dword [ebp + 0x10]
inc edi
cmp edi, ebx
jae 0x4923fa
cmp eax, 0x7ffffff
jbe 0x492170
cmp dword [esi + 0xb0], 0
je 0x494d62
mov ecx, dword [esp + 4]
mov dword [esi + 0xb8], edi
cmp edi, ecx
jae 0x494ae5
mov ecx, dword [esp + 0x18]
mov edx, dword [ebp + 0xc]
movzx ecx, byte [ecx + edi]
movzx ebx, byte [edx + ecx + 0x158]
mov edx, eax
and edx, 0x7ffffff
add edx, ebx
mov ebx, dword [esi + 0x7c]
cmp edx, ebx
jae 0x494af6
mov esi, dword [esi + 0x74]
mov edx, dword [esi + edx*4]
test edx, edx
js 0x49226a
mov ebx, dword [esp + 8]
mov esi, edi
mov eax, edx
cmp eax, 0x8000000
jae 0x49231b
jmp 0x4920f0
cmp edi, ebx
jae 0x4920f2
mov ecx, dword [esi + 0x74]
mov dword [esp + 0xc], ecx
nop
mov edx, dword [esp + 0x18]
mov esi, dword [ebp + 0xc]
movzx edx, byte [edx + edi]
movzx edx, byte [esi + edx + 0x158]
add edx, eax
mov edx, dword [ecx + edx*4]
cmp edx, 0x7ffffff
ja 0x4922ac
lea ecx, [edi + 3]
cmp ecx, ebx
jae 0x4922a8
mov dword [esp + 0x10], ecx
mov ecx, edi
mov edi, dword [esp + 0x18]
mov ebx, dword [ebp + 0xc]
mov esi, dword [esp + 0xc]
movzx eax, byte [edi + ecx + 1]
movzx eax, byte [ebx + eax + 0x158]
add eax, edx
mov eax, dword [esi + eax*4]
cmp eax, 0x7ffffff
ja 0x492226
movzx edx, byte [edi + ecx + 2]
movzx edx, byte [ebx + edx + 0x158]
add edx, eax
mov edx, dword [esi + edx*4]
cmp edx, 0x7ffffff
ja 0x49222d
movzx eax, byte [edi + ecx + 3]
movzx eax, byte [ebx + eax + 0x158]
add eax, edx
mov eax, dword [esi + eax*4]
cmp eax, 0x7ffffff
ja 0x492258
mov ebx, dword [esp + 8]
mov edi, ecx
mov ecx, dword [esp + 0xc]
add edi, 4
cmp edi, ebx
jb 0x492180
jmp 0x4920f2
inc ecx
mov dword [esp + 0x14], edx
jmp 0x492236
add ecx, 2
mov dword [esp + 0x14], eax
mov eax, edx
mov dword [esp + 0x10], ecx
mov ebx, dword [esp + 8]
mov ecx, esi
test eax, eax
js 0x4922ba
mov esi, dword [esp + 0x10]
cmp eax, 0x8000000
jae 0x49231b
jmp 0x4920f0
mov ebx, dword [esp + 8]
mov ecx, dword [esp + 0xc]
mov dword [esp + 0x14], edx
test eax, eax
jns 0x492244
jmp 0x4922ba
mov edx, dword [ebp + 0xc]
shl ecx, 8
mov dword [esp + 0x28], edx
mov edx, dword [ebp + 0x10]
mov dword [esp + 0x2c], edx
push ecx
push eax
lea eax, [esp + 0x30]
push eax
call fcn.0048c500
add esp, 0xc
mov ebx, dword [esp + 8]
test eax, eax
mov ecx, eax
jne 0x49386f
mov eax, edx
mov esi, edi
cmp eax, 0x8000000
jae 0x49231b
jmp 0x4920f0
mov ecx, dword [esp + 0xc]
mov dword [esp + 0x14], eax
mov dword [esp + 0x10], edi
mov eax, edx
test eax, eax
jns 0x492244
mov edi, dword [ebp + 0x10]
mov esi, dword [esp + 0x10]
cmp dword [edi + 0xb0], 0
je 0x494d62
cmp esi, dword [esp + 4]
mov eax, dword [esp + 0x18]
mov dword [edi + 0xb8], esi
jae 0x494c02
movzx edx, byte [eax + esi]
mov eax, dword [ebp + 0xc]
mov edi, dword [edi + 0x7c]
movzx eax, byte [eax + edx + 0x158]
add eax, dword [esp + 0x14]
cmp eax, edi
jae 0x494c16
mov eax, dword [ecx + eax*4]
test eax, eax
js 0x49232e
nop word [eax + eax]
cmp eax, 0x8000000
jb 0x4920f0
mov ecx, eax
and ecx, 0x10000000
jne 0x4920f0
jmp 0x492ad6
mov eax, dword [ebp + 0xc]
shl edx, 8
mov dword [esp + 0x28], eax
mov eax, dword [ebp + 0x10]
mov dword [esp + 0x2c], eax
push edx
push dword [esp + 0x18]
lea eax, [esp + 0x30]
push eax
call fcn.0048c500
add esp, 0xc
test eax, eax
mov ecx, eax
jne 0x494b4c
mov eax, edx
cmp eax, 0x8000000
jae 0x49231b
jmp 0x4920f0
mov esi, dword [ecx + 8]
mov ecx, dword [ecx + 0xc]
mov edx, dword [ebp + 0xc]
cmp ebx, ecx
mov dword [esp + 4], ecx
jb 0x492411
jmp 0x4924a0
mov eax, dword [ebp + 0xc]
mov esi, dword [ecx + 4]
test byte [eax + 0x4d], 1
jne 0x4924f8
mov eax, dword [0x6074b4]
mov edi, dword [0x6074a0]
mov ebx, dword [ebp + 8]
movzx eax, byte [eax]
mov eax, dword [edi]
test eax, eax
jne 0x4923b9
call sub.KERNEL32.dll_GetProcessHeap
test eax, eax
je 0x494d78
mov dword [edi], eax
push 0xc
push 0
push eax
call sub.KERNEL32.dll_HeapAlloc
test eax, eax
je 0x494d78
mov byte [eax], 3
mov dword [eax + 4], 2
mov dword [eax + 8], esi
jmp 0x492492
mov edx, dword [ebp + 0x10]
test edi, edi
je 0x492b73
mov eax, dword [ecx + 8]
mov ebx, dword [ecx + 0xc]
mov dword [esp + 4], eax
lea eax, [edi - 1]
jmp 0x492b85
mov ecx, dword [esp + 4]
mov esi, dword [esp + 0x18]
mov edx, dword [ebp + 0xc]
cmp ebx, ecx
mov dword [esp + 4], ecx
jae 0x4924a0
test esi, esi
je 0x4924a0
movzx ebx, byte [esi + ebx]
mov edi, dword [ebp + 0x10]
movzx ecx, bl
movzx esi, byte [edx + ecx + 0x158]
mov edx, eax
and edx, 0x7ffffff
add edx, esi
mov esi, dword [edi + 0x7c]
cmp edx, esi
jae 0x494c8a
mov esi, dword [edi + 0x74]
mov esi, dword [esi + edx*4]
test esi, esi
js 0x493a17
test esi, 0x8000000
jne 0x493dc2
test esi, 0x20000000
je 0x4924ea
mov eax, dword [0x6074b4]
movzx eax, byte [eax]
push 4
push 0xc
call fcn.00401610
add esp, 8
test eax, eax
je 0x494d78
mov byte [eax], 0
mov byte [eax + 1], bl
mov ecx, dword [esp + 8]
mov ebx, dword [ebp + 8]
mov dword [eax + 4], ecx
mov dword [ebx + 4], eax
mov dword [ebx], 2
jmp 0x49405a
movzx ecx, byte [edx + 0x257]
mov edi, dword [ebp + 0x10]
mov edx, eax
and edx, 0x7ffffff
shl ecx, 0x10
add ecx, 0x10001
mov esi, ecx
shr esi, 0x10
add edx, esi
mov esi, dword [edi + 0x7c]
cmp edx, esi
jae 0x494c91
mov esi, dword [edi + 0x74]
mov ebx, dword [ebp + 8]
mov esi, dword [esi + edx*4]
test esi, esi
js 0x493a63
test esi, 0x8000000
jne 0x493e5c
mov esi, dword [ebp + 0x10]
mov ebx, dword [esp + 8]
xor eax, eax
jmp 0x493eb2
mov eax, dword [esp + 0x20]
mov ebx, dword [ebp + 8]
cmp dword [eax + 0x148], esi
jbe 0x492df4
lea eax, [esi + esi*2]
mov esi, dword [ebp + 0x10]
lea eax, [edx + eax*2 + 0xc]
mov ecx, dword [esi + 0x88]
mov ebx, dword [ebp + 8]
cmp eax, ecx
jb 0x492070
jmp 0x494b76
mov al, 2
jmp 0x492558
mov esi, dword [ebp + 0x10]
mov edx, dword [esp + 0x18]
mov ecx, dword [esp + 0x24]
mov ebx, dword [esp + 0x48]
mov eax, dword [esp + 0x1c]
cmp eax, ecx
mov al, 2
jbe 0x492558
test ebx, ebx
je 0x492558
movzx eax, byte [ebx + ecx]
mov ebx, dword [ebp + 0xc]
movzx eax, byte [ebx + eax + 0x58]
movzx eax, al
test edx, edx
mov ecx, eax
je 0x49256d
cmp edx, 1
jne 0x492a85
lea ecx, [eax + 6]
mov edx, dword [esi + 0x88]
cmp ecx, edx
jae 0x492b69
mov edx, dword [esi + 0x80]
mov ebx, dword [edx + ecx*4]
test ebx, ebx
js 0x493180
cmp dword [esi + 0xb0], 1
jne 0x4925af
mov eax, dword [esi + 0xb8]
mov ecx, dword [esi + 0xb4]
mov edx, eax
sub edx, ecx
neg edx
sub eax, ecx
cmovb eax, edx
add dword [esi + 0x70], eax
cmp edi, dword [esp + 8]
mov eax, dword [ebp + 0x14]
mov dword [esi + 0xb0], 1
mov dword [esi + 0xb4], edi
mov dword [esi + 0xb8], edi
jae 0x492910
mov ecx, dword [eax + 8]
mov dword [esp + 0x20], 0
mov dword [esp + 0x18], ecx
mov ecx, dword [eax + 0xc]
mov eax, dword [ebp + 0xc]
mov eax, dword [eax + 0x27c]
and eax, 0x1f
mov dword [esp + 0x48], eax
mov eax, ecx
mov dword [esp + 4], eax
jmp 0x492622
mov dword [esp + 0x24], 0
mov dword [esp + 0x20], 1
mov dword [esp + 0x1c], edi
mov eax, dword [esp + 4]
inc edi
mov esi, dword [ebp + 0x10]
cmp edi, dword [esp + 8]
jae 0x492924
cmp ebx, 0x7ffffff
jbe 0x492690
cmp dword [esi + 0xb0], 0
je 0x494d62
cmp edi, eax
mov dword [esi + 0xb8], edi
jae 0x494b3b
mov eax, dword [esp + 0x18]
mov ecx, dword [ebp + 0xc]
movzx eax, byte [eax + edi]
movzx edx, byte [ecx + eax + 0x158]
mov ecx, ebx
and ecx, 0x7ffffff
add ecx, edx
mov edx, dword [esi + 0x7c]
cmp ecx, edx
jae 0x494a57
mov edx, dword [esi + 0x74]
mov ecx, dword [edx + ecx*4]
test ecx, ecx
js 0x4927f6
mov esi, dword [esp + 0x18]
mov ebx, ecx
cmp ebx, 0x8000000
jae 0x492830
jmp 0x492610
cmp edi, dword [esp + 8]
jae 0x492614
mov eax, dword [esi + 0x74]
nop dword [eax]
mov esi, ebx
mov ebx, dword [esp + 0x18]
mov edx, dword [ebp + 0xc]
mov dword [esp + 0x10], esi
movzx ecx, byte [ebx + edi]
movzx ecx, byte [edx + ecx + 0x158]
mov edx, eax
add ecx, esi
mov edx, dword [eax + ecx*4]
cmp edx, 0x7ffffff
ja 0x492746
lea ecx, [edi + 3]
cmp ecx, dword [esp + 8]
mov dword [esp + 0xc], ecx
jae 0x492746
movzx ecx, byte [ebx + edi + 1]
mov esi, dword [ebp + 0xc]
movzx ecx, byte [esi + ecx + 0x158]
add ecx, edx
mov esi, dword [eax + ecx*4]
cmp esi, 0x7ffffff
ja 0x492765
movzx ecx, byte [ebx + edi + 2]
mov edx, dword [ebp + 0xc]
movzx ecx, byte [edx + ecx + 0x158]
add ecx, esi
mov edx, dword [eax + ecx*4]
cmp edx, 0x7ffffff
ja 0x4927d2
movzx ecx, byte [ebx + edi + 3]
mov esi, dword [ebp + 0xc]
movzx ecx, byte [esi + ecx + 0x158]
add ecx, edx
mov ebx, dword [eax + ecx*4]
cmp ebx, 0x7ffffff
ja 0x4927e3
add edi, 4
cmp edi, dword [esp + 8]
jb 0x4926a0
jmp 0x492610
mov ecx, dword [esp + 0x10]
mov ebx, edx
test ebx, ebx
js 0x49276e
mov esi, dword [esp + 0x18]
cmp ebx, 0x8000000
jae 0x492830
jmp 0x492610
inc edi
mov ecx, edx
mov ebx, esi
test ebx, ebx
jns 0x492750
mov ebx, dword [ebp + 0x10]
mov edx, dword [esp + 0x18]
cmp dword [ebx + 0xb0], 0
je 0x494d62
cmp edi, dword [esp + 4]
mov dword [ebx + 0xb8], edi
jae 0x494c4a
movzx edx, byte [edx + edi]
mov esi, dword [ebp + 0xc]
mov dword [esp + 0xc], edi
mov ebx, dword [ebx + 0x7c]
movzx edi, byte [esi + edx + 0x158]
add edi, ecx
cmp edi, ebx
jae 0x494c5e
mov ebx, dword [eax + edi*4]
test ebx, ebx
js 0x4928cd
mov esi, dword [esp + 0x18]
mov edi, dword [esp + 0xc]
cmp ebx, 0x8000000
jae 0x492830
jmp 0x492610
add edi, 2
mov ecx, esi
mov ebx, edx
test ebx, ebx
jns 0x492750
jmp 0x49276e
mov edi, dword [esp + 0xc]
mov ecx, edx
test ebx, ebx
jns 0x492750
jmp 0x49276e
mov ecx, dword [ebp + 0xc]
shl eax, 8
mov dword [esp + 0x28], ecx
mov dword [esp + 0x2c], esi
push eax
push ebx
lea eax, [esp + 0x30]
push eax
call fcn.0048c500
add esp, 0xc
test eax, eax
jne 0x49386f
mov esi, dword [esp + 0x18]
mov ebx, edx
cmp ebx, 0x8000000
jb 0x492610
nop dword [eax]
mov eax, ebx
and eax, 0x10000000
jne 0x492610
test ebx, 0x8000000
je 0x492e83
mov eax, dword [esp + 0x14]
cmp dword [eax + 0x148], 1
je 0x4925fc
mov edx, ebx
mov ecx, dword [esp + 0x48]
and edx, 0x7ffffff
shr edx, cl
mov ecx, dword [ebp + 0x10]
mov eax, dword [ecx + 0x94]
cmp edx, eax
jae 0x494bd6
mov ecx, dword [ecx + 0x8c]
mov dword [esp + 0x24], 0
mov eax, dword [ecx + edx*8 + 4]
test eax, eax
je 0x494b87
mov ecx, dword [ecx + edx*8]
mov dword [esp + 0x20], 1
test byte [ecx + 8], 2
je 0x49260c
cmp eax, 8
jbe 0x494d9c
add eax, 0xfffffff7
cmp eax, 3
jbe 0x494dae
mov eax, dword [ecx + 0x11]
mov dword [esp + 0x1c], edi
mov dword [esp + 0x24], eax
jmp 0x492610
mov eax, dword [ebp + 0xc]
shl edx, 8
mov dword [esp + 0x28], eax
mov eax, dword [ebp + 0x10]
mov dword [esp + 0x2c], eax
push edx
push ecx
lea eax, [esp + 0x30]
push eax
call fcn.0048c500
add esp, 0xc
mov esi, dword [esp + 0x18]
mov edi, dword [esp + 0xc]
test eax, eax
jne 0x49386f
mov ebx, edx
cmp ebx, 0x8000000
jae 0x492830
jmp 0x492610
mov edx, dword [eax + 0xc]
mov ecx, dword [eax + 8]
mov dword [esp + 0x20], 0
mov eax, edx
mov dword [esp + 0x18], ecx
cmp dword [esp + 8], eax
jae 0x4929c8
cmp dword [esp + 0x18], 0
je 0x4929c8
mov eax, dword [esp + 8]
mov ecx, dword [esp + 0x18]
movzx eax, byte [ecx + eax]
mov ecx, dword [ebp + 0xc]
mov byte [esp + 0x18], al
movzx eax, al
movzx edx, byte [ecx + eax + 0x158]
mov ecx, ebx
and ecx, 0x7ffffff
add ecx, edx
mov edx, dword [esi + 0x7c]
cmp ecx, edx
jae 0x494a57
mov edx, dword [esi + 0x74]
mov esi, dword [edx + ecx*4]
test esi, esi
js 0x493cb3
mov ebx, dword [ebp + 8]
test esi, 0x8000000
jne 0x493f85
mov edi, dword [esp + 8]
test esi, 0x20000000
je 0x494018
mov eax, dword [0x6074b4]
movzx eax, byte [eax]
push 4
push 0xc
call fcn.00401610
add esp, 8
test eax, eax
je 0x494d78
movzx ecx, byte [esp + 0x18]
mov byte [eax], 0
mov byte [eax + 1], cl
mov dword [eax + 4], edi
jmp 0x492492
mov dword [esp + 4], eax
mov eax, dword [ebp + 0xc]
mov ecx, ebx
and ecx, 0x7ffffff
movzx eax, byte [eax + 0x257]
shl eax, 0x10
add eax, 0x10001
mov edx, eax
shr edx, 0x10
add ecx, edx
mov edx, dword [esi + 0x7c]
cmp ecx, edx
jae 0x494ca2
mov edx, dword [esi + 0x74]
mov esi, dword [edx + ecx*4]
test esi, esi
js 0x493d09
mov ebx, dword [ebp + 8]
mov edi, dword [esp + 8]
test esi, 0x8000000
je 0x494018
mov eax, dword [esp + 0x14]
mov dword [esp + 0x20], 1
mov dword [esp + 0x24], 0
cmp dword [eax + 0x148], 1
je 0x492a78
mov eax, dword [ebp + 0xc]
and esi, 0x7ffffff
movzx ecx, byte [eax + 0x27c]
shr esi, cl
mov ecx, dword [ebp + 0x10]
mov eax, dword [ecx + 0x94]
cmp esi, eax
jae 0x494d0a
mov eax, dword [ecx + 0x8c]
mov ecx, dword [eax + esi*8 + 4]
test ecx, ecx
je 0x494b87
mov eax, dword [eax + esi*8]
test byte [eax + 8], 2
jne 0x49328e
mov eax, dword [esp + 4]
mov dword [esp + 0x1c], eax
jmp 0x494018
mov ecx, dword [ebp + 0x14]
mov edx, dword [ebp + 0xc]
mov esi, dword [ecx + 4]
test byte [edx + 0x4d], 1
jne 0x492b41
mov eax, dword [0x6074b4]
movzx eax, byte [eax]
push 4
push 0xc
call fcn.00401610
add esp, 8
test eax, eax
je 0x494d78
mov byte [eax], 3
mov dword [eax + 4], 2
mov ebx, eax
mov dword [eax + 8], esi
mov eax, dword [ebp + 8]
mov dword [eax + 4], ebx
mov ebx, eax
mov dword [eax], 2
jmp 0x49405a
test eax, 0x8000000
jne 0x492e55
test eax, 0x40000000
jne 0x4931b5
test eax, 0x20000000
je 0x494f0a
mov ecx, dword [ebp + 0x10]
mov edx, esi
call fcn.0048c4b0
mov eax, dword [esp + 4]
mov ecx, dword [esp + 0x18]
cmp esi, eax
jae 0x494d18
movzx eax, byte [ecx + esi]
push esi
push eax
call fcn.004c7650
add esp, 8
jmp 0x493d8f
mov edx, dword [ebp + 0x10]
test edi, edi
je 0x492ec7
mov eax, dword [ecx + 8]
mov ebx, dword [ecx + 0xc]
mov dword [esp + 4], eax
lea eax, [edi - 1]
jmp 0x492ed9
mov ecx, dword [esp + 0x14]
cmp dword [ecx + 0x148], esi
jbe 0x493153
lea ecx, [esi + esi*2]
mov esi, dword [ebp + 0x10]
lea ecx, [eax + ecx*2 + 0xc]
mov edx, dword [esi + 0x88]
cmp ecx, edx
jb 0x49257b
push 0x5adfb8
jmp 0x494a5c
mov al, 2
jmp 0x492b9e
mov edx, dword [ebp + 0x10]
mov esi, dword [ebp + 0xc]
mov eax, dword [esp + 0x48]
mov ebx, dword [esp + 0x50]
mov ecx, eax
cmp ebx, eax
mov al, 2
jbe 0x492b9e
mov ebx, dword [esp + 4]
test ebx, ebx
je 0x492b9e
movzx eax, byte [ebx + ecx]
movzx eax, byte [esi + eax + 0x58]
mov ecx, dword [edx + 0x88]
movzx eax, al
cmp ecx, eax
jbe 0x494b76
mov ecx, dword [ebp + 0x14]
mov ecx, dword [ecx + 4]
mov dword [esp + 0x50], ecx
mov ecx, dword [edx + 0x80]
mov ecx, dword [ecx + eax*4]
test ecx, ecx
js 0x4939db
mov dword [esp + 0xc], ecx
mov eax, dword [ebp + 0x14]
mov ecx, dword [esp + 0x10]
mov esi, dword [eax + 8]
mov ebx, dword [eax + 0xc]
mov eax, dword [ecx]
mov ecx, dword [ecx + 4]
mov edx, dword [ecx + 8]
mov ecx, dword [ecx + 0x20]
dec edx
and edx, 0xfffffff8
lea eax, [edx + eax + 8]
lea edx, [esp + 0xac]
push dword [esp + 8]
push edi
mov dword [esp + 0xc], ebx
push ebx
push esi
mov dword [esp + 0x58], eax
push eax
push edx
mov dword [esp + 0x34], ecx
call ecx
add esp, 0x18
cmp dword [esp + 0xac], 0
je 0x493147
cmp word [esp + 0x24], 0
mov edi, dword [esp + 0xb0]
mov dword [esp + 0x10], esi
je 0x4932fa
mov dword [esp + 0x30], esi
mov esi, dword [esp + 4]
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x50]
mov dword [esp + 0x9c], edi
mov dword [esp + 0x34], esi
mov dword [esp + 0x28], eax
mov dword [esp + 0x2c], ecx
mov ecx, dword [esp + 8]
mov byte [esp + 0x40], 1
cmp esi, ecx
mov dword [esp + 0xa0], ecx
jb 0x494dc6
lea eax, [ecx + 1]
cmp eax, edi
jb 0x494dc6
mov ebx, dword [ebp + 8]
test edi, edi
mov dword [esp + 0x38], edi
mov dword [esp + 0x3c], ecx
je 0x492e70
mov eax, dword [esp + 0x20]
mov esi, dword [eax + 8]
mov ecx, dword [eax]
mov edx, dword [eax + 4]
mov dword [esp + 0xc], esi
mov esi, dword [eax + 0xc]
or edx, dword [eax + 0x14]
or ecx, dword [eax + 0x10]
or esi, dword [eax + 0x1c]
mov dword [esp + 0x14], esi
mov esi, dword [esp + 0xc]
or edx, dword [esp + 0x14]
or esi, dword [eax + 0x18]
mov dword [esp + 0xc], esi
mov esi, dword [esp + 4]
or ecx, dword [esp + 0xc]
or ecx, edx
je 0x492e70
lea ecx, [edi - 1]
cmp ecx, esi
jae 0x494ce2
mov eax, dword [esp + 0x10]
mov dword [esp + 0x60], ecx
movzx ecx, byte [eax + ecx]
mov eax, ecx
mov dword [esp + 0xc], ecx
mov dword [esp + 0x1a0], 0
mov dword [esp + 0x19c], 0
mov dword [esp + 0x198], 0
mov dword [esp + 0x194], 1
mov dword [esp + 0x190], 0
mov dword [esp + 0x18c], 0
mov dword [esp + 0x188], 0
mov dword [esp + 0x184], 0
mov ch, cl
and al, 0x78
and ch, 7
shr al, 3
mov cl, ch
neg al
movsx esi, al
mov edx, dword [esp + esi + 0x19c]
mov eax, dword [esp + esi + 0x1a0]
shld eax, edx, cl
shl edx, cl
not cl
mov dword [esp + 0x14], eax
mov eax, dword [esp + esi + 0x198]
mov esi, dword [esp + esi + 0x194]
mov ebx, eax
shr ebx, 1
shr ebx, cl
mov cl, ch
or ebx, edx
mov edx, dword [esp + 0xc]
shld eax, esi, cl
shl esi, cl
mov ecx, dword [esp + 0x20]
shr edx, 3
and edx, 0x10
and ebx, dword [ecx + edx + 8]
and esi, dword [ecx + edx]
and eax, dword [ecx + edx + 4]
or esi, ebx
mov ebx, dword [esp + 0x14]
and ebx, dword [ecx + edx + 0xc]
or eax, ebx
or eax, esi
je 0x4932b0
mov eax, dword [0x6074b4]
movzx eax, byte [eax]
push 4
push 0xc
call fcn.00401610
add esp, 8
mov ebx, dword [ebp + 8]
test eax, eax
je 0x494d78
mov ecx, dword [esp + 0xc]
mov edx, dword [esp + 0x60]
mov byte [eax], 0
mov byte [eax + 1], cl
mov dword [eax + 4], edx
mov ecx, 2
mov dword [ebx + 4], eax
mov dword [ebx], ecx
jmp 0x49405a
mov eax, dword [ebp + 0xc]
mov ecx, dword [eax + 0x27c]
mov eax, 1
and ecx, 0x1f
shl eax, cl
cmp ecx, 0x1b
jae 0x494ee0
mov esi, dword [ebp + 0x10]
or eax, 0x40000000
test eax, eax
jns 0x492081
mov eax, dword [ebp + 0xc]
lea ecx, [esp + 0x68]
mov dword [esp + 0x28], eax
lea eax, [esp + 0x28]
mov dword [esp + 0x2c], esi
push edx
push dword [ebp + 0x14]
push eax
push ecx
call fcn.0048d7d0
add esp, 0x10
mov eax, dword [esp + 0x6c]
cmp dword [esp + 0x68], 0
jne 0x492492
jmp 0x492081
mov ecx, dword [esp + 0x20]
xor edx, edx
cmp dword [ecx + 0x148], 1
jne 0x4931c7
mov ebx, dword [ebp + 8]
jmp 0x493219
mov edx, dword [ebp + 0x10]
test edi, edi
je 0x4932ac
lea ecx, [edi - 1]
jmp 0x4932be
test ebx, 0x40000000
jne 0x49327c
test ebx, 0x20000000
je 0x494f0a
mov ecx, dword [ebp + 0x10]
mov edx, edi
call fcn.0048c4b0
mov eax, dword [esp + 4]
mov ebx, dword [ebp + 8]
cmp edi, eax
jae 0x494d47
movzx eax, byte [esi + edi]
push edi
push eax
call fcn.004c7650
add esp, 8
jmp 0x492492
mov al, 2
jmp 0x492ef2
mov edx, dword [ebp + 0x10]
mov esi, dword [ebp + 0xc]
mov eax, dword [esp + 0x48]
mov ebx, dword [esp + 0x50]
mov ecx, eax
cmp ebx, eax
mov al, 2
jbe 0x492ef2
mov ebx, dword [esp + 4]
test ebx, ebx
je 0x492ef2
movzx eax, byte [ebx + ecx]
movzx eax, byte [esi + eax + 0x58]
mov ecx, dword [edx + 0x88]
movzx eax, al
cmp ecx, eax
jbe 0x494b76
mov ecx, dword [ebp + 0x14]
mov ecx, dword [ecx + 4]
mov dword [esp + 0x1c], ecx
mov ecx, dword [edx + 0x80]
mov ecx, dword [ecx + eax*4]
test ecx, ecx
js 0x493d5c
mov dword [esp + 4], ecx
mov eax, dword [ebp + 0x14]
mov ecx, dword [esp + 0x10]
mov esi, dword [eax + 8]
mov ebx, dword [eax + 0xc]
mov eax, dword [ecx]
mov ecx, dword [ecx + 4]
mov edx, dword [ecx + 8]
mov ecx, dword [ecx + 0x20]
dec edx
and edx, 0xfffffff8
lea eax, [edx + eax + 8]
lea edx, [esp + 0xac]
push dword [esp + 8]
push edi
mov dword [esp + 0x1c], ebx
push ebx
mov ebx, esi
push esi
mov dword [esp + 0x60], eax
push eax
push edx
mov dword [esp + 0x60], ecx
call ecx
add esp, 0x18
cmp dword [esp + 0xac], 0
je 0x493147
mov eax, dword [esp + 0xb0]
cmp word [esp + 0x24], 0
mov esi, dword [esp + 4]
mov dword [esp + 0x10], eax
je 0x493bf2
mov ecx, dword [esp + 0x10]
mov esi, dword [esp + 0x14]
mov eax, dword [esp + 0x18]
mov edx, dword [esp + 0x1c]
mov dword [esp + 0x30], ebx
mov dword [esp + 0x9c], ecx
mov ecx, dword [esp + 8]
mov dword [esp + 0x34], esi
mov dword [esp + 0x28], eax
mov dword [esp + 0x2c], edx
mov byte [esp + 0x40], 0
cmp esi, ecx
mov dword [esp + 0xa0], ecx
jb 0x494dc6
lea eax, [ecx + 1]
cmp eax, dword [esp + 0x10]
mov eax, dword [esp + 0x10]
jb 0x494dc6
mov edi, dword [esp + 0x20]
test eax, eax
mov dword [esp + 0x38], eax
mov dword [esp + 0x3c], ecx
je 0x493266
mov eax, dword [edi]
mov ecx, dword [edi + 4]
mov edx, dword [edi + 8]
mov esi, dword [edi + 0xc]
or esi, dword [edi + 0x1c]
or ecx, dword [edi + 0x14]
or edx, dword [edi + 0x18]
or eax, dword [edi + 0x10]
or ecx, esi
or eax, edx
mov esi, dword [esp + 0x14]
or eax, ecx
mov eax, dword [esp + 0x10]
je 0x493266
dec eax
cmp eax, esi
jae 0x494d33
movzx ecx, byte [ebx + eax]
mov dword [esp + 0x98], eax
mov eax, ecx
mov dword [esp + 4], ecx
mov dword [esp + 0x140], 0
mov dword [esp + 0x13c], 0
mov dword [esp + 0x138], 0
mov dword [esp + 0x134], 1
mov dword [esp + 0x130], 0
mov dword [esp + 0x12c], 0
mov dword [esp + 0x128], 0
mov dword [esp + 0x124], 0
mov ch, cl
and al, 0x78
and ch, 7
shr al, 3
mov cl, ch
neg al
movsx esi, al
mov edx, dword [esp + esi + 0x13c]
mov eax, dword [esp + esi + 0x140]
shld eax, edx, cl
shl edx, cl
not cl
mov dword [esp + 0x60], eax
mov eax, dword [esp + esi + 0x138]
mov esi, dword [esp + esi + 0x134]
mov edi, eax
shr edi, 1
shr edi, cl
mov cl, ch
or edi, edx
mov edx, dword [esp + 4]
shld eax, esi, cl
shl esi, cl
mov ecx, dword [esp + 0x20]
shr edx, 3
and edx, 0x10
and edi, dword [ecx + edx + 8]
and esi, dword [ecx + edx]
and eax, dword [ecx + edx + 4]
or esi, edi
mov edi, dword [esp + 0x60]
and edi, dword [ecx + edx + 0xc]
or eax, edi
or eax, esi
je 0x493bac
mov eax, dword [0x6074b4]
movzx eax, byte [eax]
push 4
push 0xc
call fcn.00401610
add esp, 8
test eax, eax
je 0x494d78
mov esi, eax
mov byte [eax], 0
mov eax, dword [esp + 4]
mov ecx, dword [esp + 0x98]
mov byte [esi + 1], al
mov dword [esi + 4], ecx
mov ebx, dword [ebp + 8]
mov eax, 2
mov dword [ebx + 4], esi
mov dword [ebx], eax
jmp 0x49405a
mov ebx, dword [ebp + 8]
xor eax, eax
mov dword [ebx], eax
jmp 0x49405a
mov ecx, dword [ebp + 0xc]
mov ebx, 1
mov ecx, dword [ecx + 0x27c]
and ecx, 0x1f
shl ebx, cl
cmp ecx, 0x1b
jae 0x494f46
mov esi, dword [ebp + 0x10]
or ebx, 0x40000000
test ebx, ebx
jns 0x49258c
mov ecx, dword [ebp + 0xc]
lea edx, [esp + 0x68]
mov dword [esp + 0x28], ecx
mov dword [esp + 0x2c], esi
lea ecx, [esp + 0x28]
push eax
push dword [ebp + 0x14]
push ecx
push edx
call fcn.0048d7d0
add esp, 0x10
mov ebx, dword [esp + 0x6c]
cmp dword [esp + 0x68], 0
jne 0x492ac3
jmp 0x49258c
mov ecx, dword [ebp + 0x10]
mov edx, esi
call fcn.0048c4b0
mov ebx, dword [ebp + 8]
jmp 0x4918cf
mov edi, dword [ebp + 0x10]
and eax, 0x7ffffff
mov ecx, dword [esp + 0x24]
mov ebx, dword [ebp + 8]
shr eax, cl
mov ecx, dword [edi + 0x94]
cmp eax, ecx
jae 0x494d29
mov edi, dword [edi + 0x8c]
mov ecx, dword [edi + eax*8 + 4]
test ecx, ecx
je 0x494b87
mov eax, dword [edi + eax*8]
test byte [eax + 8], 2
je 0x493219
cmp ecx, 8
jbe 0x494ee6
add ecx, 0xfffffff7
cmp ecx, 3
jbe 0x494ef8
mov edx, dword [eax + 0x11]
mov dword [esp + 8], edx
mov edx, ebx
mov ebx, dword [ebp + 0x10]
mov eax, dword [ebx + 0xb4]
cmp dword [ebx + 0xb0], 0
mov dword [ebx + 0xb0], 0
je 0x494d86
mov ecx, esi
mov edi, esi
mov dword [edx], 1
sub ecx, eax
neg ecx
sub edi, eax
mov eax, dword [esp + 8]
cmovb edi, ecx
add dword [ebx + 0x70], edi
mov ebx, edx
mov dword [edx + 4], eax
mov dword [edx + 8], esi
jmp 0x49405a
mov ecx, dword [ebp + 0xc]
test eax, eax
je 0x493ba5
mov edx, dword [ebp + 0x10]
lea edi, [eax - 1]
jmp 0x493bbd
mov ecx, dword [ebp + 0x10]
mov edx, edi
call fcn.0048c4b0
mov ebx, dword [ebp + 8]
jmp 0x494046
cmp ecx, 8
jbe 0x494ee6
mov edx, dword [esp + 4]
add ecx, 0xfffffff7
cmp ecx, 3
ja 0x494005
jmp 0x494ef8
mov al, 2
jmp 0x4932d4
mov ebx, dword [ebp + 8]
mov edx, dword [ebp + 0x10]
mov esi, dword [esp + 4]
mov ecx, dword [esp + 0x60]
mov al, 2
cmp esi, ecx
jbe 0x4932d4
mov eax, dword [esp + 0x10]
mov esi, dword [ebp + 0xc]
movzx eax, byte [eax + ecx]
movzx eax, byte [esi + eax + 0x58]
mov ecx, dword [edx + 0x88]
movzx eax, al
cmp ecx, eax
jbe 0x494b76
mov ecx, dword [edx + 0x80]
mov ecx, dword [ecx + eax*4]
test ecx, ecx
js 0x493f1d
mov dword [esp + 0xc], ecx
mov ebx, dword [ebp + 0x10]
cmp dword [ebx + 0xb0], 1
jne 0x493320
mov eax, dword [ebx + 0xb8]
mov ecx, dword [ebx + 0xb4]
mov edx, eax
sub edx, ecx
neg edx
sub eax, ecx
cmovb eax, edx
add dword [ebx + 0x70], eax
mov eax, dword [esp + 8]
mov esi, dword [esp + 0xc]
mov dword [ebx + 0xb0], 1
mov dword [ebx + 0xb4], edi
mov dword [ebx + 0xb8], edi
cmp edi, eax
jae 0x493899
mov edx, dword [ebp + 0xc]
inc eax
mov ebx, dword [esp + 0x10]
mov dword [esp + 0x60], eax
mov eax, 1
mov ecx, dword [edx + 0x27c]
and ecx, 0x1f
shl eax, cl
mov dword [esp + 0xa8], ecx
mov dword [esp + 0xa4], eax
mov eax, 0x40000000
bts eax, ecx
movzx ecx, byte [edx + 0x4d]
mov dword [esp + 0x5c], eax
mov eax, dword [esp + 0x50]
mov byte [esp + 0x58], cl
lea eax, [eax + eax*2]
lea eax, [eax + eax + 0xc]
mov dword [esp + 0x54], eax
jmp 0x4933a4
mov ecx, dword [esp + 8]
mov edi, edx
inc edi
cmp edi, ecx
jae 0x493899
cmp esi, 0x7ffffff
jbe 0x49340f
mov ebx, dword [ebp + 0x10]
cmp dword [ebx + 0xb0], 0
je 0x494d62
cmp edi, dword [esp + 4]
mov dword [ebx + 0xb8], edi
jae 0x494bfb
mov eax, dword [esp + 0x10]
mov ecx, dword [ebp + 0xc]
movzx eax, byte [eax + edi]
movzx edx, byte [ecx + eax + 0x158]
mov ecx, esi
and ecx, 0x7ffffff
add ecx, edx
mov edx, dword [ebx + 0x7c]
cmp ecx, edx
jae 0x494a57
mov edx, dword [ebx + 0x74]
mov ecx, dword [edx + ecx*4]
test ecx, ecx
js 0x4934e6
mov ebx, dword [esp + 0x10]
mov edx, edi
mov esi, ecx
jmp 0x493585
mov ecx, dword [esp + 8]
cmp edi, ecx
jae 0x49339b
mov eax, dword [ebp + 0x10]
mov eax, dword [eax + 0x74]
nop dword [eax]
movzx ecx, byte [ebx + edi]
mov edx, dword [ebp + 0xc]
movzx ecx, byte [edx + ecx + 0x158]
add ecx, esi
mov ecx, dword [eax + ecx*4]
cmp ecx, 0x7ffffff
mov dword [esp + 0xc], ecx
ja 0x493518
mov edx, eax
lea eax, [edi + 3]
cmp eax, dword [esp + 8]
jae 0x493520
movzx ecx, byte [ebx + edi + 1]
mov esi, ebx
mov ebx, dword [ebp + 0xc]
mov dword [esp + 0x14], eax
mov eax, edx
movzx ecx, byte [ebx + ecx + 0x158]
mov ebx, dword [esp + 0xc]
add ecx, ebx
mov edx, dword [edx + ecx*4]
cmp edx, 0x7ffffff
ja 0x4934ce
movzx ecx, byte [esi + edi + 2]
mov ebx, dword [ebp + 0xc]
movzx ecx, byte [ebx + ecx + 0x158]
add ecx, edx
mov ebx, dword [eax + ecx*4]
cmp ebx, 0x7ffffff
ja 0x4934d5
movzx ecx, byte [esi + edi + 3]
mov edx, dword [ebp + 0xc]
movzx ecx, byte [edx + ecx + 0x158]
add ecx, ebx
mov esi, dword [eax + ecx*4]
cmp esi, 0x7ffffff
ja 0x4934de
mov ecx, dword [esp + 8]
mov ebx, dword [esp + 0x10]
add edi, 4
cmp edi, ecx
jb 0x493420
jmp 0x49339b
inc edi
mov esi, edx
mov ecx, ebx
jmp 0x493528
add edi, 2
mov ecx, edx
mov esi, ebx
jmp 0x493528
mov edx, dword [esp + 0x14]
mov ecx, ebx
jmp 0x49352a
mov ecx, dword [ebp + 0xc]
mov edx, dword [ebp + 0x10]
shl eax, 8
mov dword [esp + 0x28], ecx
mov dword [esp + 0x2c], edx
push eax
push esi
lea eax, [esp + 0x30]
push eax
call fcn.0048c500
add esp, 0xc
mov ebx, dword [esp + 0x10]
test eax, eax
jne 0x49386f
mov esi, edx
mov edx, edi
jmp 0x493585
mov ecx, esi
mov esi, dword [esp + 0xc]
jmp 0x493528
mov ecx, esi
mov esi, dword [esp + 0xc]
mov eax, edx
mov edx, edi
test esi, esi
js 0x493534
mov ebx, dword [esp + 0x10]
jmp 0x493585
mov edi, dword [ebp + 0x10]
mov ebx, dword [esp + 0x10]
cmp dword [edi + 0xb0], 0
je 0x494d62
cmp edx, dword [esp + 4]
mov esi, dword [ebp + 0xc]
mov dword [esp + 0xc], ecx
mov dword [edi + 0xb8], edx
jae 0x494cf6
movzx ecx, byte [ebx + edx]
mov edi, dword [edi + 0x7c]
movzx esi, byte [esi + ecx + 0x158]
add esi, dword [esp + 0xc]
cmp esi, edi
jae 0x494cac
mov esi, dword [eax + esi*4]
test esi, esi
js 0x493842
cmp esi, 0x7ffffff
jbe 0x493395
test esi, 0x10000000
je 0x493ab0
mov dword [esp + 0xc], esi
push dword [esp + 8]
push edx
push dword [esp + 0xc]
push ebx
push dword [esp + 0x58]
mov esi, edx
lea eax, [esp + 0xc0]
push eax
call dword [esp + 0x34]
add esp, 0x18
cmp dword [esp + 0xac], 0
je 0x493af3
mov edi, dword [esp + 0xb0]
cmp edi, esi
jbe 0x493794
cmp word [esp + 0x24], 0
mov ebx, dword [esp + 8]
mov esi, dword [esp + 0xc]
je 0x4937df
mov ecx, dword [esp + 0x10]
mov eax, dword [esp + 4]
mov edx, dword [esp + 0x18]
mov dword [esp + 0x9c], edi
mov dword [esp + 0xa0], ebx
mov dword [esp + 0x30], ecx
mov ecx, dword [esp + 0x50]
cmp eax, ebx
mov dword [esp + 0x34], eax
mov dword [esp + 0x28], edx
mov dword [esp + 0x2c], ecx
mov byte [esp + 0x40], 1
jb 0x494e3e
cmp dword [esp + 0x60], edi
jb 0x494e3e
mov esi, dword [esp + 0x20]
mov dword [esp + 0x38], edi
mov dword [esp + 0x3c], ebx
mov eax, dword [esi]
mov edx, dword [esi + 8]
mov ecx, dword [esi + 0xc]
or edx, dword [esi + 0x18]
or eax, dword [esi + 0x10]
or ecx, dword [esi + 0x1c]
or eax, edx
mov edx, dword [esi + 4]
or edx, dword [esi + 0x14]
mov esi, dword [ebp + 0x10]
or edx, ecx
lea ecx, [edi - 1]
or edx, eax
je 0x493764
cmp ecx, dword [esp + 4]
jae 0x494ce2
mov eax, dword [esp + 0x10]
mov dword [esp + 0x14], ecx
movzx ecx, byte [eax + ecx]
mov eax, ecx
mov dword [esp + 0xc], ecx
mov dword [esp + 0x180], 0
mov dword [esp + 0x17c], 0
mov dword [esp + 0x178], 0
mov dword [esp + 0x174], 1
mov dword [esp + 0x170], 0
mov dword [esp + 0x16c], 0
mov dword [esp + 0x168], 0
mov dword [esp + 0x164], 0
mov ch, cl
and al, 0x78
and ch, 7
shr al, 3
mov cl, ch
neg al
movsx esi, al
mov edx, dword [esp + esi + 0x17c]
mov eax, dword [esp + esi + 0x180]
shld eax, edx, cl
shl edx, cl
not cl
mov dword [esp + 0x98], eax
mov eax, dword [esp + esi + 0x178]
mov esi, dword [esp + esi + 0x174]
mov ebx, eax
shr ebx, 1
shr ebx, cl
mov cl, ch
or ebx, edx
mov edx, dword [esp + 0xc]
shld eax, esi, cl
shl esi, cl
mov ecx, dword [esp + 0x20]
shr edx, 3
and edx, 0x10
and ebx, dword [ecx + edx + 8]
and esi, dword [ecx + edx]
and eax, dword [ecx + edx + 4]
or esi, ebx
mov ebx, dword [esp + 0x98]
and ebx, dword [ecx + edx + 0xc]
or eax, ebx
or eax, esi
jne 0x494a27
mov esi, dword [ebp + 0x10]
mov ebx, dword [esp + 8]
mov ecx, dword [esp + 0x14]
cmp dword [esp + 4], ecx
mov al, 2
jbe 0x49377c
mov eax, dword [esp + 0x10]
mov edx, dword [ebp + 0xc]
movzx eax, byte [eax + ecx]
movzx eax, byte [edx + eax + 0x58]
cmp dword [esp + 0x18], 0
movzx eax, al
mov ecx, eax
je 0x4937c4
cmp dword [esp + 0x18], 1
jne 0x4937a3
lea ecx, [eax + 6]
jmp 0x4937c4
mov edi, esi
mov ecx, dword [esp + 8]
mov esi, dword [esp + 0xc]
jmp 0x49339b
test byte [esp + 0x58], 1
je 0x494b07
mov ecx, dword [esp + 0x64]
mov edx, dword [esp + 0x50]
cmp dword [ecx + 0x148], edx
jbe 0x4937f0
mov ecx, dword [esp + 0x54]
add ecx, eax
mov edx, dword [esi + 0x88]
cmp ecx, edx
jae 0x492b69
mov edx, dword [esi + 0x80]
mov esi, dword [edx + ecx*4]
test esi, esi
js 0x493803
cmp edi, ebx
mov ebx, dword [esp + 0x10]
jb 0x4933a4
jmp 0x493899
cmp dword [esp + 0xa8], 0x1b
mov esi, dword [esp + 0x5c]
jb 0x4937db
jmp 0x494f6b
mov ecx, dword [ebp + 0xc]
mov edx, dword [ebp + 0x10]
mov dword [esp + 0x68], ecx
mov dword [esp + 0x6c], edx
push eax
lea eax, [esp + 0x2c]
push eax
lea eax, [esp + 0x70]
push eax
lea eax, [esp + 0x90]
push eax
call fcn.0048d7d0
add esp, 0x10
mov esi, dword [esp + 0x88]
cmp dword [esp + 0x84], 0
je 0x4937df
jmp 0x493135
mov eax, dword [ebp + 0xc]
mov edi, edx
shl ecx, 8
mov dword [esp + 0x28], eax
mov eax, dword [ebp + 0x10]
mov dword [esp + 0x2c], eax
push ecx
push dword [esp + 0x10]
lea eax, [esp + 0x30]
push eax
call fcn.0048c500
add esp, 0xc
test eax, eax
je 0x493512
mov eax, dword [0x6074b4]
movzx eax, byte [eax]
push 4
push 0xc
call fcn.00401610
add esp, 8
test eax, eax
je 0x494d78
mov ebx, dword [ebp + 8]
mov byte [eax], 1
mov dword [eax + 4], edi
jmp 0x492492
mov ebx, dword [esp + 8]
cmp ebx, dword [esp + 4]
jae 0x4938f9
mov eax, dword [esp + 0x10]
mov ecx, dword [ebp + 0xc]
mov edi, dword [ebp + 0x10]
movzx ebx, byte [eax + ebx]
movzx eax, bl
movzx edx, byte [ecx + eax + 0x158]
mov ecx, esi
and ecx, 0x7ffffff
add ecx, edx
mov edx, dword [edi + 0x7c]
cmp ecx, edx
jae 0x494a57
mov edx, dword [edi + 0x74]
mov edx, dword [edx + ecx*4]
test edx, edx
js 0x49492d
test edx, 0x8000000
jne 0x493945
test edx, 0x20000000
jne 0x492466
mov ebx, dword [esp + 8]
jmp 0x49393e
mov eax, dword [ebp + 0xc]
mov edi, dword [ebp + 0x10]
mov ecx, esi
and ecx, 0x7ffffff
movzx eax, byte [eax + 0x257]
shl eax, 0x10
add eax, 0x10001
mov edx, eax
shr edx, 0x10
add ecx, edx
mov edx, dword [edi + 0x7c]
cmp ecx, edx
jae 0x494ca2
mov edx, dword [edi + 0x74]
mov edx, dword [edx + ecx*4]
test edx, edx
js 0x49495a
test edx, 0x8000000
jne 0x49396a
xor eax, eax
jmp 0x493b6a
mov ecx, dword [esp + 0x64]
xor esi, esi
mov eax, 1
cmp dword [ecx + 0x148], 1
jne 0x493b0b
mov ebx, dword [esp + 8]
mov dword [esp + 4], ebx
jmp 0x493b6a
mov ecx, dword [esp + 0x64]
xor esi, esi
mov eax, 1
cmp dword [ecx + 0x148], 1
je 0x493b6a
mov ecx, dword [ebp + 0xc]
and edx, 0x7ffffff
movzx ecx, byte [ecx + 0x27c]
shr edx, cl
mov ecx, dword [edi + 0x94]
cmp edx, ecx
jae 0x494d51
mov ecx, dword [edi + 0x8c]
mov edi, dword [ecx + edx*8 + 4]
test edi, edi
je 0x494b87
mov ecx, dword [ecx + edx*8]
test byte [ecx + 8], 2
je 0x493b6a
cmp edi, 8
jbe 0x494ece
add edi, 0xfffffff7
cmp edi, 3
ja 0x493b67
jmp 0x493f0b
mov ecx, dword [ebp + 0xc]
lea edx, [esp + 0x68]
mov dword [esp + 0x28], ecx
mov ecx, dword [ebp + 0x10]
mov dword [esp + 0x2c], ecx
lea ecx, [esp + 0x28]
push eax
push dword [ebp + 0x14]
push ecx
push edx
call fcn.0048d7d0
add esp, 0x10
mov eax, dword [esp + 0x6c]
cmp dword [esp + 0x68], 0
jne 0x493d8f
mov dword [esp + 0xc], eax
jmp 0x492bce
mov edx, dword [ebp + 0xc]
shl ecx, 8
mov dword [esp + 0x28], edx
mov edx, dword [ebp + 0x10]
mov dword [esp + 0x2c], edx
lea edx, [esp + 0x28]
push ecx
push eax
push edx
call fcn.0048c500
add esp, 0xc
test eax, eax
je 0x493db4
mov eax, dword [0x6074b4]
movzx eax, byte [eax]
push 4
push 0xc
call fcn.00401610
add esp, 8
test eax, eax
je 0x494d78
mov byte [eax], 1
jmp 0x492488
mov edx, dword [ebp + 0xc]
mov dword [esp + 0x28], edx
mov edx, dword [ebp + 0x10]
mov dword [esp + 0x2c], edx
lea edx, [esp + 0x28]
push ecx
push eax
push edx
call fcn.0048c500
add esp, 0xc
test eax, eax
je 0x493e4e
mov eax, dword [0x6074b4]
movzx eax, byte [eax]
push 4
push 0xc
call fcn.00401610
add esp, 8
test eax, eax
je 0x494d78
mov ecx, dword [esp + 4]
mov byte [eax], 1
jmp 0x49248f
test esi, 0x8000000
jne 0x493d97
test esi, 0x40000000
jne 0x49488a
test esi, 0x20000000
je 0x494f0a
mov ecx, dword [ebp + 0x10]
mov esi, edx
call fcn.0048c4b0
mov eax, dword [esp + 4]
cmp esi, eax
jae 0x494d18
movzx eax, byte [ebx + esi]
jmp 0x492b15
mov ecx, dword [ebp + 0x10]
mov edx, dword [esp + 8]
call fcn.0048c4b0
mov ebx, dword [ebp + 8]
xor eax, eax
mov dword [ebx], eax
jmp 0x49405a
mov ecx, dword [ebp + 0xc]
and edx, 0x7ffffff
mov ebx, dword [esp + 8]
movzx ecx, byte [ecx + 0x27c]
shr edx, cl
mov ecx, dword [edi + 0x94]
cmp edx, ecx
jae 0x494d51
mov ecx, dword [edi + 0x8c]
mov edi, dword [ecx + edx*8 + 4]
test edi, edi
je 0x494b87
mov ecx, dword [ecx + edx*8]
mov dword [esp + 4], ebx
test byte [ecx + 8], 2
je 0x493b6a
cmp edi, 8
jbe 0x494ece
add edi, 0xfffffff7
mov dword [esp + 4], ebx
cmp edi, 3
jbe 0x493f0b
mov esi, dword [ecx + 0x11]
mov edi, dword [ebp + 0x10]
mov ecx, dword [edi + 0xb4]
cmp dword [edi + 0xb0], 0
mov dword [edi + 0xb0], 0
je 0x494d86
mov edx, ebx
sub edx, ecx
neg edx
sub ebx, ecx
cmovb ebx, edx
add dword [edi + 0x70], ebx
mov ebx, dword [ebp + 8]
mov dword [ebx], eax
mov dword [ebx + 4], esi
jmp 0x493ee7
mov edx, dword [ebp + 0x10]
mov al, 2
jmp 0x493bcc
mov edx, dword [ebp + 0x10]
mov ecx, dword [ebp + 0xc]
mov esi, dword [esp + 0x14]
mov edi, dword [esp + 0x98]
mov al, 2
cmp esi, edi
jbe 0x493bcc
movzx eax, byte [ebx + edi]
movzx eax, byte [ecx + eax + 0x58]
mov ecx, dword [edx + 0x88]
movzx eax, al
cmp ecx, eax
jbe 0x494b76
mov ecx, dword [edx + 0x80]
mov esi, dword [ecx + eax*4]
test esi, esi
js 0x4949e4
mov eax, dword [esp + 0x10]
mov edi, dword [ebp + 0x10]
cmp dword [edi + 0xb0], 1
jne 0x493c1c
mov eax, dword [edi + 0xb8]
mov ecx, dword [edi + 0xb4]
mov edx, eax
sub edx, ecx
neg edx
sub eax, ecx
cmovb eax, edx
add dword [edi + 0x70], eax
mov eax, dword [esp + 0x10]
mov dword [edi + 0xb0], 1
mov dword [edi + 0xb4], eax
mov dword [edi + 0xb8], eax
mov ecx, eax
mov eax, dword [esp + 8]
cmp ecx, eax
jae 0x493ca6
mov edx, dword [ebp + 0xc]
inc eax
mov dword [esp + 0x58], 0
mov dword [esp + 0xc], ebx
mov dword [esp + 0x98], eax
mov eax, 1
mov ecx, dword [edx + 0x27c]
and ecx, 0x1f
shl eax, cl
mov dword [esp + 0xa4], ecx
mov dword [esp + 0xb8], eax
mov eax, 0x40000000
bts eax, ecx
mov dword [esp + 0xc0], eax
mov eax, dword [esp + 0x1c]
lea eax, [eax + eax*2]
lea eax, [eax + eax + 0xc]
mov dword [esp + 0xbc], eax
movzx eax, byte [edx + 0x4d]
mov byte [esp + 0xa8], al
mov eax, dword [esp + 0x10]
jmp 0x49409c
mov dword [esp + 0x58], 0
jmp 0x494620
mov ecx, dword [ebp + 0xc]
shl eax, 8
mov dword [esp + 0x28], ecx
mov ecx, dword [ebp + 0x10]
mov dword [esp + 0x2c], ecx
lea ecx, [esp + 0x28]
push eax
push ebx
push ecx
call fcn.0048c500
add esp, 0xc
test eax, eax
je 0x493f74
mov eax, dword [0x6074b4]
movzx eax, byte [eax]
push 4
push 0xc
call fcn.00401610
add esp, 8
test eax, eax
je 0x494d78
mov edi, dword [esp + 8]
mov ebx, dword [ebp + 8]
mov byte [eax], 1
mov dword [eax + 4], edi
jmp 0x492492
mov ecx, dword [ebp + 0xc]
mov dword [esp + 0x28], ecx
mov ecx, dword [ebp + 0x10]
mov dword [esp + 0x2c], ecx
lea ecx, [esp + 0x28]
push eax
push ebx
push ecx
call fcn.0048c500
add esp, 0xc
test eax, eax
je 0x494064
mov eax, dword [0x6074b4]
movzx eax, byte [eax]
push 4
push 0xc
call fcn.00401610
add esp, 8
test eax, eax
je 0x494d78
mov edi, dword [esp + 4]
mov ebx, dword [ebp + 8]
mov byte [eax], 1
mov dword [eax + 4], edi
jmp 0x492492
mov ecx, dword [ebp + 0xc]
lea edx, [esp + 0x68]
mov dword [esp + 0x28], ecx
mov ecx, dword [ebp + 0x10]
mov dword [esp + 0x2c], ecx
lea ecx, [esp + 0x28]
push eax
push dword [ebp + 0x14]
push ecx
push edx
call fcn.0048d7d0
add esp, 0x10
mov eax, dword [esp + 0x6c]
cmp dword [esp + 0x68], 0
je 0x49407b
mov ebx, dword [ebp + 8]
jmp 0x492492
mov ecx, dword [esp + 0x64]
xor eax, eax
mov ebx, edx
cmp dword [ecx + 0x148], 1
jne 0x494892
mov esi, dword [ebp + 0x10]
jmp 0x4948e8
mov esi, edx
test esi, 0x8000000
je 0x49245a
mov ecx, dword [esp + 0x20]
xor edx, edx
mov eax, 1
cmp dword [ecx + 0x148], 1
jne 0x493de6
mov ebx, dword [esp + 8]
mov esi, dword [ebp + 0x10]
mov dword [esp + 4], ebx
jmp 0x493eb2
mov ecx, dword [ebp + 0xc]
and esi, 0x7ffffff
mov ebx, dword [esp + 8]
movzx ecx, byte [ecx + 0x27c]
shr esi, cl
mov ecx, dword [edi + 0x94]
cmp esi, ecx
jae 0x494cd1
mov ecx, dword [edi + 0x8c]
mov edi, dword [ecx + esi*8 + 4]
test edi, edi
je 0x494b87
mov ecx, dword [ecx + esi*8]
mov esi, dword [ebp + 0x10]
mov dword [esp + 4], ebx
test byte [ecx + 8], 2
je 0x493eb2
cmp edi, 8
jbe 0x494ece
add edi, 0xfffffff7
mov dword [esp + 4], ebx
cmp edi, 3
jbe 0x493f0b
mov edx, dword [ecx + 0x11]
jmp 0x493eb2
mov esi, edx
test esi, 0x8000000
je 0x4924ea
mov ecx, dword [esp + 0x20]
xor edx, edx
mov ebx, dword [esp + 8]
mov eax, 1
cmp dword [ecx + 0x148], 1
je 0x493eaf
mov ecx, dword [ebp + 0xc]
and esi, 0x7ffffff
movzx ecx, byte [ecx + 0x27c]
shr esi, cl
mov ecx, dword [edi + 0x94]
cmp esi, ecx
jae 0x494cd1
mov ecx, dword [edi + 0x8c]
mov edi, dword [ecx + esi*8 + 4]
test edi, edi
je 0x494b87
mov ecx, dword [ecx + esi*8]
test byte [ecx + 8], 2
jne 0x493ef3
mov esi, dword [ebp + 0x10]
mov ecx, dword [esi + 0xb4]
cmp dword [esi + 0xb0], 0
mov dword [esi + 0xb0], 0
je 0x494d86
mov edi, esi
mov esi, ebx
sub esi, ecx
neg esi
sub ebx, ecx
cmovb ebx, esi
add dword [edi + 0x70], ebx
mov ebx, dword [ebp + 8]
mov dword [ebx], eax
mov dword [ebx + 4], edx
mov eax, dword [esp + 4]
mov dword [ebx + 8], eax
jmp 0x49405a
mov esi, dword [ebp + 0x10]
cmp edi, 8
jbe 0x494ece
add edi, 0xfffffff7
cmp edi, 3
ja 0x493e49
push 0x5b08a0
push edi
push 4
call fcn.004287f0
add esp, 0xc
ud2
mov ecx, dword [ebp + 0xc]
lea edx, [esp + 0x68]
lea esi, [esp + 0x84]
mov dword [esp + 0x68], ecx
mov ecx, dword [ebp + 0x10]
mov dword [esp + 0x6c], ecx
lea ecx, [esp + 0x28]
push eax
push ecx
push edx
push esi
call fcn.0048d7d0
add esp, 0x10
mov eax, dword [esp + 0x88]
cmp dword [esp + 0x84], 0
jne 0x492de5
mov dword [esp + 0xc], eax
mov ebx, dword [ebp + 0x10]
cmp dword [ebx + 0xb0], 1
je 0x493306
jmp 0x493320
mov esi, edx
mov ebx, dword [ebp + 8]
test esi, 0x8000000
je 0x492989
mov eax, dword [esp + 0x14]
mov edi, dword [esp + 8]
mov dword [esp + 0x20], 1
mov dword [esp + 0x24], 0
cmp dword [eax + 0x148], 1
jne 0x493fac
mov dword [esp + 0x1c], edi
jmp 0x494018
mov eax, dword [ebp + 0xc]
and esi, 0x7ffffff
movzx ecx, byte [eax + 0x27c]
shr esi, cl
mov ecx, dword [ebp + 0x10]
mov eax, dword [ecx + 0x94]
cmp esi, eax
jae 0x494d0a
mov eax, dword [ecx + 0x8c]
mov ecx, dword [eax + esi*8 + 4]
test ecx, ecx
je 0x494b87
mov eax, dword [eax + esi*8]
mov dword [esp + 0x1c], edi
test byte [eax + 8], 2
je 0x494018
cmp ecx, 8
jbe 0x494ee6
add ecx, 0xfffffff7
mov edx, edi
cmp ecx, 3
jbe 0x494ef8
mov eax, dword [eax + 0x11]
mov dword [esp + 0x20], 1
mov dword [esp + 0x1c], edx
mov dword [esp + 0x24], eax
mov edx, dword [ebp + 0x10]
mov eax, dword [edx + 0xb4]
cmp dword [edx + 0xb0], 0
mov dword [edx + 0xb0], 0
je 0x494d86
mov ecx, edi
sub ecx, eax
neg ecx
sub edi, eax
cmovb edi, ecx
add dword [edx + 0x70], edi
mov eax, dword [esp + 0x20]
mov edx, dword [esp + 0x24]
mov ecx, dword [esp + 0x1c]
mov dword [ebx], eax
mov dword [ebx + 4], edx
mov dword [ebx + 8], ecx
mov eax, ebx
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
mov esi, edx
mov ebx, dword [ebp + 8]
mov edi, dword [esp + 8]
test esi, 0x8000000
jne 0x492a19
jmp 0x494018
mov dword [esp + 4], eax
jmp 0x492f22
mov eax, dword [ecx + 0x11]
mov dword [esp + 0x5c], eax
mov eax, edi
mov dword [esp + 0x54], edi
inc eax
cmp eax, dword [esp + 8]
jae 0x494620
mov ebx, dword [esp + 8]
jmp 0x4940cb
cmp dword [esp + 0xa4], 0x1b
mov esi, dword [esp + 0xc0]
jae 0x494f62
test esi, esi
js 0x49452e
mov eax, dword [esp + 0x10]
cmp eax, ebx
jae 0x49461c
cmp esi, 0x7ffffff
jbe 0x49413a
mov ebx, dword [ebp + 0x10]
cmp dword [ebx + 0xb0], 0
je 0x494d62
cmp eax, dword [esp + 0x14]
mov ecx, eax
mov dword [ebx + 0xb8], eax
jae 0x494c83
mov eax, dword [esp + 0xc]
mov edi, ecx
movzx eax, byte [eax + ecx]
mov ecx, dword [ebp + 0xc]
movzx edx, byte [ecx + eax + 0x158]
mov ecx, esi
and ecx, 0x7ffffff
add ecx, edx
mov edx, dword [ebx + 0x7c]
cmp ecx, edx
jae 0x494a57
mov edx, dword [ebx + 0x74]
mov ecx, dword [edx + ecx*4]
test ecx, ecx
js 0x4942ac
mov ebx, dword [esp + 0xc]
mov eax, edi
mov esi, ecx
jmp 0x4942dc
cmp eax, ebx
jae 0x494602
mov ecx, eax
mov eax, dword [ebp + 0x10]
mov ebx, dword [esp + 0xc]
mov edi, dword [eax + 0x74]
mov eax, ecx
mov dword [esp + 4], edi
nop word cs:[eax + eax]
nop
movzx ecx, byte [ebx + eax]
mov edx, dword [ebp + 0xc]
movzx ecx, byte [edx + ecx + 0x158]
add ecx, esi
mov edx, dword [edi + ecx*4]
cmp edx, 0x7ffffff
ja 0x49421e
lea edi, [eax + 3]
cmp edi, dword [esp + 8]
jae 0x49421a
movzx ecx, byte [ebx + eax + 1]
mov esi, ebx
mov ebx, dword [ebp + 0xc]
mov dword [esp + 0x10], edi
mov edi, dword [esp + 4]
movzx ecx, byte [ebx + ecx + 0x158]
add ecx, edx
mov ebx, dword [edi + ecx*4]
cmp ebx, 0x7ffffff
ja 0x494204
movzx ecx, byte [esi + eax + 2]
mov edx, dword [ebp + 0xc]
movzx ecx, byte [edx + ecx + 0x158]
add ecx, ebx
mov edx, dword [edi + ecx*4]
cmp edx, 0x7ffffff
ja 0x49420b
movzx ecx, byte [esi + eax + 3]
mov esi, dword [ebp + 0xc]
movzx ecx, byte [esi + ecx + 0x158]
add ecx, edx
mov esi, dword [edi + ecx*4]
cmp esi, 0x7ffffff
ja 0x494212
add eax, 4
mov ebx, dword [esp + 0xc]
cmp eax, dword [esp + 8]
jb 0x494160
jmp 0x494091
inc eax
mov ecx, edx
mov esi, ebx
jmp 0x494222
add eax, 2
mov ecx, ebx
jmp 0x494220
mov eax, dword [esp + 0x10]
mov ecx, edx
jmp 0x494222
mov edi, dword [esp + 4]
mov ecx, esi
mov esi, edx
test esi, esi
js 0x49422f
mov ebx, dword [esp + 0xc]
jmp 0x4942dc
mov dword [esp + 0x10], ecx
mov ecx, edi
mov edi, dword [ebp + 0x10]
mov ebx, dword [esp + 0xc]
cmp dword [edi + 0xb0], 0
je 0x494d62
cmp eax, dword [esp + 0x14]
mov esi, dword [ebp + 0xc]
mov dword [edi + 0xb8], eax
jae 0x494d11
movzx edx, byte [ebx + eax]
mov edi, dword [edi + 0x7c]
movzx esi, byte [esi + edx + 0x158]
add esi, dword [esp + 0x10]
cmp esi, edi
jae 0x494cac
mov esi, dword [ecx + esi*4]
test esi, esi
jns 0x4942dc
mov edi, eax
mov eax, dword [ebp + 0xc]
shl edx, 8
mov dword [esp + 0x28], eax
mov eax, dword [ebp + 0x10]
mov dword [esp + 0x2c], eax
push edx
push dword [esp + 0x14]
lea eax, [esp + 0x30]
push eax
call fcn.0048c500
add esp, 0xc
test eax, eax
je 0x4942d8
jmp 0x49386f
mov ecx, dword [ebp + 0xc]
mov edx, dword [ebp + 0x10]
shl eax, 8
mov dword [esp + 0x28], ecx
mov dword [esp + 0x2c], edx
push eax
push esi
lea eax, [esp + 0x30]
push eax
call fcn.0048c500
add esp, 0xc
mov ebx, dword [esp + 0xc]
test eax, eax
jne 0x49386f
mov esi, edx
mov eax, edi
cmp esi, 0x7ffffff
jbe 0x494091
test esi, 0x10000000
je 0x494571
push dword [esp + 8]
push eax
push dword [esp + 0x1c]
push ebx
push dword [esp + 0x60]
mov edi, eax
lea eax, [esp + 0xc0]
push eax
call dword [esp + 0x60]
add esp, 0x18
cmp dword [esp + 0xac], 0
je 0x49460b
mov eax, dword [esp + 0xb0]
cmp eax, edi
mov dword [esp + 0x10], eax
jbe 0x4945fb
cmp word [esp + 0x24], 0
mov ebx, dword [esp + 8]
je 0x4940bf
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0xc]
mov dword [esp + 0x30], ecx
cmp eax, ebx
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0x18]
mov dword [esp + 0x28], eax
mov eax, dword [esp + 0x1c]
mov dword [esp + 0x2c], eax
mov eax, dword [esp + 0x10]
mov byte [esp + 0x40], 0
mov dword [esp + 0x9c], eax
mov dword [esp + 0xa0], ebx
jb 0x494dc0
cmp dword [esp + 0x98], eax
jb 0x494dc0
mov esi, dword [esp + 0x20]
mov ecx, dword [esi + 0xc]
mov edi, dword [esi + 4]
mov eax, dword [esi]
mov edx, dword [esi + 8]
or ecx, dword [esi + 0x1c]
or edi, dword [esi + 0x14]
or edx, dword [esi + 0x18]
or eax, dword [esi + 0x10]
mov esi, dword [ebp + 0x10]
or edi, ecx
mov ecx, dword [esp + 0x10]
or eax, edx
or edi, eax
mov dword [esp + 0x38], ecx
lea ecx, [ecx - 1]
mov dword [esp + 0x3c], ebx
je 0x4944b4
cmp ecx, dword [esp + 0x14]
jae 0x494cbd
mov eax, dword [esp + 0xc]
mov dword [esp + 0x60], ecx
movzx ecx, byte [eax + ecx]
mov eax, ecx
mov dword [esp + 4], ecx
mov dword [esp + 0x120], 0
mov dword [esp + 0x11c], 0
mov dword [esp + 0x118], 0
mov dword [esp + 0x114], 1
mov dword [esp + 0x110], 0
mov dword [esp + 0x10c], 0
mov dword [esp + 0x108], 0
mov dword [esp + 0x104], 0
mov ch, cl
and al, 0x78
and ch, 7
shr al, 3
mov cl, ch
neg al
movsx esi, al
mov eax, dword [esp + esi + 0x118]
mov edx, dword [esp + esi + 0x11c]
mov edi, dword [esp + esi + 0x120]
mov esi, dword [esp + esi + 0x114]
mov ebx, eax
shld edi, edx, cl
shl edx, cl
not cl
shr ebx, 1
shr ebx, cl
mov cl, ch
or ebx, edx
mov edx, dword [esp + 4]
shld eax, esi, cl
shl esi, cl
mov ecx, dword [esp + 0x20]
shr edx, 3
and edx, 0x10
and ebx, dword [ecx + edx + 8]
and esi, dword [ecx + edx]
and edi, dword [ecx + edx + 0xc]
and eax, dword [ecx + edx + 4]
or esi, ebx
or eax, edi
or eax, esi
jne 0x4947df
mov esi, dword [ebp + 0x10]
mov ebx, dword [esp + 8]
mov ecx, dword [esp + 0x60]
cmp dword [esp + 0x14], ecx
mov al, 2
jbe 0x4944cc
mov eax, dword [esp + 0xc]
mov edx, dword [ebp + 0xc]
movzx eax, byte [eax + ecx]
movzx eax, byte [edx + eax + 0x58]
cmp dword [esp + 0x18], 0
movzx eax, al
mov ecx, eax
je 0x49450f
cmp dword [esp + 0x18], 1
jne 0x4944e4
lea ecx, [eax + 6]
jmp 0x49450f
test byte [esp + 0xa8], 1
je 0x4949aa
mov ecx, dword [esp + 0x64]
mov edx, dword [esp + 0x1c]
cmp dword [ecx + 0x148], edx
jbe 0x4940a2
mov ecx, dword [esp + 0xbc]
add ecx, eax
mov edx, dword [esi + 0x88]
cmp ecx, edx
jae 0x492b69
mov edx, dword [esi + 0x80]
mov esi, dword [edx + ecx*4]
test esi, esi
jns 0x4940bf
mov ecx, dword [ebp + 0xc]
mov edx, dword [ebp + 0x10]
mov dword [esp + 0x68], ecx
mov dword [esp + 0x6c], edx
push eax
lea eax, [esp + 0x2c]
push eax
lea eax, [esp + 0x70]
push eax
lea eax, [esp + 0x90]
push eax
call fcn.0048d7d0
add esp, 0x10
mov esi, dword [esp + 0x88]
cmp dword [esp + 0x84], 0
je 0x4940bf
jmp 0x4949d9
mov edi, eax
test esi, 0x8000000
je 0x494b9a
mov eax, dword [esp + 0x64]
mov dword [esp + 0x58], 1
mov dword [esp + 0x5c], 0
cmp dword [eax + 0x148], 1
je 0x49408b
mov edx, esi
mov ecx, dword [esp + 0xa4]
and edx, 0x7ffffff
shr edx, cl
mov ecx, dword [ebp + 0x10]
mov eax, dword [ecx + 0x94]
cmp edx, eax
jae 0x494bd6
mov ecx, dword [ecx + 0x8c]
mov eax, dword [ecx + edx*8 + 4]
test eax, eax
je 0x494b87
mov ecx, dword [ecx + edx*8]
test byte [ecx + 8], 2
je 0x49408b
cmp eax, 8
jbe 0x494d9c
add eax, 0xfffffff7
cmp eax, 3
ja 0x494084
jmp 0x494dae
mov eax, edi
jmp 0x494091
mov ebx, dword [esp + 0xc]
jmp 0x494091
mov ecx, dword [ebp + 0x10]
mov edx, dword [esp + 8]
call fcn.0048c4b0
jmp 0x49486e
mov ebx, dword [esp + 0xc]
mov eax, dword [esp + 8]
cmp eax, dword [esp + 0x14]
jae 0x49467e
movzx ebx, byte [ebx + eax]
mov ecx, dword [ebp + 0xc]
mov edi, dword [ebp + 0x10]
movzx eax, bl
movzx edx, byte [ecx + eax + 0x158]
mov ecx, esi
and ecx, 0x7ffffff
add ecx, edx
mov edx, dword [edi + 0x7c]
cmp ecx, edx
jae 0x494a57
mov edx, dword [edi + 0x74]
mov edx, dword [edx + ecx*4]
test edx, edx
js 0x494a68
test edx, 0x8000000
jne 0x4946e9
mov esi, dword [ebp + 0x10]
test edx, 0x20000000
jne 0x492466
jmp 0x49483f
mov eax, dword [ebp + 0xc]
mov edi, dword [ebp + 0x10]
mov ecx, esi
and ecx, 0x7ffffff
movzx eax, byte [eax + 0x257]
shl eax, 0x10
add eax, 0x10001
mov edx, eax
shr edx, 0x10
add ecx, edx
mov edx, dword [edi + 0x7c]
cmp ecx, edx
jae 0x494ca2
mov edx, dword [edi + 0x74]
mov edx, dword [edx + ecx*4]
test edx, edx
js 0x494a95
mov esi, dword [ebp + 0x10]
test edx, 0x8000000
je 0x49483f
mov eax, dword [esp + 0x64]
cmp dword [eax + 0x148], 1
jne 0x494716
mov dword [esp + 0x5c], 0
mov dword [esp + 0x58], 1
jmp 0x494765
mov eax, dword [esp + 0x64]
mov esi, dword [ebp + 0x10]
cmp dword [eax + 0x148], 1
jne 0x494772
mov eax, dword [esp + 8]
mov dword [esp + 0x5c], 0
mov dword [esp + 0x58], 1
mov dword [esp + 0x54], eax
jmp 0x49483f
mov eax, dword [ebp + 0xc]
and edx, 0x7ffffff
movzx ecx, byte [eax + 0x27c]
mov eax, dword [esi + 0x94]
shr edx, cl
cmp edx, eax
jae 0x494bd6
mov eax, dword [esi + 0x8c]
mov dword [esp + 0x5c], 0
mov dword [esp + 0x58], 1
mov ecx, dword [eax + edx*8 + 4]
test ecx, ecx
je 0x494b87
mov eax, dword [eax + edx*8]
test byte [eax + 8], 2
jne 0x494813
mov eax, dword [esp + 0x14]
mov dword [esp + 0x54], eax
jmp 0x49483f
mov eax, dword [ebp + 0xc]
mov edi, dword [esp + 8]
and edx, 0x7ffffff
movzx ecx, byte [eax + 0x27c]
mov eax, dword [esi + 0x94]
shr edx, cl
cmp edx, eax
jae 0x494bd6
mov eax, dword [esi + 0x8c]
mov dword [esp + 0x5c], 0
mov dword [esp + 0x58], 1
mov ecx, dword [eax + edx*8 + 4]
test ecx, ecx
je 0x494b87
mov eax, dword [eax + edx*8]
mov dword [esp + 0x54], edi
test byte [eax + 8], 2
je 0x49483f
cmp ecx, 8
jbe 0x494ee6
mov edx, dword [esp + 8]
add ecx, 0xfffffff7
cmp ecx, 3
ja 0x49482c
jmp 0x494ef8
mov eax, dword [0x6074b4]
mov ebx, dword [esp + 4]
movzx eax, byte [eax]
push 4
push 0xc
call fcn.00401610
add esp, 8
test eax, eax
je 0x494d78
mov ecx, dword [esp + 0x60]
mov esi, eax
mov byte [eax], 0
mov byte [eax + 1], bl
mov dword [esi + 4], ecx
jmp 0x4949d9
cmp ecx, 8
jbe 0x494ee6
mov edx, dword [esp + 0x14]
add ecx, 0xfffffff7
cmp ecx, 3
jbe 0x494ef8
mov eax, dword [eax + 0x11]
mov dword [esp + 0x58], 1
mov dword [esp + 0x54], edx
mov dword [esp + 0x5c], eax
mov eax, dword [esi + 0xb4]
cmp dword [esi + 0xb0], 0
mov dword [esi + 0xb0], 0
je 0x494d86
mov edx, dword [esp + 8]
mov ecx, edx
sub ecx, eax
neg ecx
sub edx, eax
cmovb edx, ecx
add dword [esi + 0x70], edx
mov ebx, dword [ebp + 8]
mov eax, dword [esp + 0x58]
mov edx, dword [esp + 0x5c]
mov ecx, dword [esp + 0x54]
mov dword [ebx], eax
mov dword [ebx + 4], edx
mov dword [ebx + 8], ecx
jmp 0x49405a
mov ecx, dword [ebp + 0x10]
jmp 0x4931ba
mov edx, dword [ebp + 0x10]
and esi, 0x7ffffff
mov ecx, dword [esp + 0xa8]
shr esi, cl
mov ecx, dword [edx + 0x94]
cmp esi, ecx
jae 0x494cd1
mov edx, dword [edx + 0x8c]
mov ecx, dword [edx + esi*8 + 4]
test ecx, ecx
je 0x494b87
mov edx, dword [edx + esi*8]
mov esi, dword [ebp + 0x10]
test byte [edx + 8], 2
je 0x4948e8
cmp ecx, 8
jbe 0x494ee6
add ecx, 0xfffffff7
cmp ecx, 3
jbe 0x494ef8
mov eax, dword [edx + 0x11]
mov ecx, dword [esi + 0xb4]
cmp dword [esi + 0xb0], 0
mov dword [esi + 0xb0], 0
je 0x494d86
mov edx, ebx
mov edi, esi
mov esi, ebx
sub edx, ecx
neg edx
sub esi, ecx
mov ecx, dword [ebp + 8]
cmovb esi, edx
add dword [edi + 0x70], esi
mov dword [ecx], 1
mov dword [ecx + 4], eax
mov dword [ecx + 8], ebx
mov ebx, ecx
jmp 0x49405a
mov ecx, dword [ebp + 0xc]
shl eax, 8
mov dword [esp + 0x28], ecx
mov ecx, dword [ebp + 0x10]
mov dword [esp + 0x2c], ecx
lea ecx, [esp + 0x28]
push eax
push esi
push ecx
call fcn.0048c500
add esp, 0xc
test eax, eax
jne 0x493a3f
jmp 0x4938df
mov ecx, dword [ebp + 0xc]
mov dword [esp + 0x28], ecx
mov ecx, dword [ebp + 0x10]
mov dword [esp + 0x2c], ecx
lea ecx, [esp + 0x28]
push eax
push esi
push ecx
call fcn.0048c500
add esp, 0xc
test eax, eax
je 0x493936
mov eax, dword [0x6074b4]
movzx eax, byte [eax]
push 4
push 0xc
call fcn.00401610
add esp, 8
test eax, eax
je 0x494d78
mov ebx, dword [ebp + 8]
mov ecx, dword [esp + 4]
mov byte [eax], 1
jmp 0x49248f
mov eax, dword [0x6074b4]
movzx eax, byte [eax]
push 4
push 0xc
call fcn.00401610
add esp, 8
test eax, eax
je 0x494d78
mov ecx, dword [esp + 0x1c]
mov esi, eax
mov byte [eax], 3
mov dword [eax + 4], 2
mov dword [esi + 8], ecx
mov ebx, dword [ebp + 8]
mov dword [ebx + 4], esi
jmp 0x492495
mov ecx, dword [ebp + 0xc]
lea esi, [esp + 0x84]
lea edx, [esp + 0x68]
mov dword [esp + 0x68], ecx
mov ecx, dword [ebp + 0x10]
mov dword [esp + 0x6c], ecx
lea ecx, [esp + 0x28]
push eax
push ecx
push edx
push esi
call fcn.0048d7d0
add esp, 0x10
mov esi, dword [esp + 0x88]
cmp dword [esp + 0x84], 0
jne 0x493135
jmp 0x493bee
mov eax, dword [0x6074b4]
mov edi, dword [esp + 0xc]
movzx eax, byte [eax]
push 4
push 0xc
call fcn.00401610
add esp, 8
test eax, eax
je 0x494d78
mov ecx, dword [esp + 0x14]
mov esi, eax
mov byte [eax], 0
mov eax, edi
jmp 0x49312f
push 0x5adc18
push edx
push ecx
call fcn.00425270
add esp, 0xc
ud2
mov ecx, dword [ebp + 0xc]
shl eax, 8
mov dword [esp + 0x28], ecx
mov ecx, dword [ebp + 0x10]
mov dword [esp + 0x2c], ecx
lea ecx, [esp + 0x28]
push eax
push esi
push ecx
call fcn.0048c500
add esp, 0xc
test eax, eax
jne 0x493a3f
jmp 0x494662
mov ecx, dword [ebp + 0xc]
mov dword [esp + 0x28], ecx
mov ecx, dword [ebp + 0x10]
mov dword [esp + 0x2c], ecx
lea ecx, [esp + 0x28]
push eax
push esi
push ecx
call fcn.0048c500
add esp, 0xc
test eax, eax
je 0x4946bb
mov eax, dword [0x6074b4]
movzx eax, byte [eax]
push 4
push 0xc
call fcn.00401610
add esp, 8
mov ecx, dword [esp + 0x14]
test eax, eax
je 0x494d78
mov ebx, dword [ebp + 8]
mov byte [eax], 1
jmp 0x49248f
push 0x5ae204
push ecx
push edi
call fcn.00425270
add esp, 0xc
ud2
push 0x5adc18
push ebx
push edx
call fcn.00425270
add esp, 0xc
ud2
mov eax, dword [0x6074b4]
movzx eax, byte [eax]
push 4
push 0xc
call fcn.00401610
add esp, 8
test eax, eax
je 0x494d78
mov ecx, dword [esp + 0x50]
mov esi, eax
mov byte [eax], 3
mov dword [eax + 4], 2
mov dword [esi + 8], ecx
jmp 0x493135
push 0x5ae204
push eax
push edi
call fcn.00425270
add esp, 0xc
ud2
mov eax, dword [0x6074b4]
movzx eax, byte [eax]
push 4
push 0xc
call fcn.00401610
add esp, 8
test eax, eax
je 0x494d78
mov ebx, dword [ebp + 8]
mov byte [eax], 1
mov dword [eax + 4], esi
jmp 0x492492
push 0x5adfb8
push ecx
push eax
call fcn.00425270
add esp, 0xc
ud2
push 0x5b0954
push 0
push 0
call fcn.00425270
add esp, 0xc
ud2
test esi, 0x40000000
jne 0x494c27
test esi, 0x20000000
je 0x494f0a
mov ecx, dword [ebp + 0x10]
mov edx, edi
mov esi, edi
call fcn.0048c4b0
cmp edi, dword [esp + 0x14]
jae 0x494eba
mov eax, dword [esp + 0xc]
movzx eax, byte [eax + edi]
push edi
jmp 0x492b16
push 0x5adfc8
push eax
push edx
call fcn.00425270
add esp, 0xc
ud2
push 0x5adc58
push dword [esp + 0x4c]
push eax
call fcn.00425270
add esp, 0xc
ud2
push 0x5ae204
jmp 0x494c4f
push 0x5ae1f4
push dword [esp + 8]
push esi
call fcn.00425270
add esp, 0xc
ud2
push 0x5adc18
push edi
push eax
call fcn.00425270
add esp, 0xc
ud2
mov ecx, dword [ebp + 0x10]
mov edx, edi
call fcn.0048c4b0
jmp 0x49486e
push 0x5adc58
push dword [esp + 0x20]
push eax
call fcn.00425270
add esp, 0xc
ud2
push 0x5ae1f4
push dword [esp + 8]
push edi
call fcn.00425270
add esp, 0xc
ud2
push 0x5adc18
push ebx
push edi
call fcn.00425270
add esp, 0xc
ud2
push 0x5adc58
push dword [esp + 0x54]
push eax
call fcn.00425270
add esp, 0xc
ud2
push 0x5ae204
jmp 0x494cc2
push 0x5adc18
jmp 0x494c96
push 0x5adc28
push esi
push edx
call fcn.00425270
add esp, 0xc
ud2
push 0x5adc28
jmp 0x494a5c
push 0x5adc18
push edi
push esi
call fcn.00425270
add esp, 0xc
ud2
push 0x5adc58
push dword [esp + 0x18]
push ecx
call fcn.00425270
add esp, 0xc
ud2
push 0x5adfc8
push ecx
push esi
call fcn.00425270
add esp, 0xc
ud2
push 0x5adc58
push dword [esp + 8]
push ecx
call fcn.00425270
add esp, 0xc
ud2
push 0x5ae1f4
push dword [esp + 8]
push edx
call fcn.00425270
add esp, 0xc
ud2
push 0x5adfc8
jmp 0x494d1d
push 0x5ae1f4
jmp 0x494d38
push 0x5ae270
push eax
push esi
call fcn.00425270
add esp, 0xc
ud2
push 0x5adfc8
jmp 0x494b7b
push 0x5adc58
push dword [esp + 0x18]
push eax
call fcn.00425270
add esp, 0xc
ud2
push 0x5ae270
jmp 0x494b40
push 0x5adfc8
push ecx
push edx
call fcn.00425270
add esp, 0xc
ud2
push 0x5ae17c
push 0x1f
push str.no_in_progress_search_to_update
call fcn.00424f00
add esp, 0xc
ud2
push 0xc
push 4
call fcn.0041a8c0
add esp, 8
ud2
push 0x5add60
push 0x1f
push str.no_in_progress_search_to_finish
call fcn.00424f00
add esp, 0xc
ud2
push 0x5b0984
push eax
push 9
call fcn.00428790
add esp, 0xc
ud2
push 0x5b08a0
push eax
push 4
call fcn.004287f0
add esp, 0xc
ud2
mov eax, dword [esp + 0x14]
jmp 0x494e42
lea eax, [esp + 0x9c]
mov dword [esp + 0x68], 0x5acac4
mov dword [esp + 0x6c], 2
mov dword [esp + 0x78], 0
mov dword [esp + 0x94], esi
mov dword [esp + 0x84], eax
lea eax, [esp + 0x94]
mov dword [esp + 0x88], 0x4c75f0
mov dword [esp + 0x8c], eax
lea eax, [esp + 0x84]
mov dword [esp + 0x90], 0x42bbb0
mov dword [esp + 0x70], eax
lea eax, [esp + 0x68]
mov dword [esp + 0x74], 2
push 0x5b0bc8
push eax
call fcn.00425150
add esp, 8
ud2
mov eax, dword [esp + 4]
mov dword [esp + 0x94], eax
lea eax, [esp + 0x9c]
mov dword [esp + 0x68], 0x5acac4
mov dword [esp + 0x6c], 2
mov dword [esp + 0x78], 0
mov dword [esp + 0x84], eax
lea eax, [esp + 0x94]
mov dword [esp + 0x88], 0x4c75f0
mov dword [esp + 0x8c], eax
lea eax, [esp + 0x84]
mov dword [esp + 0x90], 0x42bbb0
mov dword [esp + 0x70], eax
mov dword [esp + 0x74], 2
push 0x5b0bc8
lea eax, [esp + 0x6c]
push eax
call fcn.00425150
add esp, 8
ud2
push 0x5ae270
push dword [esp + 0x18]
push edi
call fcn.00425270
add esp, 0xc
ud2
push 0x5b0984
push edi
push 9
call fcn.00428790
add esp, 0xc
ud2
mov dword [esp + 0x28], eax
jmp 0x494f4a
push 0x5b0984
push ecx
push 9
call fcn.00428790
add esp, 0xc
ud2
push 0x5b08a0
push ecx
push 4
call fcn.004287f0
add esp, 0xc
ud2
lea eax, [esp + 0x4c]
mov dword [esp + 0x28], 0x5ae258
mov dword [esp + 0x2c], 1
mov dword [esp + 0x38], 0
mov dword [esp + 0x30], eax
mov dword [esp + 0x34], 0
push 0x5ae260
lea eax, [esp + 0x2c]
push eax
call fcn.00425150
add esp, 8
ud2
mov dword [esp + 0x28], ebx
lea eax, [esp + 0x28]
mov dword [esp + 0x2c], 0
push 0x5adfd8
push 0x5ad194
jmp 0x494f8c
mov eax, dword [esp + 0xb8]
jmp 0x494f72
mov eax, dword [esp + 0xa4]
mov dword [esp + 0x68], eax
mov dword [esp + 0x6c], 0
push 0x5adfd8
push 0x5ad194
lea eax, [esp + 0x70]
push eax
push 0x2b
push 0x5ad158
call fcn.004254f0
add esp, 0x14
ud2