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

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff8
sub esp, 0x98
mov esi, dword [ebp + 0x14]
mov ecx, dword [ebp + 8]
mov eax, dword [esi + 0x10]
mov edi, dword [esi + 0x14]
cmp eax, edi
jbe 0x494fca
mov dword [ecx], 0
jmp 0x49650f
mov ebx, dword [ebp + 0xc]
cmp byte [esi + 0x18], 0
mov dword [esp + 4], eax
je 0x4951a4
mov eax, dword [ebx + 0x258]
mov edx, dword [ebx + 0x260]
mov ecx, dword [ebx + 0x264]
or edx, dword [ebx + 0x270]
or eax, dword [ebx + 0x268]
or ecx, dword [ebx + 0x274]
or eax, edx
mov edx, dword [ebx + 0x25c]
or edx, dword [ebx + 0x26c]
mov ebx, dword [ebp + 0x10]
or edx, ecx
or edx, eax
mov eax, dword [esi + 8]
mov dword [esp + 8], eax
mov eax, dword [esi + 0xc]
mov dword [esp + 0xc], eax
je 0x495177
cmp edi, eax
jae 0x495177
mov ecx, dword [esp + 8]
movzx ecx, byte [ecx + edi]
mov eax, ecx
mov dword [esp + 0x14], ecx
mov dword [esp + 0x90], 0
mov dword [esp + 0x8c], 0
mov dword [esp + 0x88], 0
mov dword [esp + 0x84], 1
mov dword [esp + 0x80], 0
mov dword [esp + 0x7c], 0
mov dword [esp + 0x78], 0
mov dword [esp + 0x74], 0
mov ch, cl
and al, 0x78
and ch, 7
shr al, 3
mov cl, ch
neg al
movsx edx, al
mov esi, dword [esp + edx + 0x8c]
mov eax, dword [esp + edx + 0x90]
mov dword [esp + 0x18], edx
shld eax, esi, cl
shl esi, cl
not cl
mov dword [esp + 0x1c], eax
mov eax, dword [esp + edx + 0x88]
mov edx, eax
mov ebx, eax
mov eax, dword [esp + 0x14]
shr edx, 1
shr edx, cl
mov cl, ch
or edx, esi
mov esi, dword [esp + 0x18]
shr eax, 3
and eax, 0x10
mov esi, dword [esp + esi + 0x84]
shld ebx, esi, cl
shl esi, cl
mov ecx, dword [ebp + 0xc]
mov dword [esp + 0x10], ebx
add ecx, 0x258
mov dword [esp + 0x18], ecx
and edx, dword [ecx + eax + 8]
mov ecx, dword [esp + 0x1c]
mov ebx, dword [esp + 0x18]
and ecx, dword [ebx + eax + 0xc]
mov ebx, dword [esp + 0x10]
mov dword [esp + 0x1c], ecx
mov ecx, dword [esp + 0x18]
and ebx, dword [ecx + eax + 4]
and esi, dword [ecx + eax]
mov eax, dword [esp + 0xc]
or ebx, dword [esp + 0x1c]
or esi, edx
or ebx, esi
mov ebx, dword [ebp + 0x10]
je 0x495177
mov eax, dword [0x6074b4]
mov esi, dword [0x6074a0]
movzx eax, byte [eax]
mov eax, dword [esi]
test eax, eax
jne 0x495150
call sub.KERNEL32.dll_GetProcessHeap
test eax, eax
je 0x4966db
mov dword [esi], eax
push 0xc
push 0
push eax
call sub.KERNEL32.dll_HeapAlloc
test eax, eax
je 0x4966db
mov ecx, dword [esp + 0x14]
mov byte [eax], 0
mov byte [eax + 1], cl
mov ecx, dword [ebp + 8]
mov dword [eax + 4], edi
jmp 0x495fe6
cmp edi, eax
mov al, 2
jae 0x495400
cmp dword [esp + 8], 0
mov esi, dword [ebp + 0x14]
je 0x495403
mov eax, dword [esp + 8]
mov ecx, dword [ebp + 0xc]
movzx eax, byte [eax + edi]
movzx eax, byte [ecx + eax + 0x58]
jmp 0x495403
mov eax, dword [ebx + 0x258]
mov edx, dword [ebx + 0x260]
mov ecx, dword [ebx + 0x264]
or edx, dword [ebx + 0x270]
or eax, dword [ebx + 0x268]
or ecx, dword [ebx + 0x274]
or eax, edx
mov edx, dword [ebx + 0x25c]
or edx, dword [ebx + 0x26c]
mov ebx, dword [ebp + 0x10]
or edx, ecx
mov ecx, dword [esi + 8]
or edx, eax
mov edx, dword [esi + 0xc]
mov esi, dword [esp + 4]
mov dword [esp + 8], ecx
mov dword [esp + 0xc], edx
je 0x495330
cmp edi, edx
jae 0x495330
mov eax, dword [esp + 8]
movzx ecx, byte [eax + edi]
mov eax, ecx
mov dword [esp + 0x14], ecx
mov ch, cl
and al, 0x78
and ch, 7
shr al, 3
mov cl, ch
neg al
movsx eax, al
mov dword [esp + 0x18], eax
mov dword [esp + 0x70], 0
mov dword [esp + 0x6c], 0
mov dword [esp + 0x68], 0
mov dword [esp + 0x64], 1
mov dword [esp + 0x60], 0
mov dword [esp + 0x5c], 0
mov dword [esp + 0x58], 0
mov dword [esp + 0x54], 0
mov esi, dword [esp + eax + 0x6c]
mov eax, dword [esp + eax + 0x70]
shld eax, esi, cl
shl esi, cl
not cl
mov dword [esp + 0x1c], eax
mov eax, dword [esp + 0x18]
mov eax, dword [esp + eax + 0x68]
mov edx, eax
mov ebx, eax
mov eax, dword [esp + 0x14]
shr edx, 1
shr edx, cl
mov cl, ch
or edx, esi
mov esi, dword [esp + 0x18]
shr eax, 3
and eax, 0x10
mov esi, dword [esp + esi + 0x64]
shld ebx, esi, cl
shl esi, cl
mov ecx, dword [ebp + 0xc]
mov dword [esp + 0x10], ebx
add ecx, 0x258
mov dword [esp + 0x18], ecx
and edx, dword [ecx + eax + 8]
mov ecx, dword [esp + 0x1c]
mov ebx, dword [esp + 0x18]
and ecx, dword [ebx + eax + 0xc]
mov ebx, dword [esp + 0x10]
mov dword [esp + 0x1c], ecx
mov ecx, dword [esp + 0x18]
and ebx, dword [ecx + eax + 4]
and esi, dword [ecx + eax]
or ebx, dword [esp + 0x1c]
or esi, edx
mov edx, dword [esp + 0xc]
or ebx, esi
mov ebx, dword [ebp + 0x10]
mov esi, dword [esp + 4]
je 0x495330
mov eax, dword [0x6074b4]
mov esi, dword [0x6074a0]
movzx eax, byte [eax]
mov eax, dword [esi]
test eax, eax
jne 0x49530a
call sub.KERNEL32.dll_GetProcessHeap
test eax, eax
je 0x4966db
mov dword [esi], eax
push 0xc
push 0
push eax
call sub.KERNEL32.dll_HeapAlloc
test eax, eax
je 0x4966db
mov edx, eax
mov byte [eax], 0
mov eax, dword [esp + 0x14]
mov byte [edx + 1], al
mov dword [edx + 4], edi
jmp 0x4958e7
cmp edi, edx
mov al, 2
jae 0x49534d
cmp dword [esp + 8], 0
je 0x49534d
mov eax, dword [esp + 8]
mov ecx, dword [ebp + 0xc]
movzx eax, byte [eax + edi]
movzx eax, byte [ecx + eax + 0x58]
mov ecx, dword [ebp + 0x14]
movzx eax, al
mov edx, dword [ecx]
mov ecx, eax
test edx, edx
je 0x495367
cmp edx, 1
jne 0x495890
lea ecx, [eax + 6]
mov edx, dword [ebx + 0x88]
cmp ecx, edx
jae 0x495a77
mov edx, dword [ebx + 0x80]
mov edx, dword [edx + ecx*4]
test edx, edx
js 0x495c15
cmp esi, edi
jne 0x495532
test esi, esi
je 0x495a82
mov eax, dword [esp + 0xc]
lea edi, [esi - 1]
cmp edi, eax
jae 0x496681
mov eax, dword [esp + 8]
movzx eax, byte [eax + edi]
mov byte [esp + 8], al
movzx ecx, al
mov eax, dword [ebp + 0xc]
movzx esi, byte [eax + ecx + 0x158]
mov eax, edx
and eax, 0x7ffffff
add eax, esi
mov esi, dword [ebx + 0x7c]
cmp eax, esi
jae 0x496688
mov esi, dword [ebx + 0x74]
mov eax, dword [esi + eax*4]
mov esi, dword [esp + 4]
test eax, eax
js 0x496338
test eax, 0x8000000
jne 0x49636f
test eax, 0x20000000
je 0x495ac7
jmp 0x495fb7
mov esi, dword [ebp + 0x14]
mov ecx, dword [esi]
movzx edx, al
mov eax, edx
test ecx, ecx
je 0x49541a
cmp ecx, 1
jne 0x4954d8
lea eax, [edx + 6]
mov ecx, dword [ebx + 0x88]
cmp eax, ecx
jae 0x4959ce
mov ecx, dword [ebx + 0x80]
mov eax, dword [ecx + eax*4]
mov ecx, dword [esp + 4]
test eax, eax
js 0x495afb
cmp ecx, edi
jne 0x495c56
test ecx, ecx
je 0x4959da
lea edi, [ecx - 1]
mov ecx, dword [esp + 0xc]
cmp edi, ecx
jae 0x496676
mov ecx, dword [esp + 8]
mov edx, dword [ebp + 0xc]
movzx ecx, byte [ecx + edi]
mov byte [esp + 8], cl
movzx ecx, cl
movzx esi, byte [edx + ecx + 0x158]
mov edx, eax
and edx, 0x7ffffff
add edx, esi
mov esi, dword [ebx + 0x7c]
cmp edx, esi
jae 0x49662a
mov esi, dword [ebx + 0x74]
mov edx, dword [esi + edx*4]
mov esi, dword [esp + 4]
test edx, edx
js 0x4962e7
test edx, 0x8000000
je 0x495fab
mov ebx, dword [ebp + 0xc]
xor edi, edi
mov eax, 1
mov ecx, dword [ebx + 0x278]
cmp dword [ecx + 0x148], 1
je 0x49628b
movzx ecx, byte [ebx + 0x27c]
and edx, 0x7ffffff
jmp 0x49618e
mov ecx, dword [ebp + 0xc]
mov ebx, dword [esi + 4]
test byte [ecx + 0x4d], 1
jne 0x4959a4
mov eax, dword [0x6074b4]
mov esi, dword [0x6074a0]
movzx eax, byte [eax]
mov eax, dword [esi]
test eax, eax
jne 0x49550b
call sub.KERNEL32.dll_GetProcessHeap
test eax, eax
je 0x4966db
mov dword [esi], eax
push 0xc
push 0
push eax
call sub.KERNEL32.dll_HeapAlloc
test eax, eax
je 0x4966db
mov ecx, dword [ebp + 8]
mov byte [eax], 3
mov dword [eax + 4], 2
mov dword [eax + 8], ebx
jmp 0x495fe6
dec edi
cmp dword [ebx + 0xb0], 1
jne 0x49555a
mov eax, dword [ebx + 0xb8]
mov ecx, dword [ebx + 0xb4]
mov esi, eax
sub esi, ecx
neg esi
sub eax, ecx
cmovb eax, esi
mov esi, dword [esp + 4]
add dword [ebx + 0x70], eax
mov eax, esi
mov ecx, 0xffffffff
mov dword [ebx + 0xb0], 1
mov dword [ebx + 0xb4], edi
mov dword [ebx + 0xb8], edi
mov dword [esp + 0x10], 0
add eax, 3
cmovae ecx, eax
mov eax, dword [ebp + 0xc]
mov dword [esp + 0x18], ecx
mov ecx, dword [eax + 0x278]
mov eax, dword [eax + 0x27c]
and eax, 0x1f
mov dword [esp + 0x48], ecx
mov dword [esp + 0x44], eax
jmp 0x4955ca
lea eax, [edi + 1]
mov dword [esp + 0x10], 1
mov dword [esp + 0x3c], eax
cmp edi, esi
lea edi, [edi - 1]
je 0x4958f8
cmp edx, 0x7ffffff
jbe 0x495630
cmp dword [ebx + 0xb0], 0
mov eax, dword [esp + 8]
je 0x4966c5
cmp edi, dword [esp + 0xc]
mov dword [ebx + 0xb8], edi
jae 0x496580
movzx eax, byte [eax + edi]
mov ecx, dword [ebp + 0xc]
movzx esi, byte [ecx + eax + 0x158]
mov ecx, edx
and ecx, 0x7ffffff
add ecx, esi
mov esi, dword [ebx + 0x7c]
cmp ecx, esi
jae 0x496646
mov esi, dword [ebx + 0x74]
mov ecx, dword [esi + ecx*4]
test ecx, ecx
js 0x495835
mov edx, ecx
mov esi, dword [esp + 4]
jmp 0x495780
cmp edi, esi
jb 0x4955bf
mov eax, dword [ebx + 0x74]
dec edi
mov ecx, edi
mov dword [esp + 0x1c], eax
nop
mov eax, dword [esp + 8]
mov ebx, dword [ebp + 0xc]
lea edi, [ecx + 1]
movzx esi, byte [eax + ecx + 1]
mov eax, dword [esp + 0x1c]
movzx esi, byte [ebx + esi + 0x158]
add esi, edx
mov ebx, dword [eax + esi*4]
cmp ebx, 0x7ffffff
ja 0x495762
cmp edi, dword [esp + 0x18]
jbe 0x495762
mov esi, eax
mov eax, dword [esp + 8]
mov edi, dword [ebp + 0xc]
movzx edx, byte [eax + ecx]
movzx edx, byte [edi + edx + 0x158]
add edx, ebx
mov edx, dword [esi + edx*4]
cmp edx, 0x7ffffff
ja 0x4956f9
mov edi, esi
movzx esi, byte [eax + ecx - 1]
mov ebx, dword [ebp + 0xc]
movzx esi, byte [ebx + esi + 0x158]
add esi, edx
mov ebx, dword [edi + esi*4]
cmp ebx, 0x7ffffff
ja 0x49575f
movzx edx, byte [eax + ecx - 2]
mov esi, dword [ebp + 0xc]
movzx edx, byte [esi + edx + 0x158]
mov esi, dword [esp + 4]
add edx, ebx
mov edx, dword [edi + edx*4]
cmp edx, 0x7ffffff
ja 0x49581f
lea edi, [ecx - 4]
add ecx, 0xfffffffd
cmp ecx, esi
mov ecx, edi
jae 0x495640
mov ebx, dword [ebp + 0x10]
inc edi
jmp 0x4955bf
mov edi, ecx
mov ecx, ebx
mov ebx, edx
mov esi, dword [esp + 4]
test ebx, ebx
jns 0x49576c
mov ebx, dword [ebp + 0x10]
cmp dword [ebx + 0xb0], 0
je 0x4966c5
cmp edi, dword [esp + 0xc]
mov eax, dword [esp + 8]
mov dword [ebx + 0xb8], edi
jae 0x49665a
movzx esi, byte [eax + edi]
mov edx, dword [ebp + 0xc]
mov ebx, dword [ebx + 0x7c]
movzx edx, byte [edx + esi + 0x158]
add edx, ecx
cmp edx, ebx
jae 0x49666d
mov eax, dword [esp + 0x1c]
mov edx, dword [eax + edx*4]
test edx, edx
js 0x495863
mov esi, dword [esp + 4]
mov ebx, dword [ebp + 0x10]
jmp 0x495780
dec ecx
mov edi, ecx
mov ecx, edx
mov esi, dword [esp + 4]
test ebx, ebx
js 0x495707
mov edx, ebx
mov ebx, dword [ebp + 0x10]
nop word cs:[eax + eax]
nop dword [eax + eax]
cmp edx, 0x8000000
jb 0x4955bf
mov eax, edx
and eax, 0x10000000
jne 0x4955bf
test edx, 0x8000000
je 0x495ba4
mov eax, dword [esp + 0x48]
mov dword [esp + 0x14], 0
cmp dword [eax + 0x148], 1
je 0x4955b0
mov eax, ebx
mov ebx, edx
mov ecx, dword [esp + 0x44]
and ebx, 0x7ffffff
shr ebx, cl
mov ecx, dword [eax + 0x94]
cmp ebx, ecx
jae 0x496664
mov ecx, dword [eax + 0x8c]
mov eax, dword [ecx + ebx*8 + 4]
test eax, eax
je 0x49664f
mov ecx, dword [ecx + ebx*8]
mov ebx, dword [ebp + 0x10]
test byte [ecx + 8], 2
je 0x4955b0
cmp eax, 8
jbe 0x4966ff
add eax, 0xfffffff7
cmp eax, 3
jbe 0x496711
mov eax, dword [ecx + 0x11]
mov dword [esp + 0x14], eax
jmp 0x4955b0
add ecx, 0xfffffffe
mov edi, ecx
mov ecx, ebx
mov ebx, edx
test ebx, ebx
jns 0x49576c
jmp 0x495707
mov ecx, dword [ebp + 0xc]
shl eax, 8
mov dword [esp + 0x20], ecx
mov dword [esp + 0x24], ebx
push eax
push edx
lea eax, [esp + 0x28]
push eax
call fcn.0048c500
add esp, 0xc
mov esi, dword [esp + 4]
test eax, eax
je 0x495780
jmp 0x495eed
mov eax, dword [ebp + 0xc]
mov ebx, dword [ebp + 0x10]
shl esi, 8
mov dword [esp + 0x20], eax
mov dword [esp + 0x24], ebx
push esi
push ecx
lea eax, [esp + 0x28]
push eax
call fcn.0048c500
add esp, 0xc
test eax, eax
je 0x495627
jmp 0x495eed
mov ecx, dword [ebp + 0x14]
mov edx, dword [ebp + 0xc]
mov ebx, dword [ecx + 4]
test byte [edx + 0x4d], 1
jne 0x495a4d
mov eax, dword [0x6074b4]
mov esi, dword [0x6074a0]
movzx eax, byte [eax]
mov eax, dword [esi]
test eax, eax
jne 0x4958c6
call sub.KERNEL32.dll_GetProcessHeap
test eax, eax
je 0x4966db
mov dword [esi], eax
push 0xc
push 0
push eax
call sub.KERNEL32.dll_HeapAlloc
test eax, eax
je 0x4966db
mov edx, eax
mov byte [eax], 3
mov dword [eax + 4], 2
mov dword [eax + 8], ebx
mov ecx, dword [ebp + 8]
mov dword [ecx + 4], edx
mov dword [ecx], 2
jmp 0x49650f
mov eax, dword [ebx + 0xb4]
cmp dword [ebx + 0xb0], 0
mov dword [ebx + 0xb0], 0
je 0x4966e9
mov edi, dword [esp + 4]
mov ecx, esi
sub ecx, eax
neg ecx
sub edi, eax
mov eax, dword [esp + 4]
cmovb edi, ecx
add dword [ebx + 0x70], edi
test eax, eax
je 0x495b31
lea edi, [eax - 1]
mov eax, dword [esp + 0xc]
cmp edi, eax
jae 0x496681
mov eax, dword [esp + 8]
mov ebx, dword [ebp + 0x10]
movzx eax, byte [eax + edi]
mov byte [esp + 8], al
movzx ecx, al
mov eax, dword [ebp + 0xc]
movzx esi, byte [eax + ecx + 0x158]
mov eax, edx
and eax, 0x7ffffff
add eax, esi
mov esi, dword [ebx + 0x7c]
cmp eax, esi
jae 0x496688
mov esi, dword [ebx + 0x74]
mov eax, dword [esi + eax*4]
mov esi, dword [esp + 4]
test eax, eax
js 0x496416
test eax, 0x8000000
jne 0x49659c
mov edx, dword [esp + 0x14]
test eax, 0x20000000
jne 0x495fb7
jmp 0x496612
mov eax, dword [ecx + 0x278]
cmp dword [eax + 0x148], ebx
jbe 0x495ace
lea eax, [ebx + ebx*2]
mov ebx, dword [ebp + 0x10]
lea eax, [edx + eax*2 + 0xc]
mov ecx, dword [ebx + 0x88]
cmp eax, ecx
jb 0x495428
push 0x5adfb8
push ecx
push eax
jmp 0x4966a6
mov edi, dword [ebp + 0xc]
mov edx, eax
and edx, 0x7ffffff
movzx ecx, byte [edi + 0x257]
shl ecx, 0x10
add ecx, 0x10001
mov esi, ecx
shr esi, 0x10
add edx, esi
mov esi, dword [ebx + 0x7c]
cmp edx, esi
jae 0x49668f
mov esi, dword [ebx + 0x74]
mov edx, dword [esi + edx*4]
test edx, edx
js 0x496314
test edx, 0x8000000
je 0x4960c7
mov ecx, dword [edi + 0x278]
xor esi, esi
mov eax, 1
cmp dword [ecx + 0x148], 1
je 0x4961fb
movzx ecx, byte [edi + 0x27c]
and edx, 0x7ffffff
jmp 0x49623f
mov ecx, dword [edx + 0x278]
cmp dword [ecx + 0x148], ebx
jbe 0x495beb
lea ecx, [ebx + ebx*2]
mov ebx, dword [ebp + 0x10]
lea ecx, [eax + ecx*2 + 0xc]
mov edx, dword [ebx + 0x88]
cmp ecx, edx
jb 0x495375
push 0x5adfb8
push edx
jmp 0x49664c
mov edi, dword [ebp + 0xc]
mov eax, edx
and eax, 0x7ffffff
movzx ecx, byte [edi + 0x257]
shl ecx, 0x10
add ecx, 0x10001
mov esi, ecx
shr esi, 0x10
add eax, esi
mov esi, dword [ebx + 0x7c]
cmp eax, esi
jae 0x49669f
mov esi, dword [ebx + 0x74]
mov eax, dword [esi + eax*4]
test eax, eax
js 0x496464
test eax, 0x8000000
jne 0x496492
xor edx, edx
jmp 0x496504
mov ecx, dword [ecx + 0x27c]
mov eax, 1
and ecx, 0x1f
shl eax, cl
cmp ecx, 0x1b
jae 0x496723
mov ebx, dword [ebp + 0x10]
or eax, 0x40000000
mov ecx, dword [esp + 4]
test eax, eax
jns 0x49543d
mov eax, dword [ebp + 0xc]
lea ecx, [esp + 0x4c]
mov dword [esp + 0x20], eax
lea eax, [esp + 0x20]
mov dword [esp + 0x24], ebx
push edx
push esi
push eax
push ecx
call fcn.0048d7d0
add esp, 0x10
mov eax, dword [esp + 0x50]
cmp dword [esp + 0x4c], 0
je 0x495c4a
mov ecx, dword [ebp + 8]
jmp 0x495fe6
mov edi, dword [ebp + 0xc]
mov eax, edx
and eax, 0x7ffffff
movzx ecx, byte [edi + 0x257]
shl ecx, 0x10
add ecx, 0x10001
mov esi, ecx
shr esi, 0x10
add eax, esi
mov esi, dword [ebx + 0x7c]
cmp eax, esi
jae 0x49669f
mov esi, dword [ebx + 0x74]
mov eax, dword [esi + eax*4]
mov esi, dword [esp + 4]
test eax, eax
js 0x496539
mov edx, dword [esp + 0x14]
test eax, 0x8000000
je 0x496612
mov ecx, dword [esp + 0x48]
cmp dword [ecx + 0x148], 1
jne 0x496295
mov dword [esp + 0x3c], 0
mov dword [esp + 0x10], 1
jmp 0x4965ea
test edx, 0x40000000
je 0x49600c
mov eax, dword [ebx + 0xb4]
cmp dword [ebx + 0xb0], 0
mov dword [ebx + 0xb0], 0
je 0x4966e9
mov ecx, edi
mov edx, dword [esp + 0x14]
sub ecx, eax
neg ecx
sub edi, eax
mov eax, dword [esp + 0x10]
cmovb edi, ecx
mov ecx, dword [ebp + 8]
add dword [ebx + 0x70], edi
jmp 0x496619
mov ecx, dword [edx + 0x27c]
mov edx, 1
and ecx, 0x1f
shl edx, cl
cmp ecx, 0x1b
jae 0x496789
mov ebx, dword [ebp + 0x10]
or edx, 0x40000000
test edx, edx
jns 0x495386
mov ecx, dword [ebp + 0xc]
lea edx, [esp + 0x4c]
mov dword [esp + 0x20], ecx
mov dword [esp + 0x24], ebx
lea ecx, [esp + 0x20]
push eax
push dword [ebp + 0x14]
push ecx
push edx
call fcn.0048d7d0
add esp, 0x10
mov edx, dword [esp + 0x50]
cmp dword [esp + 0x4c], 0
jne 0x4958e7
jmp 0x495386
mov ecx, dword [esp + 4]
cmp ecx, edi
je 0x495445
dec edi
cmp dword [ebx + 0xb0], 1
jne 0x495c80
mov ecx, dword [ebx + 0xb8]
mov edx, dword [ebx + 0xb4]
mov esi, ecx
sub esi, edx
neg esi
sub ecx, edx
mov edx, dword [esp + 4]
cmovb ecx, esi
add dword [ebx + 0x70], ecx
mov ecx, edx
mov esi, ecx
add ecx, 3
mov edx, 0xffffffff
mov dword [ebx + 0xb0], 1
mov dword [ebx + 0xb4], edi
mov dword [ebx + 0xb8], edi
cmovae edx, ecx
mov ecx, dword [ebp + 0xc]
mov dword [esp + 0x18], edx
mov edx, dword [ecx + 0x278]
mov ecx, dword [ecx + 0x27c]
and ecx, 0x1f
mov dword [esp + 0x14], edx
mov dword [esp + 0x10], ecx
jmp 0x495cdd
mov eax, edx
cmp edi, esi
lea edi, [edi - 1]
je 0x495f11
cmp eax, 0x7ffffff
jbe 0x495d40
cmp dword [ebx + 0xb0], 0
je 0x4966c5
cmp edi, dword [esp + 0xc]
mov ecx, dword [esp + 8]
mov dword [ebx + 0xb8], edi
jae 0x496580
movzx ecx, byte [ecx + edi]
mov edx, dword [ebp + 0xc]
movzx esi, byte [edx + ecx + 0x158]
mov edx, eax
and edx, 0x7ffffff
add edx, esi
mov esi, dword [ebx + 0x7c]
cmp edx, esi
jae 0x49662a
mov esi, dword [ebx + 0x74]
mov edx, dword [esi + edx*4]
test edx, edx
js 0x495e9e
mov esi, dword [esp + 4]
jmp 0x495e80
cmp edi, esi
jb 0x495cd2
mov ecx, dword [ebx + 0x74]
dec edi
mov ebx, edi
mov dword [esp + 0x1c], ecx
nop
mov edx, dword [esp + 8]
mov esi, dword [ebp + 0xc]
mov ecx, dword [esp + 0x1c]
lea edi, [ebx + 1]
movzx edx, byte [edx + ebx + 1]
movzx edx, byte [esi + edx + 0x158]
add edx, eax
mov edx, dword [ecx + edx*4]
cmp edx, 0x7ffffff
ja 0x495df6
cmp edi, dword [esp + 0x18]
jbe 0x495df6
mov esi, dword [esp + 8]
mov ecx, dword [ebp + 0xc]
mov edi, dword [esp + 0x1c]
movzx eax, byte [esi + ebx]
movzx eax, byte [ecx + eax + 0x158]
add eax, edx
mov eax, dword [edi + eax*4]
cmp eax, 0x7ffffff
ja 0x495e02
movzx edx, byte [esi + ebx - 1]
movzx edx, byte [ecx + edx + 0x158]
mov ecx, dword [esp + 4]
add edx, eax
mov edx, dword [edi + edx*4]
cmp edx, 0x7ffffff
ja 0x495e12
movzx eax, byte [esi + ebx - 2]
mov esi, dword [ebp + 0xc]
movzx eax, byte [esi + eax + 0x158]
add eax, edx
mov eax, dword [edi + eax*4]
cmp eax, 0x7ffffff
ja 0x495e1f
lea edi, [ebx - 4]
add ebx, 0xfffffffd
cmp ebx, ecx
mov ebx, edi
jae 0x495d50
mov ebx, dword [ebp + 0x10]
mov esi, ecx
inc edi
jmp 0x495cd2
mov esi, dword [esp + 4]
mov ebx, eax
test edx, edx
jns 0x495e7d
jmp 0x495e2e
mov esi, dword [esp + 4]
mov edi, ebx
mov ebx, edx
mov edx, eax
test edx, edx
jns 0x495e7d
jmp 0x495e2e
dec ebx
mov edi, ebx
mov ebx, eax
mov esi, ecx
test edx, edx
jns 0x495e7d
jmp 0x495e2e
add ebx, 0xfffffffe
mov edi, ebx
mov ebx, edx
mov edx, eax
mov esi, ecx
test edx, edx
jns 0x495e7d
mov esi, dword [ebp + 0x10]
cmp dword [esi + 0xb0], 0
je 0x4966c5
cmp edi, dword [esp + 0xc]
mov ecx, dword [esp + 0x1c]
mov dword [esi + 0xb8], edi
jae 0x49665a
mov eax, dword [esp + 8]
mov edx, dword [ebp + 0xc]
mov esi, dword [esi + 0x7c]
movzx eax, byte [eax + edi]
movzx edx, byte [edx + eax + 0x158]
add edx, ebx
cmp edx, esi
jae 0x49662a
mov edx, dword [ecx + edx*4]
test edx, edx
js 0x495ec5
mov esi, dword [esp + 4]
mov ebx, dword [ebp + 0x10]
cmp edx, 0x8000000
jb 0x495cd0
mov eax, edx
and eax, 0x10000000
jne 0x495cd0
jmp 0x495ff4
mov edx, dword [ebp + 0xc]
shl ecx, 8
mov dword [esp + 0x20], edx
mov dword [esp + 0x24], ebx
push ecx
push eax
lea eax, [esp + 0x28]
push eax
call fcn.0048c500
add esp, 0xc
mov esi, dword [esp + 4]
test eax, eax
je 0x495e80
jmp 0x495eed
mov ecx, dword [ebp + 0xc]
mov edx, dword [ebp + 0x10]
shl eax, 8
mov dword [esp + 0x20], ecx
mov dword [esp + 0x24], edx
push eax
push ebx
lea eax, [esp + 0x28]
push eax
call fcn.0048c500
add esp, 0xc
mov esi, dword [esp + 4]
test eax, eax
je 0x495e7d
mov eax, dword [0x6074b4]
movzx eax, byte [eax]
push 4
push 0xc
call fcn.00401610
add esp, 8
test eax, eax
je 0x4966db
mov byte [eax], 1
jmp 0x49516c
mov ecx, dword [ebx + 0xb4]
cmp dword [ebx + 0xb0], 0
mov dword [ebx + 0xb0], 0
je 0x4966e9
mov edi, dword [esp + 4]
mov edx, esi
sub edx, ecx
neg edx
sub edi, ecx
mov ecx, dword [esp + 4]
cmovb edi, edx
add dword [ebx + 0x70], edi
test ecx, ecx
je 0x496080
lea edi, [ecx - 1]
mov ecx, dword [esp + 0xc]
cmp edi, ecx
jae 0x496676
mov ecx, dword [esp + 8]
mov edx, dword [ebp + 0xc]
mov ebx, dword [ebp + 0x10]
movzx ecx, byte [ecx + edi]
mov byte [esp + 8], cl
movzx ecx, cl
movzx esi, byte [edx + ecx + 0x158]
mov edx, eax
and edx, 0x7ffffff
add edx, esi
mov esi, dword [ebx + 0x7c]
cmp edx, esi
jae 0x49662a
mov esi, dword [ebx + 0x74]
mov edx, dword [esi + edx*4]
mov esi, dword [esp + 4]
test edx, edx
js 0x4963ed
test edx, 0x8000000
jne 0x49616c
test edx, 0x20000000
je 0x4960c7
mov eax, dword [0x6074b4]
movzx eax, byte [eax]
push 4
push 0xc
call fcn.00401610
add esp, 8
test eax, eax
je 0x4966db
movzx ecx, byte [esp + 8]
mov byte [eax], 0
mov esi, edi
mov byte [eax + 1], cl
mov ecx, dword [ebp + 8]
mov dword [eax + 4], esi
mov dword [ecx + 4], eax
mov dword [ecx], 2
jmp 0x49650f
test edx, 0x8000000
jne 0x4960ce
test edx, 0x40000000
jne 0x496202
test edx, 0x20000000
je 0x496729
mov eax, dword [ebx + 0xb4]
cmp dword [ebx + 0xb0], 0
mov esi, dword [esp + 8]
mov dword [ebx + 0xb0], 0
je 0x4966e9
mov ecx, edi
mov edx, edi
sub ecx, eax
neg ecx
sub edx, eax
mov eax, dword [esp + 0xc]
cmovb edx, ecx
add dword [ebx + 0x70], edx
cmp edi, eax
jae 0x4966ba
mov eax, dword [0x6074b4]
movzx ebx, byte [esi + edi]
movzx eax, byte [eax]
push 4
push 0xc
call fcn.00401610
add esp, 8
test eax, eax
je 0x4966db
mov byte [eax], 0
mov byte [eax + 1], bl
jmp 0x49516c
mov edi, dword [ebp + 0xc]
mov edx, eax
and edx, 0x7ffffff
movzx ecx, byte [edi + 0x257]
shl ecx, 0x10
add ecx, 0x10001
mov esi, ecx
shr esi, 0x10
add edx, esi
mov esi, dword [ebx + 0x7c]
cmp edx, esi
jae 0x49668f
mov esi, dword [ebx + 0x74]
mov edx, dword [esi + edx*4]
test edx, edx
js 0x496519
test edx, 0x8000000
jne 0x4961e7
xor eax, eax
jmp 0x49628b
mov ecx, dword [esp + 0x14]
xor eax, eax
cmp dword [ecx + 0x148], 1
je 0x49612a
and edx, 0x7ffffff
mov ecx, dword [esp + 0x10]
shr edx, cl
mov ecx, dword [ebx + 0x94]
cmp edx, ecx
jae 0x496696
mov esi, dword [ebx + 0x8c]
mov ecx, dword [esi + edx*8 + 4]
test ecx, ecx
je 0x49664f
mov edx, dword [esi + edx*8]
test byte [edx + 8], 2
je 0x49612a
cmp ecx, 8
jbe 0x496765
add ecx, 0xfffffff7
cmp ecx, 3
jbe 0x496777
mov eax, dword [edx + 0x11]
mov ecx, dword [ebx + 0xb4]
cmp dword [ebx + 0xb0], 0
mov dword [ebx + 0xb0], 0
je 0x4966e9
mov edx, edi
mov esi, edi
sub edx, ecx
neg edx
sub esi, ecx
mov ecx, dword [ebp + 8]
cmovb esi, edx
inc edi
add dword [ebx + 0x70], esi
mov dword [ecx], 1
mov dword [ecx + 4], eax
mov dword [ecx + 8], edi
jmp 0x49650f
mov ecx, dword [esp + 0x14]
xor edi, edi
mov eax, 1
cmp dword [ecx + 0x148], 1
je 0x49628b
mov ecx, dword [esp + 0x10]
and edx, 0x7ffffff
mov esi, dword [ebp + 0x10]
shr edx, cl
mov ecx, dword [esi + 0x94]
cmp edx, ecx
jae 0x496696
mov ecx, dword [esi + 0x8c]
mov esi, dword [ecx + edx*8 + 4]
test esi, esi
je 0x49664f
mov ecx, dword [ecx + edx*8]
test byte [ecx + 8], 2
je 0x496287
cmp esi, 8
jbe 0x4967b5
add esi, 0xfffffff7
cmp esi, 3
ja 0x496284
push 0x5b08a0
push esi
push 4
call fcn.004287f0
add esp, 0xc
ud2
mov ecx, dword [esp + 0x14]
xor esi, esi
mov eax, 1
cmp dword [ecx + 0x148], 1
jne 0x496235
xor edi, edi
jmp 0x49628b
mov eax, dword [ebx + 0xb4]
cmp dword [ebx + 0xb0], 0
mov dword [ebx + 0xb0], 0
je 0x4966e9
mov ecx, edi
sub ecx, eax
neg ecx
sub edi, eax
cmovb edi, ecx
mov ecx, dword [ebp + 8]
add dword [ebx + 0x70], edi
jmp 0x494fbf
mov ecx, dword [esp + 0x10]
and edx, 0x7ffffff
shr edx, cl
mov ecx, dword [ebx + 0x94]
cmp edx, ecx
jae 0x496696
mov ecx, dword [ebx + 0x8c]
mov ebx, dword [ecx + edx*8 + 4]
test ebx, ebx
je 0x49664f
mov ecx, dword [ecx + edx*8]
mov edi, 0
test byte [ecx + 8], 2
je 0x49628b
cmp ebx, 8
jbe 0x4967c7
add ebx, 0xfffffff7
cmp ebx, 3
jbe 0x4967d9
mov edi, dword [ecx + 0x11]
mov esi, dword [esp + 4]
mov ecx, dword [ebp + 8]
mov dword [ecx], eax
jmp 0x496509
and eax, 0x7ffffff
mov ecx, dword [esp + 0x44]
shr eax, cl
mov ecx, dword [ebx + 0x94]
cmp eax, ecx
jae 0x4966b0
mov edx, dword [ebx + 0x8c]
mov dword [esp + 0x3c], 0
mov dword [esp + 0x10], 1
mov ecx, dword [edx + eax*8 + 4]
test ecx, ecx
je 0x49664f
mov eax, dword [edx + eax*8]
mov edx, 0
test byte [eax + 8], 2
je 0x496612
jmp 0x4965ee
mov edx, dword [ebp + 0xc]
shl ecx, 8
mov dword [esp + 0x20], edx
mov edx, dword [ebp + 0x10]
mov dword [esp + 0x24], edx
lea edx, [esp + 0x20]
push ecx
push eax
push edx
call fcn.0048c500
add esp, 0xc
test eax, eax
jne 0x496440
jmp 0x49549d
lea edx, [esp + 0x20]
mov dword [esp + 0x20], edi
mov dword [esp + 0x24], ebx
push ecx
push eax
push edx
call fcn.0048c500
add esp, 0xc
test eax, eax
jne 0x49655a
jmp 0x495a15
mov eax, dword [ebp + 0xc]
shl ecx, 8
mov dword [esp + 0x20], eax
mov eax, dword [ebp + 0x10]
mov dword [esp + 0x24], eax
lea eax, [esp + 0x20]
push ecx
push edx
push eax
call fcn.0048c500
add esp, 0xc
test eax, eax
mov ecx, eax
jne 0x496440
mov eax, edx
test eax, 0x8000000
je 0x4953f0
mov ebx, dword [ebp + 0xc]
xor edi, edi
mov edx, 1
mov ecx, dword [ebx + 0x278]
cmp dword [ecx + 0x148], 1
je 0x496504
movzx ecx, byte [ebx + 0x27c]
mov esi, dword [ebp + 0x10]
and eax, 0x7ffffff
shr eax, cl
mov ecx, dword [esi + 0x94]
cmp eax, ecx
jae 0x4966b0
mov esi, dword [esi + 0x8c]
mov ecx, dword [esi + eax*8 + 4]
test ecx, ecx
je 0x49664f
mov eax, dword [esi + eax*8]
test byte [eax + 8], 2
jne 0x4963cf
mov esi, dword [esp + 4]
jmp 0x496504
mov esi, dword [esp + 4]
cmp ecx, 8
jbe 0x496765
add ecx, 0xfffffff7
cmp ecx, 3
ja 0x496501
jmp 0x496777
mov edx, dword [ebp + 0xc]
shl ecx, 8
mov dword [esp + 0x20], edx
mov edx, dword [ebp + 0x10]
mov dword [esp + 0x24], edx
push ecx
push eax
lea eax, [esp + 0x28]
push eax
call fcn.0048c500
add esp, 0xc
test eax, eax
jne 0x496440
jmp 0x495f9f
mov eax, dword [ebp + 0xc]
shl ecx, 8
mov dword [esp + 0x20], eax
mov eax, dword [ebp + 0x10]
mov dword [esp + 0x24], eax
push ecx
push edx
lea eax, [esp + 0x28]
push eax
call fcn.0048c500
add esp, 0xc
test eax, eax
mov ecx, eax
je 0x49658f
mov eax, dword [0x6074b4]
movzx eax, byte [eax]
push 4
push 0xc
call fcn.00401610
add esp, 8
test eax, eax
je 0x4966db
mov byte [eax], 1
jmp 0x495fe0
mov dword [esp + 0x20], edi
mov dword [esp + 0x24], ebx
lea eax, [esp + 0x20]
push ecx
push edx
push eax
call fcn.0048c500
add esp, 0xc
test eax, eax
mov ecx, eax
jne 0x49655a
mov eax, edx
test eax, 0x8000000
je 0x495ac7
mov ecx, dword [edi + 0x278]
xor esi, esi
mov edx, 1
cmp dword [ecx + 0x148], 1
jne 0x4964ac
xor edi, edi
jmp 0x496504
movzx ecx, byte [edi + 0x27c]
and eax, 0x7ffffff
shr eax, cl
mov ecx, dword [ebx + 0x94]
cmp eax, ecx
jae 0x4966b0
mov edi, dword [ebx + 0x8c]
mov ecx, dword [edi + eax*8 + 4]
test ecx, ecx
je 0x49664f
mov eax, dword [edi + eax*8]
mov edi, 0
test byte [eax + 8], 2
je 0x496504
cmp ecx, 8
jbe 0x496765
mov esi, dword [esp + 4]
add ecx, 0xfffffff7
cmp ecx, 3
jbe 0x496777
mov edi, dword [eax + 0x11]
mov ecx, dword [ebp + 8]
mov dword [ecx], edx
mov dword [ecx + 4], edi
mov dword [ecx + 8], esi
mov eax, ecx
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
mov dword [esp + 0x20], edi
mov dword [esp + 0x24], ebx
push ecx
push eax
lea eax, [esp + 0x28]
push eax
call fcn.0048c500
add esp, 0xc
test eax, eax
jne 0x49655a
jmp 0x4960bb
mov dword [esp + 0x20], edi
mov dword [esp + 0x24], ebx
push ecx
push edx
lea eax, [esp + 0x28]
push eax
call fcn.0048c500
add esp, 0xc
test eax, eax
mov ecx, eax
je 0x496633
mov eax, dword [0x6074b4]
movzx eax, byte [eax]
push 4
push 0xc
call fcn.00401610
add esp, 8
test eax, eax
je 0x4966db
mov byte [eax], 1
xor esi, esi
jmp 0x495fe0
push 0x5ae290
push dword [esp + 0x10]
push edi
jmp 0x4966a6
mov eax, edx
test eax, 0x8000000
je 0x495990
mov ecx, dword [esp + 0x48]
xor edx, edx
cmp dword [ecx + 0x148], 1
je 0x496606
mov edx, dword [ebp + 0x10]
and eax, 0x7ffffff
mov ecx, dword [esp + 0x44]
shr eax, cl
mov ecx, dword [edx + 0x94]
cmp eax, ecx
jae 0x4966b0
mov edx, dword [edx + 0x8c]
mov dword [esp + 0x10], 1
mov ecx, dword [edx + eax*8 + 4]
test ecx, ecx
je 0x49664f
mov eax, dword [edx + eax*8]
test byte [eax + 8], 2
jne 0x4965ee
mov dword [esp + 0x3c], esi
xor edx, edx
jmp 0x496612
cmp ecx, 8
jbe 0x496765
add ecx, 0xfffffff7
cmp ecx, 3
jbe 0x496777
mov edx, dword [eax + 0x11]
mov dword [esp + 0x10], 1
mov dword [esp + 0x3c], esi
mov ecx, dword [ebp + 8]
mov eax, dword [esp + 0x10]
mov dword [ecx], eax
mov dword [ecx + 4], edx
mov eax, dword [esp + 0x3c]
mov dword [ecx + 8], eax
jmp 0x49650f
push 0x5adc18
push esi
push edx
jmp 0x4966a6
mov eax, edx
mov edx, dword [esp + 0x14]
test eax, 0x8000000
jne 0x495b7e
jmp 0x496612
push 0x5adc18
push esi
push ecx
jmp 0x4966a6
push 0x5b0954
push 0
push 0
jmp 0x4966a6
push 0x5ae280
jmp 0x496585
push 0x5adfc8
push ecx
push ebx
jmp 0x4966a6
push 0x5adc18
push ebx
push edx
jmp 0x4966a6
push 0x5ae2e0
push ecx
jmp 0x496589
push 0x5ae2e0
jmp 0x4966bf
push 0x5adc18
jmp 0x4966a4
push 0x5adc28
jmp 0x49662f
push 0x5adfc8
push ecx
push edx
jmp 0x4966a6
push 0x5adc28
push esi
push eax
call fcn.00425270
add esp, 0xc
ud2
push 0x5adfc8
jmp 0x4959d3
push 0x5ae2b0
push eax
jmp 0x496589
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 dword [esp + 0x20], eax
jmp 0x49678d
lea eax, [esp + 0x40]
mov dword [esp + 0x20], 0x5ae258
mov dword [esp + 0x24], 1
mov dword [esp + 0x30], 0
mov dword [esp + 0x28], eax
mov dword [esp + 0x2c], 0
push 0x5ae2a0
lea eax, [esp + 0x24]
push eax
call fcn.00425150
add esp, 8
ud2
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
mov dword [esp + 0x20], edx
mov dword [esp + 0x24], 0
lea eax, [esp + 0x20]
push 0x5adfd8
push 0x5ad194
push eax
push 0x2b
push 0x5ad158
call fcn.004254f0
add esp, 0x14
ud2
push 0x5b0984
push esi
push 9
call fcn.00428790
add esp, 0xc
ud2
push 0x5b0984
push ebx
push 9
call fcn.00428790
add esp, 0xc
ud2
push 0x5b08a0
push ebx
push 4
call fcn.004287f0
add esp, 0xc
ud2