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

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff8
sub esp, 0xa0
mov esi, dword [ebp + 0xc]
mov dword [esp + 8], edx
mov edi, dword [esi + 0x10]
mov ebx, dword [esi + 0x14]
cmp edi, ebx
jbe 0x48c18b
mov dword [ecx], 0
jmp 0x48d6c3
cmp byte [esi + 0x18], 0
mov dword [esp + 0x20], edi
mov dword [esp + 0xc], ecx
je 0x48c326
mov eax, dword [esi + 0xc]
cmp ebx, eax
mov dword [esp + 0x1c], eax
jae 0x48c49e
mov edi, dword [esp + 8]
mov eax, dword [esi + 8]
mov ecx, dword [edi + 0x260]
mov edx, dword [edi + 0x268]
movzx eax, byte [eax + ebx]
or edx, dword [edi + 0x278]
or ecx, dword [edi + 0x270]
mov byte [esp + 4], al
mov eax, dword [edi + 0x26c]
or ecx, edx
mov edx, dword [edi + 0x264]
or eax, dword [edi + 0x27c]
or edx, dword [edi + 0x274]
mov edi, dword [esp + 0x20]
or edx, eax
movzx eax, byte [esp + 4]
or edx, ecx
mov edx, dword [esi]
mov ecx, dword [esi + 4]
mov dword [esp + 0x14], eax
mov dword [esp + 0x24], ecx
je 0x48c4b2
mov ch, byte [esp + 4]
mov dword [esp + 0x98], 0
mov dword [esp + 0x94], 0
mov dword [esp + 0x90], 0
mov dword [esp + 0x8c], 1
mov dword [esp + 0x88], 0
mov dword [esp + 0x84], 0
mov dword [esp + 0x80], 0
mov dword [esp + 0x7c], 0
mov al, ch
and ch, 7
and al, 0x78
mov cl, ch
shr al, 3
neg al
movsx edi, al
mov esi, dword [esp + edi + 0x94]
mov eax, dword [esp + edi + 0x98]
mov dword [esp + 0x18], edi
mov dword [esp + 0x10], edx
shld eax, esi, cl
shl esi, cl
not cl
mov dword [esp + 0x2c], eax
mov eax, dword [esp + edi + 0x90]
mov edi, eax
mov edx, eax
mov eax, dword [esp + 0x14]
shr edi, 1
shr edi, cl
mov cl, ch
or edi, esi
mov esi, dword [esp + 0x18]
shr eax, 3
and eax, 0xfffffff0
mov esi, dword [esp + esi + 0x8c]
shld edx, esi, cl
shl esi, cl
mov ecx, dword [esp + 8]
mov dword [esp + 0x28], edx
add ecx, 0x260
mov dword [esp + 0x18], ecx
and edi, dword [ecx + eax + 8]
mov ecx, dword [esp + 0x2c]
mov edx, dword [esp + 0x18]
and ecx, dword [edx + eax + 0xc]
mov edx, dword [esp + 0x28]
mov dword [esp + 0x2c], ecx
mov ecx, dword [esp + 0x18]
and edx, dword [ecx + eax + 4]
and esi, dword [ecx + eax]
or edx, dword [esp + 0x2c]
or esi, edi
mov edi, dword [esp + 0x20]
or edx, esi
mov edx, dword [esp + 0x10]
je 0x48c4b2
movzx eax, byte [esp + 4]
mov dword [esp + 0x48], 4
mov byte [esp + 0x4c], al
jmp 0x48c504
mov eax, dword [esi + 0xc]
cmp ebx, eax
mov dword [esp + 0x24], eax
jae 0x48c58f
mov eax, dword [esi + 8]
movzx eax, byte [eax + ebx]
mov byte [esp + 0x10], al
mov eax, dword [esp + 8]
mov ecx, dword [eax + 0x26c]
mov edx, dword [eax + 0x268]
mov dword [esp + 4], ecx
mov ecx, dword [eax + 0x260]
or edx, dword [eax + 0x278]
or ecx, dword [eax + 0x270]
or ecx, edx
mov edx, dword [eax + 0x264]
mov dword [esp + 0x1c], ecx
mov ecx, dword [esp + 4]
or edx, dword [eax + 0x274]
or ecx, dword [eax + 0x27c]
movzx eax, byte [esp + 0x10]
mov dword [esp + 4], ecx
mov dword [esp + 0x14], eax
mov eax, dword [esi + 4]
or edx, dword [esp + 4]
or edx, dword [esp + 0x1c]
mov edx, dword [esi]
mov dword [esp + 0x1c], eax
je 0x48c88c
mov ch, byte [esp + 0x10]
mov dword [esp + 0x78], 0
mov dword [esp + 0x74], 0
mov dword [esp + 0x70], 0
mov dword [esp + 0x6c], 1
mov dword [esp + 0x68], 0
mov dword [esp + 0x64], 0
mov dword [esp + 0x60], 0
mov dword [esp + 0x5c], 0
mov al, ch
and ch, 7
and al, 0x78
mov cl, ch
shr al, 3
neg al
movsx edi, al
mov esi, dword [esp + edi + 0x74]
mov eax, dword [esp + edi + 0x78]
mov dword [esp + 0x18], edi
mov dword [esp + 4], edx
shld eax, esi, cl
shl esi, cl
not cl
mov dword [esp + 0x2c], eax
mov eax, dword [esp + edi + 0x70]
mov edi, eax
mov edx, eax
mov eax, dword [esp + 0x14]
shr edi, 1
shr edi, cl
mov cl, ch
or edi, esi
mov esi, dword [esp + 0x18]
shr eax, 3
and eax, 0xfffffff0
mov esi, dword [esp + esi + 0x6c]
shld edx, esi, cl
shl esi, cl
mov ecx, dword [esp + 8]
mov dword [esp + 0x28], edx
add ecx, 0x260
mov dword [esp + 0x18], ecx
and edi, dword [ecx + eax + 8]
mov ecx, dword [esp + 0x2c]
mov edx, dword [esp + 0x18]
and ecx, dword [edx + eax + 0xc]
mov edx, dword [esp + 0x28]
mov dword [esp + 0x2c], ecx
mov ecx, dword [esp + 0x18]
and edx, dword [ecx + eax + 4]
and esi, dword [ecx + eax]
or edx, dword [esp + 0x2c]
or esi, edi
mov edi, dword [esp + 0x20]
or edx, esi
mov edx, dword [esp + 4]
je 0x48c88c
movzx eax, byte [esp + 0x10]
mov dword [esp + 0x48], 4
mov byte [esp + 0x4c], al
jmp 0x48c8de
mov eax, dword [esi + 4]
mov edx, dword [esi]
mov dword [esp + 0x24], eax
mov al, 2
movzx ecx, al
test edx, edx
jne 0x48c4c6
jmp 0x48c4d2
mov eax, dword [esp + 8]
mov ecx, dword [esp + 0x14]
movzx eax, byte [eax + ecx + 0x60]
movzx ecx, al
test edx, edx
je 0x48c4d2
cmp edx, 1
jne 0x48c5aa
add ecx, 6
mov dword [esp + 0x10], edx
mov esi, dword [ebp + 8]
mov edx, dword [esi + 0x88]
cmp ecx, edx
jae 0x48cf3b
mov edx, dword [esi + 0x84]
mov edx, dword [edx + ecx*4]
test edx, edx
js 0x48d011
mov dword [esp + 0x4c], edx
mov dword [esp + 0x48], 5
lea ecx, [esp + 0x30]
lea edx, [esp + 0x48]
push ebx
call fcn.0048d850
add esp, 4
cmp dword [esp + 0x30], 0
mov esi, dword [esp + 0x34]
jne 0x48c8fa
cmp edi, ebx
jne 0x48c5cd
test edi, edi
je 0x48cfa2
mov edx, dword [esp + 0x1c]
lea ecx, [edi - 1]
cmp ecx, edx
jae 0x48d70f
mov eax, dword [ebp + 0xc]
mov dword [esp + 4], ecx
mov ebx, dword [ebp + 8]
mov eax, dword [eax + 8]
movzx eax, byte [eax + ecx]
mov ecx, dword [esp + 8]
mov byte [esp + 0x10], al
movzx eax, al
movzx edx, byte [ecx + eax + 0x160]
mov ecx, esi
and ecx, 0x7ffffff
add ecx, edx
mov edx, dword [ebx + 0x7c]
cmp ecx, edx
jae 0x48d6cb
mov edx, dword [ebx + 0x78]
mov edx, dword [edx + ecx*4]
test edx, edx
jns 0x48c972
jmp 0x48d484
mov eax, dword [esi + 4]
mov edx, dword [esi]
mov dword [esp + 0x1c], eax
mov al, 2
movzx ecx, al
test edx, edx
jne 0x48c8a0
jmp 0x48c8ac
mov esi, dword [esp + 8]
test byte [esi + 0x59], 1
jne 0x48c9dc
mov eax, dword [esp + 0x24]
mov dword [esp + 0x48], 2
mov dword [esp + 0x4c], eax
jmp 0x48c504
mov ecx, dword [ebp + 8]
dec ebx
cmp dword [ecx + 0xb0], 1
jne 0x48c5fc
mov edx, dword [ecx + 0xb4]
mov eax, dword [ecx + 0xb8]
mov dword [esp + 4], edx
mov edx, eax
sub edx, dword [esp + 4]
neg edx
sub eax, dword [esp + 4]
cmovb eax, edx
add dword [ecx + 0x70], eax
mov eax, dword [ebp + 0xc]
mov dword [ecx + 0xb0], 1
mov dword [ecx + 0xb4], ebx
mov dword [ecx + 0xb8], ebx
mov ecx, 0xffffffff
mov edx, dword [eax + 8]
mov eax, edi
add eax, 3
cmovae ecx, eax
mov eax, dword [esp + 8]
mov dword [esp + 0x24], ecx
mov dword [esp + 4], edx
mov ecx, dword [eax + 0x280]
mov eax, dword [eax + 0x284]
and eax, 0x1f
mov dword [esp + 0x14], ecx
mov dword [esp + 0x18], eax
nop dword [eax + eax]
cmp esi, 0x7ffffff
jbe 0x48c6d0
mov edi, dword [ebp + 8]
mov eax, dword [esp + 0x1c]
cmp dword [edi + 0xb0], 0
je 0x48d76d
cmp ebx, eax
mov dword [edi + 0xb8], ebx
jae 0x48d6d5
movzx eax, byte [edx + ebx]
mov ecx, dword [esp + 8]
movzx edx, byte [ecx + eax + 0x160]
mov ecx, esi
and ecx, 0x7ffffff
add ecx, edx
mov edx, dword [edi + 0x7c]
cmp ecx, edx
jae 0x48d6cb
mov edx, dword [edi + 0x78]
mov edi, dword [edx + ecx*4]
test edi, edi
js 0x48c85c
mov edx, dword [esp + 4]
cmp edi, 0x8000000
jb 0x48c6c6
mov eax, edi
and eax, 0x10000000
je 0x48cf45
mov esi, edi
mov edi, dword [esp + 0x20]
jmp 0x48c6d4
cmp ebx, edi
jae 0x48c6f0
mov ecx, ebx
lea ebx, [ecx - 1]
cmp ecx, edi
jne 0x48c650
jmp 0x48cd2a
mov ecx, dword [ebp + 8]
dec ebx
mov eax, dword [ecx + 0x78]
mov ecx, dword [ecx + 0x7c]
mov dword [esp + 0x10], eax
mov dword [esp + 0x2c], ecx
nop word cs:[eax + eax]
nop dword [eax]
movzx ecx, byte [edx + ebx + 1]
mov edx, dword [esp + 8]
mov eax, dword [esp + 0x10]
movzx ecx, byte [edx + ecx + 0x160]
add ecx, esi
mov edx, dword [eax + ecx*4]
cmp edx, 0x7ffffff
ja 0x48c7ba
lea ecx, [ebx + 1]
cmp ecx, dword [esp + 0x24]
jbe 0x48c7c9
mov edi, dword [esp + 4]
mov esi, dword [esp + 8]
mov eax, dword [esp + 0x10]
movzx ecx, byte [edi + ebx]
movzx ecx, byte [esi + ecx + 0x160]
add ecx, edx
mov ecx, dword [eax + ecx*4]
cmp ecx, 0x7ffffff
ja 0x48c7d4
movzx edx, byte [edi + ebx - 1]
movzx edx, byte [esi + edx + 0x160]
add edx, ecx
mov edx, dword [eax + edx*4]
cmp edx, 0x7ffffff
ja 0x48c7e0
movzx ecx, byte [edi + ebx - 2]
movzx ecx, byte [esi + ecx + 0x160]
add ecx, edx
mov esi, dword [eax + ecx*4]
cmp esi, 0x7ffffff
ja 0x48c7ef
mov edi, dword [esp + 0x20]
mov edx, dword [esp + 4]
lea ecx, [ebx - 4]
add ebx, 0xfffffffd
cmp ebx, edi
mov ebx, ecx
jae 0x48c710
inc ecx
jmp 0x48c6d6
mov edi, edx
inc ebx
mov edx, esi
test edi, edi
jns 0x48c6ad
jmp 0x48c7fc
mov esi, edx
mov edx, dword [esp + 4]
jmp 0x48c6d6
mov edi, ecx
test edi, edi
jns 0x48c6ad
jmp 0x48c7fc
mov edi, edx
dec ebx
mov edx, ecx
test edi, edi
jns 0x48c6ad
jmp 0x48c7fc
add ebx, 0xfffffffe
mov edi, esi
test edi, edi
jns 0x48c6ad
mov ecx, dword [ebp + 8]
cmp dword [ecx + 0xb0], 0
je 0x48d76d
mov dword [ecx + 0xb8], ebx
mov ecx, dword [esp + 4]
mov eax, dword [esp + 0x2c]
mov edi, dword [esp + 0x10]
movzx esi, byte [ecx + ebx]
mov ecx, dword [esp + 8]
movzx ecx, byte [ecx + esi + 0x160]
add ecx, edx
cmp ecx, eax
jae 0x48d719
mov edi, dword [edi + ecx*4]
test edi, edi
jns 0x48c6ad
mov eax, dword [esp + 8]
mov ecx, dword [ebp + 8]
shl esi, 8
mov dword [esp + 0x30], eax
mov dword [esp + 0x34], ecx
lea ecx, [esp + 0x30]
push esi
jmp 0x48c875
mov ecx, dword [esp + 8]
shl eax, 8
mov edx, esi
mov dword [esp + 0x30], ecx
mov ecx, dword [ebp + 8]
mov dword [esp + 0x34], ecx
lea ecx, [esp + 0x30]
push eax
call fcn.00541b40
add esp, 4
test eax, eax
jne 0x48d5ce
mov edi, edx
jmp 0x48c6ad
mov eax, dword [esp + 8]
mov ecx, dword [esp + 0x14]
movzx eax, byte [eax + ecx + 0x60]
movzx ecx, al
test edx, edx
je 0x48c8ac
cmp edx, 1
jne 0x48c9b9
add ecx, 6
mov dword [esp + 4], edx
mov esi, dword [ebp + 8]
mov edx, dword [esi + 0x88]
cmp ecx, edx
jae 0x48cf3b
mov edx, dword [esi + 0x84]
mov edx, dword [edx + ecx*4]
test edx, edx
js 0x48d131
mov dword [esp + 0x4c], edx
mov dword [esp + 0x48], 5
lea ecx, [esp + 0x30]
lea edx, [esp + 0x48]
push ebx
call fcn.0048d850
add esp, 4
cmp dword [esp + 0x30], 0
mov esi, dword [esp + 0x34]
je 0x48c90c
mov eax, dword [esp + 0xc]
mov dword [eax + 4], esi
mov dword [eax], 2
jmp 0x48d6c3
cmp edi, ebx
jne 0x48ca1c
test edi, edi
je 0x48d041
mov edx, dword [esp + 0x24]
lea ecx, [edi - 1]
cmp ecx, edx
jae 0x48d70f
mov eax, dword [ebp + 0xc]
mov dword [esp + 4], ecx
mov ebx, dword [ebp + 8]
mov eax, dword [eax + 8]
movzx eax, byte [eax + ecx]
mov ecx, dword [esp + 8]
mov byte [esp + 0x10], al
movzx eax, al
movzx edx, byte [ecx + eax + 0x160]
mov ecx, esi
and ecx, 0x7ffffff
add ecx, edx
mov edx, dword [ebx + 0x7c]
cmp ecx, edx
jae 0x48d6cb
mov edx, dword [ebx + 0x78]
mov edx, dword [edx + ecx*4]
test edx, edx
js 0x48d484
test edx, 0x8000000
jne 0x48cdfa
test edx, 0x20000000
je 0x48d0fe
movzx eax, byte [0x5b9430]
xor ecx, ecx
mov edx, 0xc
call fcn.0051b940
test eax, eax
je 0x48d7b3
movzx ecx, byte [esp + 0x10]
mov edi, dword [esp + 4]
mov byte [eax], 0
mov byte [eax + 1], cl
jmp 0x48d6b3
mov esi, dword [esp + 8]
test byte [esi + 0x59], 1
jne 0x48cf00
mov eax, dword [esp + 0x1c]
mov dword [esp + 0x48], 2
mov dword [esp + 0x4c], eax
jmp 0x48c8de
mov byte [esp + 4], al
mov dword [esp + 0x10], edx
mov edx, dword [esi + 0x280]
mov eax, dword [esp + 0x24]
cmp dword [edx + 0x15c], eax
jbe 0x48cfe5
lea edx, [eax + eax*2]
movzx eax, byte [esp + 4]
lea ecx, [ecx + edx*2 + 0xc]
mov esi, dword [ebp + 8]
mov edx, dword [esi + 0x88]
cmp ecx, edx
jb 0x48c4e7
jmp 0x48cf3b
mov edi, dword [ebp + 8]
dec ebx
cmp dword [edi + 0xb0], 1
jne 0x48ca43
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 [ebp + 0xc]
mov dword [edi + 0xb0], 1
mov dword [edi + 0xb4], ebx
mov dword [edi + 0xb8], ebx
mov edi, dword [esp + 8]
mov ecx, 0xffffffff
mov dword [esp + 0x14], 0
mov eax, dword [eax + 8]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x20]
add eax, 3
cmovae ecx, eax
mov eax, dword [edi + 0x280]
mov dword [esp + 0x10], ecx
mov dword [esp + 0x18], eax
mov eax, dword [edi + 0x284]
and eax, 0x1f
mov dword [esp + 0x54], eax
jmp 0x48cabe
mov eax, dword [eax + 0x15]
mov dword [esp + 0x1c], eax
lea eax, [ebx + 1]
mov dword [esp + 0x14], 1
mov dword [esp + 0x28], eax
cmp ebx, dword [esp + 0x20]
lea ebx, [ebx - 1]
je 0x48ce2a
cmp esi, 0x7ffffff
jbe 0x48cbc0
mov edi, dword [ebp + 8]
cmp dword [edi + 0xb0], 0
je 0x48d76d
cmp ebx, dword [esp + 0x24]
mov dword [edi + 0xb8], ebx
jae 0x48d6e5
mov eax, dword [esp + 4]
mov ecx, dword [esp + 8]
movzx eax, byte [eax + ebx]
movzx edx, byte [ecx + eax + 0x160]
mov ecx, esi
and ecx, 0x7ffffff
add ecx, edx
mov edx, dword [edi + 0x7c]
cmp ecx, edx
jae 0x48d6cb
mov edx, dword [edi + 0x78]
mov ecx, dword [edx + ecx*4]
test ecx, ecx
js 0x48ccfa
mov edi, dword [esp + 8]
mov esi, ecx
cmp esi, 0x8000000
jb 0x48cab1
mov eax, esi
and eax, 0x10000000
jne 0x48cab1
test esi, 0x8000000
je 0x48d260
mov eax, dword [esp + 0x18]
mov dword [esp + 0x1c], 0
cmp dword [eax + 0x15c], 1
je 0x48caa2
mov eax, esi
mov ecx, dword [esp + 0x54]
and eax, 0x7ffffff
shr eax, cl
mov ecx, dword [ebp + 8]
mov edx, dword [ecx + 0x94]
cmp eax, edx
jae 0x48d703
mov ecx, dword [ecx + 0x90]
mov edx, dword [ecx + eax*8 + 4]
test edx, edx
je 0x48d6f5
mov eax, dword [ecx + eax*8]
test byte [eax + 8], 2
je 0x48caa2
cmp edx, 0xd
jb 0x48d795
add edx, 0xfffffff3
cmp edx, 3
ja 0x48ca9b
jmp 0x48d7a4
cmp ebx, dword [esp + 0x20]
jb 0x48cab1
mov ecx, dword [ebp + 8]
dec ebx
mov eax, dword [ecx + 0x78]
mov ecx, dword [ecx + 0x7c]
mov dword [esp + 0x2c], ecx
mov ecx, ebx
nop word [eax + eax]
mov edx, dword [esp + 4]
movzx edx, byte [edx + ecx + 1]
movzx edx, byte [edi + edx + 0x160]
add edx, esi
mov edx, dword [eax + edx*4]
cmp edx, 0x7ffffff
ja 0x48cc70
lea ebx, [ecx + 1]
cmp ebx, dword [esp + 0x10]
jbe 0x48cc73
mov ebx, dword [esp + 4]
movzx esi, byte [ebx + ecx]
movzx esi, byte [edi + esi + 0x160]
add esi, edx
mov esi, dword [eax + esi*4]
cmp esi, 0x7ffffff
ja 0x48cc92
movzx edx, byte [ebx + ecx - 1]
movzx edx, byte [edi + edx + 0x160]
add edx, esi
mov edx, dword [eax + edx*4]
cmp edx, 0x7ffffff
ja 0x48cc7a
movzx esi, byte [ebx + ecx - 2]
movzx esi, byte [edi + esi + 0x160]
add esi, edx
mov esi, dword [eax + esi*4]
cmp esi, 0x7ffffff
ja 0x48cc8f
lea ebx, [ecx - 4]
add ecx, 0xfffffffd
cmp ecx, dword [esp + 0x20]
mov ecx, ebx
jae 0x48cbe0
inc ebx
jmp 0x48cab1
inc ecx
jmp 0x48cc7b
mov esi, edx
jmp 0x48cab1
dec ecx
mov ebx, ecx
mov ecx, edx
mov edx, esi
mov esi, dword [esp + 0x2c]
test ecx, ecx
jns 0x48cb25
jmp 0x48cca2
add ecx, 0xfffffffe
mov ebx, ecx
mov ecx, esi
mov esi, dword [esp + 0x2c]
test ecx, ecx
jns 0x48cb25
mov ecx, dword [ebp + 8]
cmp dword [ecx + 0xb0], 0
je 0x48d76d
mov dword [ecx + 0xb8], ebx
mov ecx, dword [esp + 4]
movzx ecx, byte [ecx + ebx]
mov dword [esp + 0x58], ecx
movzx ecx, byte [edi + ecx + 0x160]
add ecx, edx
cmp ecx, esi
jae 0x48d72f
mov esi, dword [eax + ecx*4]
test esi, esi
jns 0x48cb27
mov esi, dword [esp + 0x58]
mov eax, dword [ebp + 8]
lea ecx, [esp + 0x30]
mov dword [esp + 0x30], edi
shl esi, 8
mov dword [esp + 0x34], eax
push esi
jmp 0x48cd13
mov edi, dword [esp + 8]
mov ecx, dword [ebp + 8]
shl eax, 8
mov edx, esi
mov dword [esp + 0x30], edi
mov dword [esp + 0x34], ecx
lea ecx, [esp + 0x30]
push eax
call fcn.00541b40
add esp, 4
test eax, eax
jne 0x48d5ce
mov esi, edx
jmp 0x48cb27
mov ebx, dword [ebp + 8]
mov eax, dword [ebx + 0xb4]
cmp dword [ebx + 0xb0], 0
mov dword [ebx + 0xb0], 0
je 0x48d781
mov ecx, edi
mov edx, edi
sub ecx, eax
neg ecx
sub edx, eax
cmovb edx, ecx
add dword [ebx + 0x70], edx
test edi, edi
je 0x48d0b7
mov edx, dword [esp + 0x1c]
lea ecx, [edi - 1]
cmp ecx, edx
jae 0x48d70f
mov eax, dword [esp + 4]
mov dword [esp + 0x10], ecx
movzx eax, byte [eax + ecx]
mov ecx, dword [esp + 8]
mov byte [esp + 4], al
movzx eax, al
movzx edx, byte [ecx + eax + 0x160]
mov ecx, esi
and ecx, 0x7ffffff
add ecx, edx
mov edx, dword [ebx + 0x7c]
cmp ecx, edx
jae 0x48d6cb
mov edx, dword [ebx + 0x78]
mov edx, dword [edx + ecx*4]
test edx, edx
js 0x48d5f1
test edx, 0x8000000
jne 0x48d17c
test edx, 0x20000000
je 0x48d0fe
movzx eax, byte [0x5b9430]
xor ecx, ecx
mov edx, 0xc
call fcn.0051b940
test eax, eax
je 0x48d7b3
movzx ecx, byte [esp + 4]
mov edi, dword [esp + 0x10]
mov byte [eax], 0
mov byte [eax + 1], cl
jmp 0x48d6b3
mov ecx, dword [esp + 8]
xor ebx, ebx
mov esi, 1
mov eax, dword [ecx + 0x280]
cmp dword [eax + 0x15c], 1
je 0x48d50b
movzx ecx, byte [ecx + 0x284]
and edx, 0x7ffffff
jmp 0x48d19e
mov ecx, dword [ebp + 8]
mov eax, dword [ecx + 0xb4]
cmp dword [ecx + 0xb0], 0
mov dword [ecx + 0xb0], 0
je 0x48d781
mov ebx, dword [esp + 0x20]
mov ecx, ebx
mov edx, ebx
sub ecx, eax
neg ecx
sub edx, eax
cmovb edx, ecx
mov ecx, dword [ebp + 8]
add dword [ecx + 0x70], edx
test ebx, ebx
je 0x48d1ea
mov edx, dword [esp + 0x24]
dec ebx
cmp ebx, edx
jae 0x48d749
mov eax, dword [esp + 4]
mov ecx, esi
and ecx, 0x7ffffff
movzx eax, byte [eax + ebx]
mov byte [esp + 4], al
movzx eax, al
movzx edx, byte [edi + eax + 0x160]
mov edi, dword [ebp + 8]
add ecx, edx
mov edx, dword [edi + 0x7c]
cmp ecx, edx
jae 0x48d6cb
mov edx, dword [edi + 0x78]
mov edi, dword [esp + 0x20]
mov edx, dword [edx + ecx*4]
test edx, edx
js 0x48d61b
test edx, 0x8000000
jne 0x48d2f2
mov esi, dword [esp + 0x1c]
test edx, 0x20000000
je 0x48d58d
movzx eax, byte [0x5b9430]
xor ecx, ecx
mov edx, 0xc
call fcn.0051b940
test eax, eax
je 0x48d7b3
movzx ecx, byte [esp + 4]
mov edi, ebx
mov byte [eax], 0
mov byte [eax + 1], cl
jmp 0x48d6b3
mov byte [esp + 0x10], al
mov dword [esp + 4], edx
mov edx, dword [esi + 0x280]
mov eax, dword [esp + 0x1c]
cmp dword [edx + 0x15c], eax
jbe 0x48d105
lea edx, [eax + eax*2]
movzx eax, byte [esp + 0x10]
lea ecx, [ecx + edx*2 + 0xc]
mov esi, dword [ebp + 8]
mov edx, dword [esi + 0x88]
cmp ecx, edx
jb 0x48c8c1
push 0x5557fc
call fcn.0053bb10
test edi, 0x8000000
jne 0x48d161
test edi, 0x40000000
jne 0x48d36d
test edi, 0x20000000
je 0x48d80e
mov esi, dword [ebp + 8]
mov eax, dword [esi + 0xb4]
cmp dword [esi + 0xb0], 0
mov dword [esi + 0xb0], 0
je 0x48d781
mov ecx, ebx
mov edx, ebx
sub ecx, eax
neg ecx
sub edx, eax
cmovb edx, ecx
add dword [esi + 0x70], edx
mov edx, dword [esp + 0x1c]
jmp 0x48d2ac
mov eax, dword [esp + 8]
mov edi, dword [ebp + 8]
mov ecx, esi
and ecx, 0x7ffffff
movzx eax, byte [eax + 0x25f]
shl eax, 0x10
add eax, 0x10001
mov edx, eax
shr edx, 0x10
add ecx, edx
mov edx, dword [edi + 0x7c]
cmp ecx, edx
jae 0x48d725
mov edx, dword [edi + 0x78]
mov edx, dword [edx + ecx*4]
test edx, edx
jns 0x48d07f
jmp 0x48d5a6
mov ecx, dword [esi + 0x284]
movzx eax, byte [esp + 4]
mov edx, 1
and ecx, 0x1f
shl edx, cl
cmp ecx, 0x1b
jae 0x48d7c2
or edx, 0x40000000
test edx, edx
jns 0x48c4f8
mov ecx, dword [esp + 8]
movzx eax, al
lea edx, [esp + 0x30]
mov dword [esp + 0x30], ecx
mov ecx, dword [ebp + 8]
mov dword [esp + 0x34], ecx
lea ecx, [esp + 0x48]
push eax
push dword [esp + 0x28]
push dword [esp + 0x18]
call fcn.005434e0
add esp, 0xc
jmp 0x48c504
mov eax, dword [esp + 8]
mov edi, dword [ebp + 8]
mov ecx, esi
and ecx, 0x7ffffff
movzx eax, byte [eax + 0x25f]
shl eax, 0x10
add eax, 0x10001
mov edx, eax
shr edx, 0x10
add ecx, edx
mov edx, dword [edi + 0x7c]
cmp ecx, edx
jae 0x48d725
mov edx, dword [edi + 0x78]
mov edx, dword [edx + ecx*4]
test edx, edx
js 0x48d5a6
test edx, 0x8000000
je 0x48d0fe
mov ecx, dword [esp + 8]
xor edi, edi
mov esi, 1
mov eax, dword [ecx + 0x280]
cmp dword [eax + 0x15c], 1
je 0x48d366
movzx ecx, byte [ecx + 0x284]
and edx, 0x7ffffff
jmp 0x48d4bc
mov edi, dword [esp + 8]
mov ecx, esi
and ecx, 0x7ffffff
movzx eax, byte [edi + 0x25f]
shl eax, 0x10
add eax, 0x10001
mov edx, eax
shr edx, 0x10
add ecx, edx
mov edx, dword [ebx + 0x7c]
cmp ecx, edx
jae 0x48d725
mov edx, dword [ebx + 0x78]
mov edx, dword [edx + ecx*4]
test edx, edx
js 0x48d64d
test edx, 0x8000000
jne 0x48d34e
xor esi, esi
jmp 0x48d50b
mov ecx, dword [esi + 0x284]
movzx eax, byte [esp + 0x10]
mov edx, 1
and ecx, 0x1f
shl edx, cl
cmp ecx, 0x1b
jae 0x48d7c2
or edx, 0x40000000
test edx, edx
jns 0x48c8d2
mov ecx, dword [esp + 8]
movzx eax, al
lea edx, [esp + 0x30]
mov dword [esp + 0x30], ecx
mov ecx, dword [ebp + 8]
mov dword [esp + 0x34], ecx
lea ecx, [esp + 0x48]
push eax
push dword [esp + 0x20]
push dword [esp + 0xc]
call fcn.005434e0
add esp, 0xc
jmp 0x48c8de
mov ecx, dword [esp + 0x14]
xor eax, eax
cmp dword [ecx + 0x15c], 1
jne 0x48d3aa
mov edi, dword [ebp + 8]
jmp 0x48d3fd
mov eax, dword [esp + 0x14]
xor ebx, ebx
mov esi, 1
cmp dword [eax + 0x15c], 1
je 0x48d50b
mov ecx, dword [esp + 0x18]
and edx, 0x7ffffff
shr edx, cl
mov ecx, dword [ebp + 8]
mov eax, dword [ecx + 0x94]
cmp edx, eax
jae 0x48d73b
mov ecx, dword [ecx + 0x90]
mov eax, dword [ecx + edx*8 + 4]
test eax, eax
je 0x48d6f5
mov ecx, dword [ecx + edx*8]
test byte [ecx + 8], 2
je 0x48d50b
cmp eax, 0xd
jb 0x48d7ec
add eax, 0xfffffff3
cmp eax, 3
ja 0x48d508
jmp 0x48d7fd
movzx eax, byte [edi + 0x25f]
mov edi, dword [ebp + 8]
mov ecx, esi
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 0x48d725
mov edx, dword [edi + 0x78]
mov edi, dword [esp + 0x20]
mov edx, dword [edx + ecx*4]
test edx, edx
js 0x48d66d
mov esi, dword [esp + 0x1c]
test edx, 0x8000000
je 0x48d58d
mov eax, dword [esp + 0x18]
cmp dword [eax + 0x15c], 1
jne 0x48d51c
xor esi, esi
mov dword [esp + 0x28], 0
mov dword [esp + 0x14], 1
jmp 0x48d58d
test esi, 0x40000000
jne 0x48d440
test esi, 0x20000000
je 0x48d80e
mov esi, dword [ebp + 8]
mov eax, dword [esi + 0xb4]
cmp dword [esi + 0xb0], 0
mov dword [esi + 0xb0], 0
je 0x48d781
mov ecx, ebx
mov edx, ebx
sub ecx, eax
neg ecx
sub edx, eax
cmovb edx, ecx
add dword [esi + 0x70], edx
mov edx, dword [esp + 0x24]
cmp ebx, edx
jae 0x48d755
mov eax, dword [esp + 4]
xor ecx, ecx
mov edx, 0xc
movzx eax, byte [eax + ebx]
mov byte [esp + 8], al
movzx eax, byte [0x5b9430]
call fcn.0051b940
test eax, eax
je 0x48d7b3
movzx ecx, byte [esp + 8]
mov byte [eax], 0
mov byte [eax + 1], cl
mov ecx, dword [esp + 0xc]
mov dword [eax + 4], ebx
jmp 0x48d6ba
mov eax, dword [esp + 0x18]
xor esi, esi
cmp dword [eax + 0x15c], 1
je 0x48d581
and edx, 0x7ffffff
mov ecx, dword [esp + 0x54]
shr edx, cl
mov ecx, dword [ebp + 8]
mov eax, dword [ecx + 0x94]
cmp edx, eax
jae 0x48d73b
mov ecx, dword [ecx + 0x90]
mov dword [esp + 0x14], 1
mov eax, dword [ecx + edx*8 + 4]
test eax, eax
je 0x48d6f5
mov ecx, dword [ecx + edx*8]
test byte [ecx + 8], 2
jne 0x48d569
jmp 0x48d589
mov eax, dword [esp + 0x14]
xor edi, edi
mov esi, 1
cmp dword [eax + 0x15c], 1
jne 0x48d4b2
xor ebx, ebx
jmp 0x48d50b
mov edx, dword [ebp + 8]
mov eax, dword [edx + 0xb4]
cmp dword [edx + 0xb0], 0
mov dword [edx + 0xb0], 0
je 0x48d781
mov ecx, ebx
sub ecx, eax
neg ecx
sub ebx, eax
mov eax, dword [esp + 0xc]
cmovb ebx, ecx
add dword [edx + 0x70], ebx
mov dword [eax], 0
jmp 0x48d6c3
and edi, 0x7ffffff
mov ecx, dword [esp + 0x18]
shr edi, cl
mov ecx, dword [ebp + 8]
mov edx, dword [ecx + 0x94]
cmp edi, edx
jae 0x48d761
mov ecx, dword [ecx + 0x90]
mov edx, dword [ecx + edi*8 + 4]
test edx, edx
je 0x48d6f5
mov ecx, dword [ecx + edi*8]
mov edi, dword [ebp + 8]
test byte [ecx + 8], 2
je 0x48d3fd
cmp edx, 0xd
jb 0x48d795
add edx, 0xfffffff3
cmp edx, 3
jbe 0x48d7a4
mov eax, dword [ecx + 0x15]
mov ecx, dword [edi + 0xb4]
cmp dword [edi + 0xb0], 0
mov dword [edi + 0xb0], 0
je 0x48d781
mov edx, ebx
mov esi, ebx
sub edx, ecx
neg edx
sub esi, ecx
mov ecx, dword [esp + 0xc]
cmovb esi, edx
inc ebx
add dword [edi + 0x70], esi
mov dword [ecx], 1
mov dword [ecx + 4], eax
mov dword [ecx + 8], ebx
jmp 0x48d6c3
mov edx, dword [ebp + 8]
mov eax, dword [edx + 0xb4]
cmp dword [edx + 0xb0], 0
mov dword [edx + 0xb0], 0
je 0x48d781
mov ecx, ebx
mov esi, dword [esp + 0x14]
sub ecx, eax
neg ecx
sub ebx, eax
mov eax, dword [esp + 0xc]
cmovb ebx, ecx
add dword [edx + 0x70], ebx
mov edx, dword [esp + 0x1c]
mov dword [eax], esi
mov dword [eax + 4], edx
jmp 0x48d59a
mov ecx, dword [esp + 8]
shl eax, 8
mov edx, esi
mov dword [esp + 0x30], ecx
mov ecx, dword [ebp + 8]
mov dword [esp + 0x34], ecx
lea ecx, [esp + 0x30]
push eax
call fcn.00541b40
add esp, 4
test eax, eax
jne 0x48d644
jmp 0x48c972
mov ecx, dword [esp + 0x18]
and edx, 0x7ffffff
shr edx, cl
mov ecx, dword [ebp + 8]
mov eax, dword [ecx + 0x94]
cmp edx, eax
jae 0x48d73b
mov ecx, dword [ecx + 0x90]
mov eax, dword [ecx + edx*8 + 4]
test eax, eax
je 0x48d6f5
mov ecx, dword [ecx + edx*8]
mov ebx, 0
test byte [ecx + 8], 2
je 0x48d50b
cmp eax, 0xd
jb 0x48d7ec
mov edi, dword [esp + 0x20]
add eax, 0xfffffff3
cmp eax, 3
jbe 0x48d7fd
mov ebx, dword [ecx + 0x15]
mov eax, dword [esp + 0xc]
mov dword [eax], esi
mov dword [eax + 4], ebx
mov dword [eax + 8], edi
jmp 0x48d6c3
and edx, 0x7ffffff
mov ecx, dword [esp + 0x54]
shr edx, cl
mov ecx, dword [ebp + 8]
mov eax, dword [ecx + 0x94]
cmp edx, eax
jae 0x48d73b
mov ecx, dword [ecx + 0x90]
mov dword [esp + 0x28], 0
mov dword [esp + 0x14], 1
mov eax, dword [ecx + edx*8 + 4]
test eax, eax
je 0x48d6f5
mov ecx, dword [ecx + edx*8]
mov esi, 0
test byte [ecx + 8], 2
je 0x48d58d
cmp eax, 0xd
jb 0x48d7ec
add eax, 0xfffffff3
cmp eax, 3
jbe 0x48d7fd
mov esi, dword [ecx + 0x15]
mov dword [esp + 0x14], 1
mov dword [esp + 0x28], edi
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0x14]
mov dword [eax], ecx
mov dword [eax + 4], esi
mov ecx, dword [esp + 0x28]
mov dword [eax + 8], ecx
jmp 0x48d6c3
mov ecx, dword [esp + 8]
mov edx, esi
mov dword [esp + 0x30], ecx
mov dword [esp + 0x34], edi
lea ecx, [esp + 0x30]
push eax
call fcn.00541b40
add esp, 4
test eax, eax
jne 0x48d693
jmp 0x48d07f
movzx eax, byte [0x5b9430]
xor ecx, ecx
mov edx, 0xc
call fcn.0051b940
test eax, eax
je 0x48d7b3
mov byte [eax], 1
jmp 0x48d2e6
mov ecx, dword [esp + 8]
shl eax, 8
mov edx, esi
mov dword [esp + 0x30], ecx
mov ecx, dword [ebp + 8]
mov dword [esp + 0x34], ecx
lea ecx, [esp + 0x30]
push eax
call fcn.00541b40
add esp, 4
test eax, eax
jne 0x48d644
jmp 0x48cdb3
mov ecx, dword [esp + 8]
shl eax, 8
mov edx, esi
mov dword [esp + 0x30], ecx
mov ecx, dword [ebp + 8]
mov dword [esp + 0x34], ecx
lea ecx, [esp + 0x30]
push eax
call fcn.00541b40
add esp, 4
test eax, eax
je 0x48ceb7
movzx eax, byte [0x5b9430]
jmp 0x48d69c
mov edx, esi
mov dword [esp + 0x30], edi
mov dword [esp + 0x34], ebx
lea ecx, [esp + 0x30]
push eax
call fcn.00541b40
add esp, 4
test eax, eax
jne 0x48d693
jmp 0x48d0f2
mov ecx, dword [esp + 8]
mov edx, esi
mov dword [esp + 0x30], ecx
mov ecx, dword [ebp + 8]
mov dword [esp + 0x34], ecx
lea ecx, [esp + 0x30]
push eax
call fcn.00541b40
add esp, 4
test eax, eax
je 0x48d228
movzx eax, byte [0x5b9430]
xor edi, edi
xor ecx, ecx
mov edx, 0xc
call fcn.0051b940
test eax, eax
je 0x48d7b3
mov byte [eax], 1
mov ecx, dword [esp + 0xc]
mov dword [eax + 4], edi
mov dword [ecx + 4], eax
mov dword [ecx], 2
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
push 0x5554d0
call fcn.0053bb10
mov edx, dword [esp + 0x1c]
mov ecx, ebx
push 0x555ac0
call fcn.0053bb10
mov edx, dword [esp + 0x24]
mov ecx, ebx
push 0x555ac0
call fcn.0053bb10
xor ecx, ecx
xor edx, edx
push 0x5580f8
call fcn.0053bb10
mov ecx, eax
push 0x55580c
call fcn.0053bb10
push 0x555b10
call fcn.0053bb10
mov edx, eax
push 0x5554d0
call fcn.0053bb10
push 0x5554e0
call fcn.0053bb10
mov edx, esi
push 0x5554d0
call fcn.0053bb10
mov ecx, edx
mov edx, eax
push 0x55580c
call fcn.0053bb10
mov ecx, ebx
push 0x555b10
call fcn.0053bb10
mov ecx, ebx
push 0x555ae0
call fcn.0053bb10
mov ecx, edi
push 0x55580c
call fcn.0053bb10
mov ecx, str.no_in_progress_search_to_update
mov edx, 0x1f
push 0x555574
call fcn.0053bf30
mov ecx, str.no_in_progress_search_to_finish
mov edx, 0x1f
push 0x5555a4
call fcn.0053bf30
mov ecx, 0xd
push 0x558128
call fcn.0053bab0
mov ecx, 4
push 0x55803c
call fcn.0053bb70
mov ecx, 4
mov edx, 0xc
call fcn.0053b730
mov dword [esp + 0x30], edx
mov dword [esp + 0x34], 0
lea eax, [esp + 0x30]
mov ecx, str.called__Result::unwrap____on_an__Err__value
mov edx, 0x2b
push 0x55581c
push 0x554594
push eax
call fcn.0053be90
mov ecx, 0xd
mov edx, eax
push 0x558128
call fcn.0053bab0
mov ecx, 4
mov edx, eax
push 0x55803c
call fcn.0053bb70
lea eax, [esp + 0x50]
lea ecx, [esp + 0x30]
mov edx, 0x555ad0
mov dword [esp + 0x30], 0x555a98
mov dword [esp + 0x34], 1
mov dword [esp + 0x40], 0
mov dword [esp + 0x38], eax
mov dword [esp + 0x3c], 0
call fcn.0053ba80
int3