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

Disassembly:
push ebp
push ebx
push edi
push esi
sub esp, 0x90
mov ebp, dword [esp + 0xa8]
mov dword [esp], edx
mov eax, dword [ebp + 0x10]
mov esi, dword [ebp + 0x14]
cmp eax, esi
jbe 0x611789
mov dword [ecx], 0
jmp 0x612a00
cmp byte [ebp + 0x18], 0
mov dword [esp + 0xc], eax
mov dword [esp + 4], ecx
je 0x61194a
mov ebx, dword [esp]
mov edx, dword [ebx + 0x264]
mov eax, dword [ebx + 0x258]
mov ecx, dword [ebx + 0x25c]
mov edi, dword [ebx + 0x260]
or edi, dword [ebx + 0x270]
or eax, dword [ebx + 0x268]
or edx, dword [ebx + 0x274]
or ecx, dword [ebx + 0x26c]
or eax, edi
or ecx, edx
or ecx, eax
mov eax, ebp
mov ebp, dword [ebp + 8]
mov eax, dword [eax + 0xc]
mov dword [esp + 0x10], eax
je 0x61191f
cmp esi, eax
jae 0x61191f
movzx ecx, byte [ebp + esi]
mov eax, ecx
mov dword [esp + 0x14], ecx
mov dword [esp + 0x8c], 0
mov dword [esp + 0x88], 0
mov dword [esp + 0x84], 0
mov dword [esp + 0x80], 1
mov dword [esp + 0x7c], 0
mov dword [esp + 0x78], 0
mov dword [esp + 0x74], 0
mov dword [esp + 0x70], 0
mov ch, cl
and al, 0x78
and ch, 7
shr al, 3
mov cl, ch
neg al
movsx ebx, al
mov edx, dword [esp + ebx + 0x88]
mov edi, dword [esp + ebx + 0x8c]
mov byte [esp + 0x38], ch
shld edi, edx, cl
shl edx, cl
not cl
mov dword [esp + 8], edi
mov eax, dword [esp + ebx + 0x84]
mov ebx, dword [esp + ebx + 0x80]
mov dword [esp + 0x18], ebp
mov edi, eax
shr edi, 1
shr edi, cl
mov cl, ch
shld eax, ebx, cl
mov ecx, dword [esp]
or edi, edx
mov edx, dword [esp + 0x14]
lea ebp, [ecx + 0x258]
movzx ecx, byte [esp + 0x38]
shr edx, 3
and edx, 0x10
and edi, dword [ebp + edx + 8]
shl ebx, cl
mov ecx, ebp
mov ebp, dword [esp + 8]
and eax, dword [ecx + edx + 4]
and ebx, dword [ecx + edx]
and ebp, dword [ecx + edx + 0xc]
or ebx, edi
mov dword [esp + 8], ebp
mov ebp, dword [esp + 0x18]
or eax, dword [esp + 8]
or eax, ebx
mov eax, dword [esp + 0x10]
je 0x61191f
movzx eax, byte [0x919aa5]
mov eax, dword [0x919820]
test eax, eax
jne 0x6118fa
call dword [sym.imp.kernel32.dll_GetProcessHeap]
test eax, eax
je 0x612b37
mov dword [0x919820], eax
push 0xc
push 0
push eax
call dword [sym.imp.kernel32.dll_HeapAlloc]
test eax, eax
je 0x612b37
mov ecx, dword [esp + 0x14]
mov byte [eax], 0
mov byte [eax + 1], cl
mov dword [eax + 4], esi
jmp 0x6129f3
cmp esi, eax
mov bl, 2
jae 0x611b85
mov edi, dword [esp + 0xa4]
test ebp, ebp
je 0x611b8c
movzx eax, byte [ebp + esi]
mov ecx, dword [esp]
movzx ebx, byte [ecx + eax + 0x58]
jmp 0x611b8c
mov ebx, dword [esp]
mov edx, dword [ebx + 0x264]
mov eax, dword [ebx + 0x258]
mov ecx, dword [ebx + 0x25c]
mov edi, dword [ebx + 0x260]
or edi, dword [ebx + 0x270]
or eax, dword [ebx + 0x268]
or edx, dword [ebx + 0x274]
or ecx, dword [ebx + 0x26c]
or eax, edi
or ecx, edx
or ecx, eax
mov ecx, dword [ebp + 8]
mov eax, dword [ebp + 0xc]
mov dword [esp + 0x14], eax
mov dword [esp + 8], ecx
je 0x611ab1
cmp esi, eax
jae 0x611ab1
movzx eax, byte [ecx + esi]
mov dword [esp + 0x6c], 0
mov dword [esp + 0x68], 0
mov dword [esp + 0x64], 0
mov dword [esp + 0x60], 1
mov dword [esp + 0x5c], 0
mov dword [esp + 0x58], 0
mov dword [esp + 0x54], 0
mov dword [esp + 0x50], 0
mov ecx, eax
mov ch, al
and cl, 0x78
and ch, 7
shr cl, 3
neg cl
movsx ebx, cl
mov cl, ch
mov edx, dword [esp + ebx + 0x68]
mov edi, dword [esp + ebx + 0x6c]
shld edi, edx, cl
shl edx, cl
not cl
mov dword [esp + 0x10], edi
mov edi, dword [esp + ebx + 0x64]
mov dword [esp + 0x18], eax
mov ebx, dword [esp + ebx + 0x60]
mov ebp, edi
shr ebp, 1
shr ebp, cl
mov cl, ch
or ebp, edx
mov edx, eax
mov eax, dword [esp]
shld edi, ebx, cl
mov cl, ch
shl ebx, cl
mov ecx, dword [esp + 0x10]
shr edx, 3
and edx, 0x10
add eax, 0x258
and ecx, dword [eax + edx + 0xc]
and edi, dword [eax + edx + 4]
and ebp, dword [eax + edx + 8]
and ebx, dword [eax + edx]
mov eax, dword [esp + 0x14]
mov dword [esp + 0x10], ecx
or ebx, ebp
mov ebp, dword [esp + 0xa8]
mov ecx, dword [esp + 8]
or edi, dword [esp + 0x10]
or edi, ebx
je 0x611ab1
movzx eax, byte [0x919aa5]
mov eax, dword [0x919820]
test eax, eax
jne 0x611a8a
call dword [sym.imp.kernel32.dll_GetProcessHeap]
test eax, eax
je 0x612b37
mov dword [0x919820], eax
push 0xc
push 0
push eax
call dword [sym.imp.kernel32.dll_HeapAlloc]
test eax, eax
je 0x612b37
mov ebp, eax
mov byte [eax], 0
mov eax, dword [esp + 0x18]
mov byte [ebp + 1], al
mov dword [ebp + 4], esi
jmp 0x61237a
cmp esi, eax
mov bl, 2
jae 0x6124d4
mov edi, dword [esp + 0xa4]
test ecx, ecx
je 0x611ad2
movzx eax, byte [ecx + esi]
mov edx, dword [esp]
movzx ebx, byte [edx + eax + 0x58]
mov eax, dword [ebp]
movzx ecx, bl
test eax, eax
je 0x611ae8
cmp eax, 1
jne 0x612323
add ecx, 6
mov edx, dword [edi + 0x88]
cmp ecx, edx
jae 0x612474
mov eax, dword [edi + 0x80]
mov ebp, dword [eax + ecx*4]
test ebp, ebp
js 0x612716
mov ebx, dword [esp + 0xc]
cmp ebx, esi
jne 0x611ec3
test ebx, ebx
je 0x61250d
mov edx, dword [esp + 0x14]
lea esi, [ebx - 1]
cmp esi, edx
jae 0x612ac5
mov eax, dword [esp + 8]
mov edx, dword [edi + 0x7c]
movzx ecx, byte [eax + esi]
mov eax, dword [esp]
movzx eax, byte [eax + ecx + 0x158]
mov dword [esp + 8], ecx
mov ecx, ebp
and ecx, 0x7ffffff
add ecx, eax
cmp ecx, edx
jae 0x612a0b
mov eax, dword [edi + 0x74]
mov edi, dword [eax + ecx*4]
test edi, edi
js 0x6128bb
mov ecx, dword [esp + 8]
test edi, 0x8000000
jne 0x6128f9
test edi, 0x20000000
je 0x612553
jmp 0x6126f9
mov edi, dword [esp + 0xa4]
mov eax, dword [esp + 0xa8]
movzx ecx, bl
mov eax, dword [eax]
test eax, eax
je 0x611ba8
cmp eax, 1
jne 0x611e60
add ecx, 6
mov edx, dword [edi + 0x88]
cmp ecx, edx
jae 0x612474
mov eax, dword [edi + 0x80]
mov eax, dword [eax + ecx*4]
test eax, eax
js 0x61256e
mov ebx, dword [esp + 0xc]
cmp ebx, esi
je 0x612274
dec esi
cmp dword [edi + 0xb0], 1
jne 0x611bfe
mov ecx, dword [edi + 0xb8]
mov edx, dword [edi + 0xb4]
mov edi, ecx
sub edi, edx
neg edi
sub ecx, edx
cmovb ecx, edi
mov edi, dword [esp + 0xa4]
add dword [edi + 0x70], ecx
mov ecx, ebx
mov edx, 0xffffffff
mov dword [edi + 0xb0], 1
mov dword [edi + 0xb4], esi
mov dword [edi + 0xb8], esi
add ecx, 3
cmovae edx, ecx
mov dword [esp + 8], edx
jmp 0x611c44
mov eax, edi
mov edi, dword [esp + 0xa4]
cmp esi, ebx
lea esi, [esi - 1]
je 0x612247
cmp eax, 0x7ffffff
jbe 0x611cc0
cmp dword [edi + 0xb0], 0
je 0x612b1e
mov edx, dword [esp + 0x10]
mov dword [edi + 0xb8], esi
cmp esi, edx
jae 0x612a7f
movzx ebx, byte [ebp + esi]
mov ecx, dword [esp]
movzx edx, byte [ecx + ebx + 0x158]
mov ecx, eax
and ecx, 0x7ffffff
add ecx, edx
mov edx, dword [edi + 0x7c]
cmp ecx, edx
jae 0x612a0b
mov edx, dword [edi + 0x74]
mov edi, dword [edx + ecx*4]
test edi, edi
js 0x611e1d
mov ebx, dword [esp + 0xc]
cmp edi, 0x8000000
jb 0x611c30
mov eax, edi
and eax, 0x10000000
jne 0x611c30
jmp 0x612483
cmp esi, ebx
jb 0x611c39
mov ebx, dword [edi + 0x74]
dec esi
mov ecx, esi
nop
movzx edx, byte [ebp + ecx + 1]
mov edi, dword [esp]
lea esi, [ecx + 1]
movzx edx, byte [edi + edx + 0x158]
add edx, eax
mov edi, dword [ebx + edx*4]
cmp edi, 0x7ffffff
ja 0x611d6b
cmp esi, dword [esp + 8]
jbe 0x611d6b
movzx eax, byte [ebp + ecx]
mov esi, dword [esp]
movzx eax, byte [esi + eax + 0x158]
add eax, edi
mov eax, dword [ebx + eax*4]
cmp eax, 0x7ffffff
ja 0x611d7a
movzx edx, byte [ebp + ecx - 1]
movzx edx, byte [esi + edx + 0x158]
add edx, eax
mov edi, dword [ebx + edx*4]
cmp edi, 0x7ffffff
ja 0x611d68
movzx eax, byte [ebp + ecx - 2]
movzx eax, byte [esi + eax + 0x158]
add eax, edi
mov eax, dword [ebx + eax*4]
cmp eax, 0x7ffffff
ja 0x611d77
lea esi, [ecx - 4]
add ecx, 0xfffffffd
cmp ecx, dword [esp + 0xc]
mov ecx, esi
jae 0x611cd0
mov edi, dword [esp + 0xa4]
mov ebx, dword [esp + 0xc]
inc esi
jmp 0x611c39
dec ecx
mov esi, ecx
mov edx, eax
test edi, edi
jns 0x611c9d
jmp 0x611d88
add ecx, 0xfffffffe
mov edx, edi
mov esi, ecx
mov edi, eax
test edi, edi
jns 0x611c9d
mov eax, dword [esp + 0xa4]
cmp dword [eax + 0xb0], 0
je 0x612b1e
cmp esi, dword [esp + 0x10]
mov dword [eax + 0xb8], esi
jae 0x612ad6
movzx edi, byte [ebp + esi]
mov ecx, dword [esp]
mov eax, dword [eax + 0x7c]
movzx ecx, byte [ecx + edi + 0x158]
mov dword [esp + 0x14], edi
add ecx, edx
cmp ecx, eax
jae 0x612a90
mov edi, dword [ebx + ecx*4]
test edi, edi
jns 0x611c9d
mov eax, dword [esp]
mov edi, dword [esp + 0x14]
lea ecx, [esp + 0x1c]
mov dword [esp + 0x1c], eax
mov eax, dword [esp + 0xa4]
shl edi, 8
mov dword [esp + 0x20], eax
push edi
call fcn.0071d510
add esp, 4
mov ebx, dword [esp + 0xc]
test eax, eax
jne 0x6128b4
mov edi, edx
cmp edi, 0x8000000
jae 0x611ca9
jmp 0x611c30
mov ecx, dword [esp]
shl ebx, 8
mov edx, eax
mov dword [esp + 0x1c], ecx
mov ecx, dword [esp + 0xa4]
mov dword [esp + 0x20], ecx
lea ecx, [esp + 0x1c]
push ebx
call fcn.0071d510
add esp, 4
test eax, eax
jne 0x6128b4
mov ebx, dword [esp + 0xc]
mov edi, edx
cmp edi, 0x8000000
jae 0x611ca9
jmp 0x611c30
mov edx, dword [esp]
mov eax, dword [esp + 0xa8]
mov byte [esp + 8], bl
mov ebx, dword [eax + 4]
test byte [edx + 0x4d], 1
jne 0x612448
movzx eax, byte [0x919aa5]
mov eax, dword [0x919820]
test eax, eax
jne 0x611e9e
call dword [sym.imp.kernel32.dll_GetProcessHeap]
test eax, eax
je 0x612b37
mov dword [0x919820], eax
push 0xc
push 0
push eax
call dword [sym.imp.kernel32.dll_HeapAlloc]
test eax, eax
je 0x612b37
mov byte [eax], 3
mov dword [eax + 4], 2
mov dword [eax + 8], ebx
jmp 0x6129f3
dec esi
cmp dword [edi + 0xb0], 1
jne 0x611ee7
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, ebx
mov ecx, 0xffffffff
mov dword [edi + 0xb0], 1
mov dword [edi + 0xb4], esi
mov dword [edi + 0xb8], esi
mov dword [esp + 0x38], 0
add eax, 3
cmovae ecx, eax
mov eax, dword [esp]
mov dword [esp + 0x10], ecx
mov ecx, dword [eax + 0x278]
mov eax, dword [eax + 0x27c]
and eax, 0x1f
mov dword [esp + 0x40], ecx
mov dword [esp + 0x4c], eax
jmp 0x611f5a
mov eax, dword [eax + 0x11]
mov dword [esp + 0x18], eax
lea eax, [esi + 1]
mov dword [esp + 0x38], 1
mov dword [esp + 0x3c], eax
mov edi, dword [esp + 0xa4]
cmp esi, ebx
lea esi, [esi - 1]
je 0x61238c
cmp ebp, 0x7ffffff
jbe 0x611fd0
cmp dword [edi + 0xb0], 0
je 0x612b1e
cmp esi, dword [esp + 0x14]
mov dword [edi + 0xb8], esi
jae 0x612a7b
mov eax, dword [esp + 8]
mov ecx, dword [esp]
movzx eax, byte [eax + esi]
movzx edx, byte [ecx + eax + 0x158]
mov ecx, ebp
and ecx, 0x7ffffff
add ecx, edx
mov edx, dword [edi + 0x7c]
cmp ecx, edx
jae 0x612a0b
mov edx, dword [edi + 0x74]
mov ecx, dword [edx + ecx*4]
test ecx, ecx
js 0x61214a
mov ebp, ecx
cmp ebp, 0x8000000
jae 0x612180
jmp 0x611f4f
cmp esi, ebx
jb 0x611f4f
mov edi, dword [edi + 0x74]
dec esi
mov eax, esi
nop
mov ecx, dword [esp + 8]
mov edx, dword [esp]
lea esi, [eax + 1]
movzx ecx, byte [ecx + eax + 1]
movzx ecx, byte [edx + ecx + 0x158]
add ecx, ebp
mov ecx, dword [edi + ecx*4]
cmp ecx, 0x7ffffff
ja 0x612081
cmp esi, dword [esp + 0x10]
jbe 0x612081
mov ebp, dword [esp + 8]
mov esi, dword [esp]
movzx edx, byte [ebp + eax]
movzx edx, byte [esi + edx + 0x158]
add edx, ecx
mov ebx, dword [edi + edx*4]
cmp ebx, 0x7ffffff
ja 0x6120a5
movzx ecx, byte [ebp + eax - 1]
movzx ecx, byte [esi + ecx + 0x158]
add ecx, ebx
mov ecx, dword [edi + ecx*4]
cmp ecx, 0x7ffffff
ja 0x612119
movzx edx, byte [ebp + eax - 2]
movzx edx, byte [esi + edx + 0x158]
add edx, ecx
mov ebp, dword [edi + edx*4]
cmp ebp, 0x7ffffff
ja 0x61212c
mov ebx, dword [esp + 0xc]
lea esi, [eax - 4]
add eax, 0xfffffffd
cmp eax, ebx
mov eax, esi
jae 0x611fe0
inc esi
jmp 0x611f48
mov edx, ebp
mov ebp, dword [esp + 8]
test ecx, ecx
js 0x6120b3
mov edi, dword [esp + 0xa4]
mov ebp, ecx
cmp ebp, 0x8000000
jae 0x612180
jmp 0x611f4f
mov edx, ecx
mov esi, eax
mov ecx, ebx
mov ebx, dword [esp + 0xc]
test ecx, ecx
jns 0x61208b
mov eax, dword [esp + 0xa4]
cmp dword [eax + 0xb0], 0
je 0x612b1e
mov ebx, dword [esp + 0x14]
mov dword [eax + 0xb8], esi
cmp esi, ebx
jae 0x612aeb
movzx ebx, byte [ebp + esi]
mov ecx, dword [esp]
mov eax, dword [eax + 0x7c]
movzx ecx, byte [ecx + ebx + 0x158]
add ecx, edx
cmp ecx, eax
jae 0x612a90
mov ebp, dword [edi + ecx*4]
test ebp, ebp
js 0x612206
mov edi, dword [esp + 0xa4]
mov ebx, dword [esp + 0xc]
cmp ebp, 0x8000000
jae 0x612180
jmp 0x611f4f
dec eax
mov edx, ebx
mov esi, eax
mov ebx, dword [esp + 0xc]
test ecx, ecx
jns 0x61208b
jmp 0x6120b3
mov edx, ecx
mov ecx, ebp
mov ebx, dword [esp + 0xc]
mov ebp, dword [esp + 8]
add eax, 0xfffffffe
mov esi, eax
test ecx, ecx
jns 0x61208b
jmp 0x6120b3
mov ecx, dword [esp]
shl eax, 8
mov edx, ebp
mov dword [esp + 0x1c], ecx
mov dword [esp + 0x20], edi
lea ecx, [esp + 0x1c]
push eax
call fcn.0071d510
add esp, 4
test eax, eax
jne 0x6128b4
mov ebp, edx
cmp ebp, 0x8000000
jb 0x611f4f
nop dword [eax]
mov eax, ebp
and eax, 0x10000000
jne 0x611f4f
test ebp, 0x8000000
je 0x61269f
mov eax, dword [esp + 0x40]
mov dword [esp + 0x18], 0
cmp dword [eax + 0x148], 1
je 0x611f39
mov edx, dword [edi + 0x94]
mov eax, ebp
mov ecx, dword [esp + 0x4c]
and eax, 0x7ffffff
shr eax, cl
cmp eax, edx
jae 0x612aa1
mov ecx, dword [edi + 0x8c]
mov edi, dword [ecx + eax*8 + 4]
test edi, edi
je 0x612ab2
mov eax, dword [ecx + eax*8]
test byte [eax + 8], 2
je 0x611f39
cmp edi, 8
jbe 0x612b61
add edi, 0xfffffff7
cmp edi, 3
ja 0x611f32
jmp 0x612b77
mov eax, dword [esp]
mov edi, dword [esp + 0xa4]
shl ebx, 8
lea ecx, [esp + 0x1c]
mov dword [esp + 0x1c], eax
mov dword [esp + 0x20], edi
push ebx
call fcn.0071d510
add esp, 4
test eax, eax
jne 0x6128b4
mov ebp, edx
mov ebx, dword [esp + 0xc]
cmp ebp, 0x8000000
jae 0x612180
jmp 0x611f4f
mov ecx, dword [edi + 0xb4]
cmp dword [edi + 0xb0], 0
mov dword [edi + 0xb0], 0
je 0x612b48
mov edx, ebx
mov esi, ebx
sub edx, ecx
neg edx
sub esi, ecx
cmovb esi, edx
add dword [edi + 0x70], esi
test ebx, ebx
je 0x6122d5
mov edx, dword [esp + 0x10]
lea esi, [ebx - 1]
cmp esi, edx
jae 0x612ac5
movzx ebp, byte [ebp + esi]
mov ecx, dword [esp]
movzx edx, byte [ecx + ebp + 0x158]
mov ecx, eax
and ecx, 0x7ffffff
add ecx, edx
mov edx, dword [edi + 0x7c]
cmp ecx, edx
jae 0x612a0b
mov edx, dword [edi + 0x74]
mov edi, dword [edx + ecx*4]
test edi, edi
js 0x6127d9
test edi, 0x8000000
jne 0x612815
test edi, 0x20000000
je 0x61231c
mov ecx, ebp
jmp 0x6126f9
mov ecx, dword [esp]
movzx esi, byte [ecx + 0x257]
mov ecx, eax
and ecx, 0x7ffffff
shl esi, 0x10
add esi, 0x10001
mov edx, esi
shr edx, 0x10
add ecx, edx
mov edx, dword [edi + 0x7c]
cmp ecx, edx
jae 0x612afe
mov edx, dword [edi + 0x74]
mov edi, dword [edx + ecx*4]
test edi, edi
js 0x612830
test edi, 0x8000000
jne 0x612867
xor esi, esi
jmp 0x6128a9
mov edx, dword [esp]
mov ebp, dword [ebp + 4]
test byte [edx + 0x4d], 1
jne 0x6124ee
movzx eax, byte [0x919aa5]
mov eax, dword [0x919820]
mov esi, ebp
test eax, eax
jne 0x612358
call dword [sym.imp.kernel32.dll_GetProcessHeap]
test eax, eax
je 0x612b37
mov dword [0x919820], eax
push 0xc
push 0
push eax
call dword [sym.imp.kernel32.dll_HeapAlloc]
test eax, eax
je 0x612b37
mov ebp, eax
mov byte [eax], 3
mov dword [eax + 4], 2
mov dword [eax + 8], esi
mov eax, dword [esp + 4]
mov dword [eax + 4], ebp
mov dword [eax], 2
jmp 0x612a00
mov eax, dword [edi + 0xb4]
cmp dword [edi + 0xb0], 0
mov dword [edi + 0xb0], 0
je 0x612b48
mov ecx, ebx
mov edx, ebx
sub ecx, eax
neg ecx
sub edx, eax
mov eax, dword [esp]
cmovb edx, ecx
add dword [edi + 0x70], edx
test ebx, ebx
je 0x612625
mov edx, dword [esp + 0x14]
lea esi, [ebx - 1]
cmp esi, edx
jae 0x612ac5
mov ecx, dword [esp + 8]
mov edx, dword [edi + 0x7c]
mov dword [esp + 0x10], esi
movzx ecx, byte [ecx + esi]
movzx eax, byte [eax + ecx + 0x158]
mov dword [esp + 0xc], ecx
mov ecx, ebp
and ecx, 0x7ffffff
add ecx, eax
cmp ecx, edx
jae 0x612a0b
mov eax, dword [edi + 0x74]
mov esi, dword [eax + ecx*4]
test esi, esi
js 0x61291b
test esi, 0x8000000
jne 0x612a28
mov ecx, dword [esp + 4]
mov eax, dword [esp + 0x18]
mov edx, dword [esp + 0x38]
mov ebp, dword [esp + 0x3c]
test esi, 0x20000000
je 0x612a6a
mov ecx, dword [esp + 0xc]
mov edx, dword [esp + 0x10]
call fcn.0063cf90
jmp 0x6129f3
mov eax, dword [edx + 0x278]
cmp dword [eax + 0x148], ebx
jbe 0x61255a
lea eax, [ebx + ebx*2]
movzx ebx, byte [esp + 8]
lea ecx, [ecx + eax*2 + 0xc]
mov edx, dword [edi + 0x88]
cmp ecx, edx
jb 0x611bb6
push 0x8bdd70
call fcn.00709fa0
add esp, 4
ud2
test edi, 0x8000000
jne 0x6125a8
test edi, 0x40000000
jne 0x612750
test edi, 0x20000000
je 0x612b8d
mov edi, dword [esp + 0xa4]
mov edx, dword [esp + 0x10]
mov eax, dword [edi + 0xb4]
cmp dword [edi + 0xb0], 0
mov dword [edi + 0xb0], 0
jne 0x6126dc
jmp 0x612b48
mov edi, dword [esp + 0xa4]
mov eax, dword [ebp]
movzx ecx, bl
test eax, eax
jne 0x611adc
jmp 0x611ae8
mov eax, dword [edx + 0x278]
cmp dword [eax + 0x148], ebp
jbe 0x612705
lea eax, [ebp + ebp*2]
lea ecx, [ecx + eax*2 + 0xc]
jmp 0x611ae8
mov esi, dword [esp]
mov ecx, ebp
and ecx, 0x7ffffff
movzx eax, byte [esi + 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 0x612afe
mov edx, dword [edi + 0x74]
mov edi, dword [edx + ecx*4]
test edi, edi
js 0x61294b
test edi, 0x8000000
jne 0x61297b
xor ecx, ecx
jmp 0x6129bc
mov ecx, edx
call fcn.00623a50
movzx ebx, byte [esp + 8]
test eax, eax
jns 0x611bc7
mov eax, dword [esp]
lea ecx, [esp + 0x44]
lea edx, [esp + 0x1c]
mov dword [esp + 0x1c], eax
movzx eax, bl
mov dword [esp + 0x20], edi
push eax
push dword [esp + 0xac]
call fcn.0071ef00
add esp, 8
mov eax, dword [esp + 0x48]
cmp dword [esp + 0x44], 0
jne 0x6129f3
jmp 0x611bc7
mov ecx, dword [esp]
xor eax, eax
mov edx, dword [ecx + 0x278]
cmp dword [edx + 0x148], 1
je 0x6125db
mov edx, dword [esp + 0xa4]
push edi
call fcn.00623a10
add esp, 4
mov ecx, dword [eax]
mov edx, dword [eax + 4]
push 0
call fcn.0063adf0
add esp, 4
mov ebx, dword [esp + 0xa4]
mov ecx, dword [ebx + 0xb4]
cmp dword [ebx + 0xb0], 0
mov dword [ebx + 0xb0], 0
je 0x612b48
mov edx, esi
mov edi, esi
sub edx, ecx
neg edx
sub edi, ecx
mov ecx, dword [esp + 4]
cmovb edi, edx
inc esi
add dword [ebx + 0x70], edi
mov dword [ecx], 1
mov dword [ecx + 4], eax
mov dword [ecx + 8], esi
jmp 0x612a00
movzx eax, byte [eax + 0x257]
mov ecx, ebp
and ecx, 0x7ffffff
shl eax, 0x10
add eax, 0x10001
mov edx, eax
shr edx, 0x10
add ecx, edx
mov edx, dword [edi + 0x7c]
cmp ecx, edx
jae 0x612afe
mov edx, dword [edi + 0x74]
mov esi, dword [edx + ecx*4]
test esi, esi
js 0x6129ca
mov ecx, dword [esp + 4]
mov eax, dword [esp + 0x18]
mov edx, dword [esp + 0x38]
mov ebp, dword [esp + 0x3c]
test esi, 0x8000000
je 0x612a6a
mov eax, dword [esp + 0x40]
xor ebx, ebx
mov edx, 1
mov ebp, 0
cmp dword [eax + 0x148], 1
mov eax, 0
je 0x612a6a
jmp 0x612a42
test ebp, 0x40000000
jne 0x612791
test ebp, 0x20000000
je 0x612b8d
mov eax, dword [edi + 0xb4]
cmp dword [edi + 0xb0], 0
mov edx, dword [esp + 0x14]
mov ebp, dword [esp + 8]
mov dword [edi + 0xb0], 0
je 0x612b48
mov ecx, esi
mov ebx, esi
sub ecx, eax
neg ecx
sub ebx, eax
cmovb ebx, ecx
add dword [edi + 0x70], ebx
cmp esi, edx
jae 0x612b0d
movzx ecx, byte [ebp + esi]
mov edx, esi
call fcn.0063cf90
jmp 0x6129f3
mov ecx, edx
call fcn.00623a50
mov ebp, eax
test ebp, ebp
jns 0x611b07
mov eax, dword [esp]
lea ecx, [esp + 0x44]
lea edx, [esp + 0x1c]
mov dword [esp + 0x1c], eax
movzx eax, bl
mov dword [esp + 0x20], edi
push eax
push dword [esp + 0xac]
call fcn.0071ef00
add esp, 8
mov ebp, dword [esp + 0x48]
cmp dword [esp + 0x44], 0
jne 0x61237a
jmp 0x611b07
mov edx, dword [esp + 0xa4]
mov eax, dword [edx + 0xb4]
cmp dword [edx + 0xb0], 0
mov dword [edx + 0xb0], 0
je 0x612b48
mov ecx, esi
sub ecx, eax
neg ecx
sub esi, eax
mov eax, dword [esp + 4]
cmovb esi, ecx
add dword [edx + 0x70], esi
mov dword [eax], 0
jmp 0x612a00
mov eax, dword [edi + 0xb4]
cmp dword [edi + 0xb0], 0
mov dword [edi + 0xb0], 0
je 0x612b48
mov ecx, esi
mov edx, dword [esp + 0x38]
sub ecx, eax
neg ecx
sub esi, eax
mov eax, dword [esp + 4]
cmovb esi, ecx
add dword [edi + 0x70], esi
mov esi, dword [esp + 0x18]
mov dword [eax], edx
mov edx, dword [esp + 0x3c]
mov dword [eax + 4], esi
mov dword [eax + 8], edx
jmp 0x612a00
mov ecx, dword [esp]
mov edi, ebp
mov edx, eax
shl edi, 8
mov dword [esp + 0x1c], ecx
mov ecx, dword [esp + 0xa4]
mov dword [esp + 0x20], ecx
lea ecx, [esp + 0x1c]
push edi
call fcn.0071d510
add esp, 4
test eax, eax
jne 0x612944
mov edi, edx
test edi, 0x8000000
je 0x6122c6
mov ecx, dword [esp]
mov eax, dword [ecx + 0x278]
cmp dword [eax + 0x148], 1
jne 0x612885
mov esi, 1
xor eax, eax
jmp 0x6128a9
mov ecx, dword [esp]
mov edx, eax
mov dword [esp + 0x1c], ecx
mov ecx, dword [esp + 0xa4]
mov dword [esp + 0x20], ecx
lea ecx, [esp + 0x1c]
push esi
call fcn.0071d510
add esp, 4
test eax, eax
jne 0x6129ec
mov edi, edx
test edi, 0x8000000
je 0x61231c
mov ecx, dword [esp]
xor ebx, ebx
mov esi, 1
mov eax, dword [ecx + 0x278]
cmp dword [eax + 0x148], 1
mov eax, 0
je 0x6128a9
mov edx, dword [esp + 0xa4]
push edi
call fcn.00623a10
add esp, 4
mov ecx, dword [eax]
mov edx, dword [eax + 4]
push 0
call fcn.0063adf0
add esp, 4
mov esi, 1
mov edx, dword [esp + 4]
mov dword [edx], esi
jmp 0x6129c2
mov ecx, esi
jmp 0x6129ee
mov ecx, dword [esp]
mov eax, dword [esp + 8]
mov edx, ebp
mov dword [esp + 0x1c], ecx
mov ecx, dword [esp + 0xa4]
shl eax, 8
mov dword [esp + 0x20], ecx
lea ecx, [esp + 0x1c]
push eax
call fcn.0071d510
add esp, 4
test eax, eax
jne 0x612944
mov edi, edx
mov ecx, dword [esp + 8]
test edi, 0x8000000
je 0x611b74
mov esi, dword [esp]
mov eax, dword [esi + 0x278]
cmp dword [eax + 0x148], 1
jne 0x612996
mov ecx, 1
xor eax, eax
jmp 0x6129bc
mov eax, dword [esp + 0xc]
mov ecx, dword [esp]
mov edx, ebp
shl eax, 8
mov dword [esp + 0x1c], ecx
mov dword [esp + 0x20], edi
lea ecx, [esp + 0x1c]
push eax
call fcn.0071d510
add esp, 4
test eax, eax
je 0x612a1a
mov ecx, ebx
jmp 0x6129ee
mov ecx, dword [esp + 0xa4]
mov edx, ebp
mov dword [esp + 0x1c], esi
mov dword [esp + 0x20], ecx
lea ecx, [esp + 0x1c]
push eax
call fcn.0071d510
add esp, 4
test eax, eax
jne 0x6129ec
mov edi, edx
test edi, 0x8000000
je 0x612553
mov eax, dword [esi + 0x278]
xor ebx, ebx
mov ecx, 1
cmp dword [eax + 0x148], 1
mov eax, 0
je 0x6129bc
mov edx, dword [esp + 0xa4]
mov ecx, esi
push edi
call fcn.00623a10
add esp, 4
mov ecx, dword [eax]
mov edx, dword [eax + 4]
push 0
call fcn.0063adf0
add esp, 4
mov ecx, 1
mov edx, dword [esp + 4]
mov dword [edx], ecx
mov dword [edx + 4], eax
mov dword [edx + 8], ebx
jmp 0x612a00
mov ecx, dword [esp]
mov edx, ebp
mov dword [esp + 0x1c], ecx
mov dword [esp + 0x20], edi
lea ecx, [esp + 0x1c]
push eax
call fcn.0071d510
add esp, 4
test eax, eax
je 0x612a74
xor ecx, ecx
call fcn.0063cff0
mov ecx, dword [esp + 4]
mov dword [ecx + 4], eax
mov dword [ecx], 2
add esp, 0x90
pop esi
pop edi
pop ebx
pop ebp
ret
push 0x8bdce0
call fcn.00709fa0
add esp, 4
ud2
mov esi, edx
test esi, 0x8000000
je 0x61241a
mov eax, dword [esp + 0x40]
mov ecx, dword [esp + 4]
cmp dword [eax + 0x148], 1
jne 0x612a42
mov edx, 1
xor eax, eax
jmp 0x612a68
mov ecx, dword [esp]
mov edx, edi
push esi
call fcn.00623a10
add esp, 4
mov ecx, dword [eax]
mov edx, dword [eax + 4]
push 0
call fcn.0063adf0
mov ecx, dword [esp + 8]
add esp, 4
mov edx, 1
mov ebp, ebx
mov dword [ecx], edx
mov dword [ecx + 4], eax
mov dword [ecx + 8], ebp
jmp 0x612a00
mov esi, edx
jmp 0x61265c
mov edx, dword [esp + 0x14]
mov ecx, esi
push 0x8bdec0
call fcn.00709fa0
add esp, 4
ud2
mov edx, eax
push 0x8bdce0
call fcn.00709fa0
add esp, 4
ud2
mov ecx, eax
push 0x8beca4
call fcn.00709fa0
add esp, 4
ud2
xor ecx, ecx
xor edx, edx
push 0x8c0624
call fcn.00709fa0
add esp, 4
ud2
mov ecx, esi
push 0x8bdf10
call fcn.00709fa0
add esp, 4
ud2
mov edx, dword [esp + 0x10]
mov ecx, esi
push 0x8bdeb0
call fcn.00709fa0
add esp, 4
ud2
mov ecx, esi
mov edx, ebx
push 0x8bdeb0
call fcn.00709fa0
add esp, 4
ud2
push 0x8bdcf0
call fcn.00709fa0
add esp, 4
ud2
mov ecx, esi
push 0x8bdee0
call fcn.00709fa0
add esp, 4
ud2
mov ecx, str.no_in_progress_search_to_update
mov edx, 0x1f
push 0x8bdda0
call fcn.0070a3e0
add esp, 4
ud2
mov ecx, 4
mov edx, 0xc
call fcn.00709d20
ud2
mov ecx, str.no_in_progress_search_to_finish
mov edx, 0x1f
push 0x8bdd60
call fcn.0070a3e0
add esp, 4
ud2
mov ecx, 9
mov edx, edi
push 0x8c0654
call fcn.0070a010
add esp, 4
ud2
mov ecx, 4
mov edx, edi
push 0x8c0a2c
call fcn.0070a080
add esp, 4
ud2
lea eax, [esp + 0x34]
lea ecx, [esp + 0x1c]
mov edx, 0x8bded0
mov dword [esp + 0x1c], 0x8bde88
mov dword [esp + 0x20], 1
mov dword [esp + 0x2c], 0
mov dword [esp + 0x24], eax
mov dword [esp + 0x28], 0
call fcn.00709f70
ud2