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

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff8
sub esp, 0x100
mov edi, dword [ebp + 8]
mov dword [esp + 4], ecx
mov ecx, dword [ebp + 0xc]
xor esi, esi
mov ebx, dword [edi + 0x10]
mov eax, dword [edi + 0x14]
mov dword [ecx], 0
cmp ebx, eax
jbe 0x4db4d5
mov eax, esi
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
mov dword [esp], edx
mov edx, dword [edi]
mov esi, dword [esp + 4]
mov dword [esp + 0xc], eax
lea eax, [edx - 1]
cmp eax, 2
jb 0x4db503
cmp byte [esi + 0x3c], 3
lea eax, [esi + 0x30]
mov edi, 0x84ef0c
cmovne edi, eax
cmp byte [edi + 0xc], 2
jne 0x4db8c4
mov eax, dword [esi + 0x280]
cmp dword [ecx + 0xc], 0
mov dword [esp + 0x18], eax
je 0x4db737
mov edi, dword [ecx + 0x10]
cmp dword [ecx + 0x14], 0
je 0x4db5ca
test edi, 0x8000000
je 0x4dcac7
movzx ecx, byte [esi + 0x284]
mov eax, edi
and eax, 0x7ffffff
shr eax, cl
mov ecx, dword [esp]
mov edx, dword [ecx + 0x94]
cmp eax, edx
jae 0x4dca5b
mov ecx, dword [ecx + 0x90]
mov edx, dword [ecx + eax*8 + 4]
test edx, edx
je 0x4dca67
mov ebx, dword [ecx + eax*8]
movzx ecx, byte [ebx + 8]
test cl, 1
je 0x4db5ca
mov eax, dword [ebp + 0xc]
mov esi, 1
test cl, 2
mov eax, dword [eax + 0x18]
je 0x4db58b
cmp edx, 0xc
jbe 0x4dcb52
mov esi, dword [ebx + 0x11]
cmp eax, esi
jae 0x4db5ca
xor esi, esi
test cl, 2
mov ecx, dword [ebp + 0xc]
lea edi, [eax + 1]
mov dword [ecx + 0x14], 1
mov dword [ecx + 0x18], edi
mov ecx, 0
je 0x4db9b7
mov ecx, dword [esp + 0x18]
cmp dword [ecx + 0x15c], 1
mov ecx, 0
jne 0x4db999
jmp 0x4db9b7
mov eax, dword [ebp + 0xc]
xor esi, esi
mov ebx, dword [eax + 0x1c]
inc ebx
mov dword [eax + 0x1c], ebx
mov eax, dword [esp + 0xc]
cmp ebx, eax
ja 0x4db4cb
mov esi, dword [esp]
cmp dword [esi + 0xb0], 1
jne 0x4db60c
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
mov eax, dword [esp + 0xc]
cmp ebx, eax
mov dword [esi + 0xb0], 1
mov dword [esi + 0xb4], ebx
mov dword [esi + 0xb8], ebx
jae 0x4db9ce
mov eax, dword [ebp + 8]
mov esi, dword [esp + 4]
mov edx, ebx
mov ecx, dword [eax + 8]
mov eax, dword [eax + 0xc]
mov dword [esp + 0x10], ecx
mov ecx, dword [esi + 0x284]
mov dword [esp + 0x14], eax
and ecx, 0x1f
cmp eax, ebx
cmova edx, eax
mov dword [esp + 0x4c], ecx
mov dword [esp + 8], edx
nop word [eax + eax]
cmp dword [esp + 8], ebx
je 0x4dc8cc
mov eax, dword [esp + 0x10]
mov ecx, edi
and ecx, 0x7ffffff
movzx eax, byte [eax + ebx]
movzx edx, byte [esi + eax + 0x160]
mov esi, dword [esp]
add ecx, edx
mov edx, dword [esi + 0x7c]
cmp ecx, edx
jae 0x4dc8c2
mov edx, dword [esi + 0x78]
mov esi, dword [esp + 4]
mov edx, dword [edx + ecx*4]
test edx, edx
js 0x4db6ee
mov eax, dword [ebp + 0xc]
cmp edx, 0x8000000
jb 0x4db6c1
test edx, 0x10000000
mov dword [eax + 0xc], 1
mov dword [eax + 0x10], edx
je 0x4dbed5
inc ebx
mov dword [eax + 0x1c], ebx
mov eax, dword [esp]
cmp dword [eax + 0xb0], 0
je 0x4dcaa7
mov dword [eax + 0xb8], ebx
mov eax, dword [esp + 0xc]
mov edi, edx
cmp eax, ebx
jne 0x4db660
jmp 0x4dbb67
mov ecx, dword [esp]
shl eax, 8
mov edx, edi
mov dword [esp + 0x28], esi
mov dword [esp + 0x2c], ecx
lea ecx, [esp + 0x28]
push eax
call fcn.007c8760
add esp, 4
test eax, eax
je 0x4db6a0
movzx eax, byte [0x94bfc5]
xor ecx, ecx
mov edx, 0xc
call fcn.0071ee80
test eax, eax
je 0x4dcb61
mov byte [eax], 1
mov esi, eax
mov dword [eax + 4], ebx
jmp 0x4db4cb
test ebx, ebx
mov dword [ecx + 0x1c], ebx
mov dword [esp + 0x14], edx
je 0x4dbb5c
mov edi, dword [ebp + 8]
lea eax, [ebx - 1]
cmp dword [edi + 0xc], eax
jbe 0x4dbd7c
mov ecx, dword [edi + 8]
test ecx, ecx
je 0x4dbd7c
movzx eax, byte [ecx + eax]
mov ecx, dword [esi + 0x260]
mov edx, dword [esi + 0x268]
or edx, dword [esi + 0x278]
or ecx, dword [esi + 0x270]
mov byte [esp + 8], al
mov eax, dword [esi + 0x26c]
or ecx, edx
mov edx, dword [esi + 0x264]
or eax, dword [esi + 0x27c]
or edx, dword [esi + 0x274]
or edx, eax
or edx, ecx
movzx edx, byte [esp + 8]
mov ecx, dword [edi + 4]
mov dword [esp + 0x1c], edx
mov dword [esp + 0x10], ecx
je 0x4dbd91
mov ch, byte [esp + 8]
mov dword [esp + 0xac], 0
mov dword [esp + 0xa8], 0
mov dword [esp + 0xa4], 0
mov dword [esp + 0xa0], 1
mov dword [esp + 0x9c], 0
mov dword [esp + 0x98], 0
mov dword [esp + 0x94], 0
mov dword [esp + 0x90], 0
mov al, ch
and ch, 7
and al, 0x78
mov cl, ch
shr al, 3
neg al
movsx edx, al
mov edi, dword [esp + edx + 0xa8]
mov eax, dword [esp + edx + 0xac]
mov dword [esp + 0x24], edx
shld eax, edi, cl
shl edi, cl
not cl
mov dword [esp + 0x4c], eax
mov eax, dword [esp + edx + 0xa4]
mov esi, eax
mov edx, eax
mov eax, dword [esp + 0x1c]
shr esi, 1
shr esi, cl
mov cl, ch
or esi, edi
mov edi, dword [esp + 0x24]
shr eax, 3
and eax, 0xfffffff0
mov edi, dword [esp + edi + 0xa0]
shld edx, edi, cl
shl edi, cl
mov ecx, dword [esp + 4]
mov dword [esp + 0x48], edx
add ecx, 0x260
mov dword [esp + 0x24], ecx
and esi, dword [ecx + eax + 8]
mov ecx, dword [esp + 0x4c]
mov edx, dword [esp + 0x24]
and ecx, dword [edx + eax + 0xc]
mov edx, dword [esp + 0x48]
mov dword [esp + 0x4c], ecx
mov ecx, dword [esp + 0x24]
and edx, dword [ecx + eax + 4]
and edi, dword [ecx + eax]
or edx, dword [esp + 0x4c]
or edi, esi
or edx, edi
je 0x4dbd91
movzx eax, byte [esp + 8]
mov dword [esp + 0x54], 4
mov byte [esp + 0x58], al
jmp 0x4dbddf
mov eax, dword [esi + 0x280]
cmp dword [ecx + 0xc], 0
mov dword [esp + 0x14], edx
mov dword [esp + 0x48], eax
mov eax, dword [eax + 0x13c]
mov dword [esp + 0x4c], eax
je 0x4dbbd6
mov eax, dword [ecx + 0x10]
cmp dword [ecx + 0x14], 0
mov dword [esp + 8], eax
je 0x4dba7d
mov eax, dword [esp + 8]
test eax, 0x8000000
je 0x4dcac7
movzx ecx, byte [esi + 0x284]
and eax, 0x7ffffff
shr eax, cl
mov ecx, dword [esp]
mov edx, dword [ecx + 0x94]
cmp eax, edx
jae 0x4dca5b
mov ecx, dword [ecx + 0x90]
mov edx, dword [ecx + eax*8 + 4]
test edx, edx
je 0x4dca67
mov ebx, dword [ecx + eax*8]
movzx ecx, byte [ebx + 8]
test cl, 1
je 0x4dba7d
mov eax, dword [ebp + 0xc]
mov esi, 1
test cl, 2
mov eax, dword [eax + 0x18]
je 0x4db963
cmp edx, 0xc
jbe 0x4dcb52
mov esi, dword [ebx + 0x11]
cmp eax, esi
jae 0x4dba7d
xor esi, esi
test cl, 2
mov ecx, dword [ebp + 0xc]
lea edi, [eax + 1]
mov dword [ecx + 0x14], 1
mov dword [ecx + 0x18], edi
mov ecx, 0
je 0x4db9b7
mov ecx, dword [esp + 0x48]
cmp dword [ecx + 0x15c], 1
mov ecx, 0
je 0x4db9b7
lea ecx, [eax*4 + 0xd]
mov eax, edx
sub eax, ecx
jb 0x4dcb81
cmp eax, 3
jbe 0x4dcb70
mov ecx, dword [ebx + ecx + 8]
mov edx, dword [ebp + 0xc]
mov eax, dword [edx + 0x1c]
mov dword [edx], 1
mov dword [edx + 4], ecx
mov dword [edx + 8], eax
jmp 0x4db4cb
mov ecx, dword [ebp + 8]
mov esi, dword [esp + 4]
mov edx, dword [ecx + 0xc]
cmp eax, edx
jae 0x4dbb75
mov ecx, eax
mov eax, dword [ebp + 8]
mov eax, dword [eax + 8]
movzx eax, byte [eax + ecx]
mov ecx, edi
and ecx, 0x7ffffff
mov byte [esp + 0x10], al
movzx eax, al
movzx edx, byte [esi + eax + 0x160]
mov esi, dword [esp]
add ecx, edx
mov edx, dword [esi + 0x7c]
cmp ecx, edx
jae 0x4dc8c2
mov edx, dword [esi + 0x78]
mov ebx, dword [edx + ecx*4]
mov ecx, dword [esp + 4]
test ebx, ebx
js 0x4dc53d
xor esi, esi
test ebx, 0x8000000
jne 0x4dc6af
test ebx, 0x20000000
je 0x4dbbc1
movzx eax, byte [0x94bfc5]
xor ecx, ecx
mov edx, 0xc
call fcn.0071ee80
test eax, eax
je 0x4dcb61
mov esi, eax
mov byte [eax], 0
movzx eax, byte [esp + 0x10]
mov ecx, dword [esp + 0xc]
mov edi, ebx
mov byte [esi + 1], al
mov eax, dword [ebp + 0xc]
mov ebx, edi
mov edi, dword [esp]
mov dword [esi + 4], ecx
jmp 0x4dbbc7
mov eax, dword [ebp + 0xc]
xor esi, esi
mov ebx, dword [eax + 0x1c]
inc ebx
mov dword [eax + 0x1c], ebx
mov eax, dword [esp + 0xc]
cmp ebx, eax
ja 0x4db4cb
mov esi, dword [esp]
cmp dword [esi + 0xb0], 1
jne 0x4dbabf
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
mov eax, dword [esp + 0xc]
cmp ebx, eax
mov dword [esi + 0xb0], 1
mov dword [esi + 0xb4], ebx
mov dword [esi + 0xb8], ebx
jae 0x4dbe3a
mov edx, dword [esp + 4]
mov esi, dword [ebp + 8]
mov eax, 1
mov ecx, dword [edx + 0x284]
mov esi, dword [esi + 4]
and ecx, 0x1f
mov dword [esp + 0x68], esi
shl eax, cl
mov dword [esp + 0x6c], ecx
mov dword [esp + 0x70], eax
mov eax, 0x40000000
bts eax, ecx
mov ecx, dword [ebp + 8]
mov dword [esp + 0x78], eax
lea eax, [esi + esi*2]
lea esi, [edx + 0x260]
lea eax, [eax + eax + 0xc]
mov dword [esp + 0x44], esi
mov esi, dword [esp + 8]
mov dword [esp + 0x74], eax
mov eax, dword [edi]
mov dword [esp + 0x1c], eax
mov eax, dword [edi + 4]
mov dword [esp + 0x24], eax
movzx eax, byte [edx + 0x59]
mov byte [esp + 0x53], al
mov eax, dword [ecx + 8]
mov ecx, dword [ecx + 0xc]
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0xc]
mov dword [esp + 0x10], ecx
inc eax
mov dword [esp + 0x64], eax
jmp 0x4dc122
mov eax, dword [ebp + 8]
mov eax, dword [eax + 4]
jmp 0x4dbd7f
mov edi, edx
mov edx, dword [esp + 0x14]
cmp eax, edx
jb 0x4db9e0
movzx eax, byte [esi + 0x25f]
mov esi, dword [esp]
mov ecx, edi
mov dword [esp + 0x14], edx
and ecx, 0x7ffffff
shl eax, 0x10
add eax, 0x10001
mov edx, eax
shr edx, 0x10
add ecx, edx
mov edx, dword [esi + 0x7c]
cmp ecx, edx
jae 0x4dca75
mov edx, dword [esi + 0x78]
mov ebx, dword [edx + ecx*4]
test ebx, ebx
js 0x4dc58b
xor esi, esi
test ebx, 0x8000000
jne 0x4dc74c
mov edi, dword [esp]
mov eax, dword [ebp + 0xc]
mov dword [eax + 0xc], 1
mov dword [eax + 0x10], ebx
jmp 0x4dc7e5
test ebx, ebx
mov dword [ecx + 0x1c], ebx
je 0x4dbf4e
mov edx, dword [ebp + 8]
lea eax, [ebx - 1]
cmp dword [edx + 0xc], eax
jbe 0x4dbf56
mov ecx, dword [edx + 8]
test ecx, ecx
je 0x4dbf56
movzx eax, byte [ecx + eax]
mov edx, dword [esi + 0x268]
mov ecx, dword [esi + 0x26c]
mov byte [esp + 8], al
mov eax, dword [esi + 0x260]
or edx, dword [esi + 0x278]
or ecx, dword [esi + 0x27c]
or eax, dword [esi + 0x270]
or eax, edx
mov edx, dword [esi + 0x264]
or edx, dword [esi + 0x274]
or edx, ecx
or edx, eax
movzx eax, byte [esp + 8]
mov dword [esp + 0x44], eax
mov eax, dword [ebp + 8]
mov eax, dword [eax + 4]
mov dword [esp + 0x10], eax
je 0x4dc065
mov ch, byte [esp + 8]
mov dword [esp + 0xec], 0
mov dword [esp + 0xe8], 0
mov dword [esp + 0xe4], 0
mov dword [esp + 0xe0], 1
mov dword [esp + 0xdc], 0
mov dword [esp + 0xd8], 0
mov dword [esp + 0xd4], 0
mov dword [esp + 0xd0], 0
mov al, ch
and ch, 7
and al, 0x78
mov cl, ch
shr al, 3
neg al
movsx eax, al
mov dword [esp + 0x1c], eax
mov esi, dword [esp + eax + 0xe8]
mov eax, dword [esp + eax + 0xec]
shld eax, esi, cl
shl esi, cl
not cl
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0x1c]
mov edx, dword [esp + eax + 0xe4]
mov eax, dword [esp + 0x44]
mov dword [esp + 0x64], edx
shr edx, 1
shr eax, 3
shr edx, cl
mov cl, ch
and eax, 0xfffffff0
or edx, esi
mov esi, dword [esp + 0x1c]
mov esi, dword [esp + esi + 0xe0]
shld dword [esp + 0x64], esi, cl
shl esi, cl
mov ecx, dword [esp + 4]
mov dword [esp + 0x24], esi
add ecx, 0x260
mov dword [esp + 0x1c], ecx
and edx, dword [ecx + eax + 8]
mov ecx, dword [esp + 0x18]
mov esi, dword [esp + 0x1c]
and ecx, dword [esi + eax + 0xc]
mov esi, dword [esp + 0x24]
mov dword [esp + 0x18], ecx
mov ecx, dword [esp + 0x1c]
and esi, dword [ecx + eax]
mov ecx, dword [esp + 0x64]
mov dword [esp + 0x24], esi
mov esi, dword [esp + 0x1c]
and ecx, dword [esi + eax + 4]
mov eax, dword [esp + 0x24]
mov esi, dword [esp + 4]
or ecx, dword [esp + 0x18]
or eax, edx
or ecx, eax
je 0x4dc065
movzx eax, byte [esp + 8]
mov dword [esp + 0x54], 4
mov byte [esp + 0x58], al
jmp 0x4dc09f
mov eax, dword [edi + 4]
mov esi, dword [esp]
mov dword [esp + 0x10], eax
mov al, 2
movzx ecx, al
test edx, edx
jne 0x4dbdac
jmp 0x4dbdb4
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 4]
mov esi, dword [esp]
mov edx, dword [esp + 0x14]
movzx eax, byte [ecx + eax + 0x60]
movzx ecx, al
test edx, edx
je 0x4dbdb4
cmp edx, 1
jne 0x4dbe1a
add ecx, 6
mov edx, dword [esi + 0x88]
cmp ecx, edx
jae 0x4dbf44
mov edx, dword [esi + 0x84]
mov edx, dword [edx + ecx*4]
test edx, edx
js 0x4dc038
mov dword [esp + 0x58], edx
mov dword [esp + 0x54], 5
lea ecx, [esp + 0x28]
lea edx, [esp + 0x54]
push ebx
call fcn.004d9ba0
add esp, 4
cmp dword [esp + 0x28], 0
mov esi, dword [esp + 0x2c]
jne 0x4db4cb
mov eax, dword [esp + 0xc]
mov edi, esi
mov esi, dword [esp]
cmp dword [esi + 0xb0], 1
je 0x4db5ee
jmp 0x4db60c
mov edx, dword [esp + 4]
test byte [edx + 0x59], 1
jne 0x4dbf1b
mov eax, dword [esp + 0x10]
mov dword [esp + 0x54], 2
mov dword [esp + 0x58], eax
jmp 0x4dbddf
mov edx, dword [ebp + 8]
mov esi, dword [esp]
mov ecx, dword [edx + 0xc]
cmp eax, ecx
jae 0x4dc4a6
mov ecx, eax
mov eax, dword [edx + 8]
movzx ebx, byte [eax + ecx]
mov ecx, dword [esp + 4]
movzx eax, bl
movzx edx, byte [ecx + eax + 0x160]
mov ecx, dword [esp + 8]
and ecx, 0x7ffffff
add ecx, edx
mov edx, dword [esi + 0x7c]
cmp ecx, edx
jae 0x4dc8c2
mov edx, dword [esi + 0x78]
mov edi, dword [edx + ecx*4]
mov ecx, dword [esp + 4]
test edi, edi
js 0x4dc819
xor esi, esi
test edi, 0x8000000
jne 0x4dc8ee
test edi, 0x20000000
je 0x4dc4f3
movzx eax, byte [0x94bfc5]
xor ecx, ecx
mov edx, 0xc
call fcn.0071ee80
test eax, eax
je 0x4dcb61
mov byte [eax], 0
mov byte [eax + 1], bl
mov esi, eax
mov ebx, dword [esp + 0xc]
mov eax, dword [ebp + 0xc]
jmp 0x4dc8b0
mov edi, dword [esp]
test edx, 0x8000000
jne 0x4dbf64
test edx, 0x40000000
jne 0x4dc52d
test edx, 0x20000000
je 0x4dcbc4
mov ecx, edi
mov edx, ebx
call fcn.004d9c70
mov eax, dword [esp + 0x10]
movzx ecx, byte [eax + ebx]
mov edx, ebx
call fcn.004d9cb0
mov esi, eax
jmp 0x4db4cb
mov edx, dword [esp + 0x18]
mov edi, dword [esp + 0x10]
cmp dword [edx + 0x15c], edi
jbe 0x4dc00d
lea edx, [edi + edi*2]
lea ecx, [ecx + edx*2 + 0xc]
mov edx, dword [esi + 0x88]
cmp ecx, edx
jb 0x4dbdc2
push 0x84eecc
call fcn.007c1be0
mov eax, dword [ebp + 8]
mov eax, dword [eax + 4]
jmp 0x4dbf59
mov eax, dword [edx + 4]
mov dword [esp + 0x10], eax
mov al, 2
jmp 0x4dc06e
mov ecx, dword [esp + 0x18]
mov dword [eax + 0x14], 1
mov dword [eax + 0x18], 1
xor esi, esi
cmp dword [ecx + 0x15c], 1
je 0x4dbfce
mov eax, dword [edi + 0x94]
and edx, 0x7ffffff
mov ecx, dword [esp + 0x4c]
shr edx, cl
cmp edx, eax
jae 0x4dca99
mov ecx, dword [edi + 0x90]
mov eax, dword [ecx + edx*8 + 4]
test eax, eax
je 0x4dca7f
mov ecx, dword [ecx + edx*8]
test byte [ecx + 8], 2
je 0x4dbfce
cmp eax, 0xd
jb 0x4dcc28
add eax, 0xfffffff3
cmp eax, 3
jbe 0x4dcb70
mov esi, dword [ecx + 0x15]
mov eax, dword [ebp + 0xc]
mov dword [eax], 1
mov dword [eax + 4], esi
mov dword [eax + 8], ebx
mov eax, dword [edi + 0xb4]
cmp dword [edi + 0xb0], 0
mov dword [edi + 0xb0], 0
je 0x4dcadb
mov ecx, ebx
sub ecx, eax
neg ecx
sub ebx, eax
cmovb ebx, ecx
add dword [edi + 0x70], ebx
jmp 0x4dc536
mov ecx, dword [esp + 4]
mov edx, 1
mov ecx, dword [ecx + 0x284]
and ecx, 0x1f
shl edx, cl
cmp ecx, 0x1b
jae 0x4dcb9a
or edx, 0x40000000
test edx, edx
jns 0x4dbdd3
mov ecx, dword [esp + 4]
movzx eax, al
lea edx, [esp + 0x28]
mov dword [esp + 0x28], ecx
mov dword [esp + 0x2c], esi
lea ecx, [esp + 0x54]
push eax
push dword [esp + 0x14]
push dword [esp + 0x1c]
call fcn.007c9a60
add esp, 0xc
jmp 0x4dbddf
mov eax, dword [esp + 0x44]
movzx eax, byte [esi + eax + 0x60]
mov ecx, dword [esp]
movzx eax, al
mov edx, dword [ecx + 0x88]
cmp edx, eax
jbe 0x4dca8d
mov ecx, dword [ecx + 0x84]
mov ecx, dword [ecx + eax*4]
test ecx, ecx
js 0x4dc678
mov dword [esp + 0x58], ecx
mov dword [esp + 0x54], 5
lea ecx, [esp + 0x28]
lea edx, [esp + 0x54]
push ebx
call fcn.004d9ba0
add esp, 4
cmp dword [esp + 0x28], 0
mov esi, dword [esp + 0x2c]
jne 0x4db4cb
mov eax, dword [esp + 0xc]
mov dword [esp + 8], esi
mov esi, dword [esp]
cmp dword [esi + 0xb0], 1
je 0x4dbaa1
jmp 0x4dbabf
mov eax, dword [esp + 0x68]
mov dword [esp + 0x54], 2
mov dword [esp + 0x58], eax
lea ecx, [esp + 0x28]
lea edx, [esp + 0x54]
push edi
call fcn.004d9ba0
add esp, 4
cmp dword [esp + 0x28], 0
mov esi, dword [esp + 0x2c]
jne 0x4db4cb
mov ecx, dword [esp + 0x10]
mov ebx, edi
mov eax, dword [esp + 0xc]
mov edx, dword [esp + 4]
cmp edi, eax
jae 0x4dc494
mov edi, dword [esp]
cmp ebx, ecx
jae 0x4dca4b
mov eax, dword [esp + 0x18]
mov ecx, esi
and ecx, 0x7ffffff
movzx eax, byte [eax + ebx]
movzx edx, byte [edx + eax + 0x160]
add ecx, edx
mov edx, dword [edi + 0x7c]
cmp ecx, edx
jae 0x4dc8c2
mov edx, dword [edi + 0x78]
mov dword [esp + 8], esi
mov esi, dword [edx + ecx*4]
test esi, esi
js 0x4dc3a2
mov eax, dword [ebp + 0xc]
mov ecx, dword [esp + 0x10]
cmp esi, 0x7ffffff
jbe 0x4dc35e
test esi, 0x10000000
mov dword [eax + 0xc], 1
mov dword [eax + 0x10], esi
je 0x4dc4fb
mov edi, dword [esp + 0x24]
mov edx, dword [esp + 0x1c]
mov eax, dword [edi + 8]
dec eax
and eax, 0xfffffff8
lea eax, [eax + edx + 8]
push dword [esp + 0xc]
push ebx
push ecx
push dword [esp + 0x24]
push eax
lea eax, [esp + 0x104]
push eax
call dword [edi + 0x20]
add esp, 0x18
cmp dword [esp + 0xf0], 0
je 0x4dc536
mov edi, dword [esp + 0xf4]
cmp edi, ebx
jbe 0x4dc354
mov eax, dword [ebp + 0xc]
cmp dword [esp + 0x4c], 0
mov ecx, dword [esp + 0x10]
mov dword [eax + 0x1c], edi
je 0x4dc110
mov eax, dword [esp + 0xc]
mov dword [esp + 0x88], edi
cmp ecx, eax
mov dword [esp + 0x8c], eax
jb 0x4dcaef
cmp dword [esp + 0x64], edi
jb 0x4dcaef
mov ebx, dword [esp + 0x44]
lea eax, [edi - 1]
cmp ecx, eax
jbe 0x4dc38c
mov ecx, dword [ebx]
mov esi, dword [ebx + 8]
mov edx, dword [ebx + 0xc]
or esi, dword [ebx + 0x18]
or ecx, dword [ebx + 0x10]
or edx, dword [ebx + 0x1c]
or ecx, esi
mov esi, dword [ebx + 4]
or esi, dword [ebx + 0x14]
or esi, edx
or esi, ecx
mov ecx, dword [esp + 0x18]
movzx ecx, byte [ecx + eax]
movzx eax, cl
mov dword [esp + 8], eax
je 0x4dc3e4
mov eax, ecx
mov dword [esp + 0xcc], 0
mov dword [esp + 0xc8], 0
mov dword [esp + 0xc4], 0
mov dword [esp + 0xc0], 1
mov dword [esp + 0xbc], 0
mov dword [esp + 0xb8], 0
mov dword [esp + 0xb4], 0
mov dword [esp + 0xb0], 0
mov byte [esp + 0x23], cl
and al, 0x78
mov ch, byte [esp + 0x23]
shr al, 3
neg al
movsx esi, al
mov edx, dword [esp + esi + 0xc8]
mov eax, dword [esp + esi + 0xcc]
and ch, 7
mov dword [esp + 0x7c], esi
mov cl, ch
shld eax, edx, cl
shl edx, cl
not cl
mov dword [esp + 0x80], eax
mov eax, dword [esp + 8]
mov ebx, dword [esp + esi + 0xc4]
shr eax, 3
mov esi, ebx
and eax, 0xfffffff0
shr esi, 1
shr esi, cl
mov cl, ch
or esi, edx
mov edx, dword [esp + 0x7c]
mov edx, dword [esp + edx + 0xc0]
shld ebx, edx, cl
shl edx, cl
mov ecx, dword [esp + 0x44]
and esi, dword [ecx + eax + 8]
mov ecx, dword [esp + 0x44]
and edx, dword [ecx + eax]
mov ecx, dword [esp + 0x44]
or edx, esi
mov esi, dword [esp + 0x80]
and esi, dword [ecx + eax + 0xc]
mov ecx, dword [esp + 0x44]
and ebx, dword [ecx + eax + 4]
movzx eax, byte [esp + 0x23]
or ebx, esi
or ebx, edx
je 0x4dc3e4
mov dword [esp + 0x54], 4
mov byte [esp + 0x58], al
jmp 0x4dc0ec
mov edi, dword [esp]
mov eax, dword [ebp + 0xc]
mov ecx, dword [esp + 0x10]
inc ebx
cmp dword [edi + 0xb0], 0
mov dword [eax + 0x1c], ebx
je 0x4dcaa7
mov dword [edi + 0xb8], ebx
mov edi, ebx
mov eax, dword [esp + 0xc]
mov edx, dword [esp + 4]
cmp edi, eax
jb 0x4dc122
jmp 0x4dc494
mov edx, dword [esp + 4]
mov al, 2
mov esi, dword [esp + 0x14]
movzx ecx, al
test esi, esi
jne 0x4dc3fc
jmp 0x4dc425
mov ecx, dword [esp + 4]
mov edx, dword [esp + 8]
shl eax, 8
mov dword [esp + 0x28], ecx
mov dword [esp + 0x2c], edi
lea ecx, [esp + 0x28]
push eax
call fcn.007c8760
add esp, 4
test eax, eax
jne 0x4db70f
mov esi, edx
mov eax, dword [ebp + 0xc]
mov ecx, dword [esp + 0x10]
cmp esi, 0x7ffffff
ja 0x4dc177
jmp 0x4dc35e
mov edx, dword [esp + 4]
mov eax, dword [esp + 8]
movzx eax, byte [edx + eax + 0x60]
mov esi, dword [esp + 0x14]
movzx ecx, al
test esi, esi
je 0x4dc425
cmp esi, 1
jne 0x4dc406
add ecx, 6
jmp 0x4dc425
test byte [esp + 0x53], 1
je 0x4dc0dc
mov esi, dword [esp + 0x48]
mov ebx, dword [esp + 0x68]
cmp dword [esi + 0x15c], ebx
jbe 0x4dc458
add ecx, dword [esp + 0x74]
mov esi, dword [esp]
mov edx, dword [esi + 0x88]
cmp ecx, edx
jae 0x4dbf44
mov edx, dword [esi + 0x84]
mov ecx, dword [edx + ecx*4]
mov edx, dword [esp + 4]
test ecx, ecx
js 0x4dc468
mov dword [esp + 0x58], ecx
mov dword [esp + 0x54], 5
jmp 0x4dc0ec
cmp dword [esp + 0x6c], 0x1b
mov ecx, dword [esp + 0x78]
jb 0x4dc443
jmp 0x4dcbfa
mov ecx, dword [esp]
movzx eax, al
mov dword [esp + 0x28], edx
lea edx, [esp + 0x28]
mov dword [esp + 0x2c], ecx
lea ecx, [esp + 0x54]
push eax
push dword [esp + 0x6c]
push dword [esp + 0x1c]
call fcn.007c9a60
add esp, 0xc
jmp 0x4dc0ec
mov dword [esp + 8], esi
mov esi, dword [esp]
mov edx, dword [ebp + 8]
cmp eax, ecx
jb 0x4dbe4b
mov eax, dword [esp + 4]
mov ebx, ecx
mov ecx, dword [esp + 8]
movzx eax, byte [eax + 0x25f]
and ecx, 0x7ffffff
shl eax, 0x10
add eax, 0x10001
mov edx, eax
shr edx, 0x10
add ecx, edx
mov edx, dword [esi + 0x7c]
cmp ecx, edx
jae 0x4dca75
mov edx, dword [esi + 0x78]
mov edi, dword [edx + ecx*4]
test edi, edi
js 0x4dc861
xor esi, esi
test edi, 0x8000000
jne 0x4dc975
mov eax, dword [ebp + 0xc]
jmp 0x4dc8b3
test esi, 0x8000000
jne 0x4dc5dd
test esi, 0x40000000
jne 0x4dc52d
test esi, 0x20000000
je 0x4dcbc4
mov ecx, edi
mov edx, ebx
call fcn.004d9c70
mov eax, dword [esp + 0x18]
jmp 0x4dbf09
mov ecx, edi
mov edx, ebx
call fcn.004d9c70
xor esi, esi
jmp 0x4db4cb
mov dword [esp + 0x28], ecx
mov ecx, dword [esp]
shl eax, 8
mov edx, edi
mov dword [esp + 0x2c], ecx
lea ecx, [esp + 0x28]
push eax
call fcn.007c8760
add esp, 4
test eax, eax
je 0x4dc69f
movzx eax, byte [0x94bfc5]
xor ecx, ecx
mov edx, 0xc
call fcn.0071ee80
test eax, eax
je 0x4dcb61
mov esi, eax
mov byte [eax], 1
mov ecx, dword [esp + 0xc]
jmp 0x4dba6d
mov ecx, dword [esp + 4]
mov edx, edi
mov dword [esp + 0x28], ecx
mov ecx, dword [esp]
mov dword [esp + 0x2c], ecx
lea ecx, [esp + 0x28]
push eax
call fcn.007c8760
add esp, 4
test eax, eax
je 0x4dc73c
movzx eax, byte [0x94bfc5]
xor ecx, ecx
mov edx, 0xc
call fcn.0071ee80
test eax, eax
je 0x4dcb61
mov esi, eax
mov byte [eax], 1
mov eax, dword [ebp + 0xc]
mov ecx, dword [esp + 0x14]
jmp 0x4dba70
mov ecx, dword [esp + 0x48]
mov dword [eax + 0x14], 1
mov dword [eax + 0x18], 1
xor eax, eax
cmp dword [ecx + 0x15c], 1
je 0x4dc647
mov edx, dword [edi + 0x94]
and esi, 0x7ffffff
mov ecx, dword [esp + 0x6c]
shr esi, cl
cmp esi, edx
jae 0x4dcabb
mov ecx, dword [edi + 0x90]
mov edx, dword [ecx + esi*8 + 4]
test edx, edx
je 0x4dca7f
mov ecx, dword [ecx + esi*8]
test byte [ecx + 8], 2
je 0x4dc647
cmp edx, 0xd
jb 0x4dcb8b
add edx, 0xfffffff3
cmp edx, 3
jbe 0x4dca3c
mov eax, dword [ecx + 0x15]
mov ecx, dword [ebp + 0xc]
mov dword [ecx], 1
mov dword [ecx + 4], eax
mov dword [ecx + 8], ebx
mov eax, dword [edi + 0xb4]
cmp dword [edi + 0xb0], 0
mov dword [edi + 0xb0], 0
jne 0x4dbffa
jmp 0x4dcadb
mov ecx, dword [esp]
mov dword [esp + 0x28], esi
lea edx, [esp + 0x28]
mov dword [esp + 0x2c], ecx
lea ecx, [esp + 0x54]
push eax
push dword [esp + 0x14]
push 0
call fcn.007c9a60
add esp, 0xc
jmp 0x4dc09f
mov ebx, edx
xor esi, esi
test ebx, 0x8000000
je 0x4dba33
mov eax, dword [esp + 0x18]
cmp dword [eax + 0x15c], 1
jne 0x4dc6cb
mov eax, dword [esp + 0xc]
mov edi, dword [esp]
mov ecx, dword [ebp + 0xc]
jmp 0x4dc7bf
mov ecx, dword [esp + 4]
mov edi, dword [esp]
mov eax, ebx
and eax, 0x7ffffff
movzx ecx, byte [ecx + 0x284]
mov edx, dword [edi + 0x94]
shr eax, cl
cmp eax, edx
jae 0x4dca5b
mov ecx, dword [edi + 0x90]
mov edx, dword [ecx + eax*8 + 4]
test edx, edx
je 0x4dca7f
mov eax, dword [ecx + eax*8]
test byte [eax + 8], 2
jne 0x4dc717
mov eax, dword [esp + 0xc]
mov ecx, dword [ebp + 0xc]
jmp 0x4dc7bf
mov ecx, dword [ebp + 0xc]
cmp edx, 0xd
jb 0x4dcb8b
mov esi, dword [esp + 0xc]
add edx, 0xfffffff3
cmp edx, 3
mov dword [esp + 0x14], esi
ja 0x4dc7b8
jmp 0x4dca3c
mov ebx, edx
xor esi, esi
test ebx, 0x8000000
je 0x4dbbc1
mov eax, dword [esp + 0x18]
xor esi, esi
mov edi, dword [esp]
cmp dword [eax + 0x15c], 1
je 0x4dc79b
mov ecx, dword [esp + 4]
mov edx, dword [edi + 0x94]
mov eax, ebx
and eax, 0x7ffffff
movzx ecx, byte [ecx + 0x284]
shr eax, cl
cmp eax, edx
jae 0x4dca5b
mov ecx, dword [edi + 0x90]
mov edx, dword [ecx + eax*8 + 4]
test edx, edx
je 0x4dca7f
mov eax, dword [ecx + eax*8]
test byte [eax + 8], 2
jne 0x4dc7a0
mov ecx, dword [ebp + 0xc]
jmp 0x4dc7bb
mov ecx, dword [ebp + 0xc]
cmp edx, 0xd
jb 0x4dcb8b
add edx, 0xfffffff3
cmp edx, 3
jbe 0x4dca3c
mov esi, dword [eax + 0x15]
mov eax, dword [esp + 0x14]
mov dword [ecx], 1
mov dword [ecx + 4], esi
xor esi, esi
mov dword [ecx + 8], eax
mov dword [ecx + 0xc], 1
mov dword [ecx + 0x10], ebx
mov dword [ecx + 0x14], 1
mov dword [ecx + 0x18], 1
mov eax, dword [edi + 0xb4]
cmp dword [edi + 0xb0], 0
mov dword [edi + 0xb0], 0
je 0x4dcadb
mov edx, dword [esp + 0xc]
mov ecx, edx
sub ecx, eax
neg ecx
sub edx, eax
cmovb edx, ecx
add dword [edi + 0x70], edx
jmp 0x4db4cb
mov dword [esp + 0x28], ecx
mov ecx, dword [esp]
mov edx, dword [esp + 8]
shl eax, 8
mov dword [esp + 0x2c], ecx
lea ecx, [esp + 0x28]
push eax
call fcn.007c8760
add esp, 4
test eax, eax
je 0x4dc8de
movzx eax, byte [0x94bfc5]
xor ecx, ecx
mov edx, 0xc
call fcn.0071ee80
test eax, eax
je 0x4dcb61
mov ebx, dword [esp + 0xc]
jmp 0x4dc8a4
mov ecx, dword [esp + 4]
mov edx, dword [esp + 8]
mov dword [esp + 0x28], ecx
mov ecx, dword [esp]
mov dword [esp + 0x2c], ecx
lea ecx, [esp + 0x28]
push eax
call fcn.007c8760
add esp, 4
test eax, eax
je 0x4dc965
movzx eax, byte [0x94bfc5]
xor ecx, ecx
mov edx, 0xc
call fcn.0071ee80
test eax, eax
je 0x4dcb61
mov esi, eax
mov byte [eax], 1
mov eax, dword [ebp + 0xc]
mov edi, dword [esp + 8]
mov dword [esi + 4], ebx
mov dword [eax + 0xc], 1
mov dword [eax + 0x10], edi
jmp 0x4dc9ed
push 0x84eba0
call fcn.007c1be0
mov ecx, dword [esp + 8]
mov edx, dword [esp + 0x14]
push 0x84f1c0
call fcn.007c1be0
mov edi, edx
xor esi, esi
test edi, 0x8000000
je 0x4dbe9a
mov eax, dword [esp + 0x48]
cmp dword [eax + 0x15c], 1
je 0x4dc93b
mov ecx, dword [esp + 4]
mov eax, edi
and eax, 0x7ffffff
movzx ecx, byte [ecx + 0x284]
shr eax, cl
mov ecx, dword [esp]
mov edx, dword [ecx + 0x94]
cmp eax, edx
jae 0x4dca5b
mov ecx, dword [ecx + 0x90]
mov edx, dword [ecx + eax*8 + 4]
test edx, edx
je 0x4dca7f
mov eax, dword [ecx + eax*8]
test byte [eax + 8], 2
jne 0x4dc944
mov ebx, dword [esp + 0xc]
jmp 0x4dc9c4
mov ecx, dword [ebp + 0xc]
cmp edx, 0xd
jb 0x4dcb8b
mov ebx, dword [esp + 0xc]
add edx, 0xfffffff3
cmp edx, 3
jbe 0x4dca3c
mov esi, dword [eax + 0x15]
jmp 0x4dc9c7
mov edi, edx
xor esi, esi
test edi, 0x8000000
je 0x4dc4f3
mov eax, dword [esp + 0x48]
xor esi, esi
cmp dword [eax + 0x15c], 1
je 0x4dc9c4
mov ecx, dword [esp + 4]
mov eax, edi
and eax, 0x7ffffff
movzx ecx, byte [ecx + 0x284]
shr eax, cl
mov ecx, dword [esp]
mov edx, dword [ecx + 0x94]
cmp eax, edx
jae 0x4dca5b
mov ecx, dword [ecx + 0x90]
mov edx, dword [ecx + eax*8 + 4]
test edx, edx
je 0x4dca7f
mov eax, dword [ecx + eax*8]
test byte [eax + 8], 2
jne 0x4dca24
mov ecx, dword [ebp + 0xc]
mov dword [ecx], 1
mov dword [ecx + 4], esi
xor esi, esi
mov dword [ecx + 8], ebx
mov dword [ecx + 0xc], 1
mov dword [ecx + 0x10], edi
mov dword [ecx + 0x14], 1
mov dword [ecx + 0x18], 1
mov edx, dword [esp]
mov eax, dword [edx + 0xb4]
cmp dword [edx + 0xb0], 0
mov dword [edx + 0xb0], 0
je 0x4dcadb
mov edi, dword [esp + 0xc]
mov ecx, edi
sub ecx, eax
neg ecx
sub edi, eax
cmovb edi, ecx
add dword [edx + 0x70], edi
jmp 0x4db4cb
mov ecx, dword [ebp + 0xc]
cmp edx, 0xd
jb 0x4dcb8b
add edx, 0xfffffff3
cmp edx, 3
ja 0x4dc960
mov ecx, 4
push 0x8516a4
call fcn.007c1c40
mov edx, dword [esp + 0x10]
mov ecx, ebx
push 0x84f1c0
call fcn.007c1be0
mov ecx, eax
push 0x84eedc
call fcn.007c1be0
xor ecx, ecx
xor edx, edx
push 0x851750
call fcn.007c1be0
push 0x84ebb0
call fcn.007c1be0
xor ecx, ecx
xor edx, edx
push 0x851760
call fcn.007c1be0
mov ecx, eax
push 0x84eecc
call fcn.007c1be0
mov ecx, edx
mov edx, eax
push 0x84eedc
call fcn.007c1be0
mov ecx, str.no_in_progress_search_to_update
mov edx, 0x1f
push 0x84ec44
call fcn.007c2000
mov ecx, esi
push 0x84eedc
call fcn.007c1be0
mov ecx, str.assertion_failed:_id.is_match__
mov edx, 0x1f
push 0x84ec14
call fcn.007c1ca0
mov ecx, str.no_in_progress_search_to_finish
mov edx, 0x1f
push 0x84ec74
call fcn.007c2000
mov dword [esp + 0x84], ecx
lea eax, [esp + 0x88]
lea edx, [esp + 0x84]
lea ecx, [esp + 0x54]
mov dword [esp + 0x28], 0x8a81e4
mov dword [esp + 0x2c], 2
mov dword [esp + 0x38], 0
mov dword [esp + 0x30], ecx
mov dword [esp + 0x54], eax
mov dword [esp + 0x58], 0x418b90
mov dword [esp + 0x5c], edx
lea ecx, [esp + 0x28]
mov edx, 0x8519f0
mov dword [esp + 0x60], 0x4631b0
mov dword [esp + 0x34], 2
call fcn.007c1b50
mov ecx, 0xd
push 0x8517e0
call fcn.007c1c40
mov ecx, 4
mov edx, 0xc
call fcn.007c1490
mov ecx, 4
mov edx, eax
push 0x8516a4
call fcn.007c1c40
push 0x851790
call fcn.007c1b80
mov ecx, 0xd
push 0x851790
call fcn.007c1b80
mov dword [esp + 0x28], edx
mov dword [esp + 0x2c], 0
lea eax, [esp + 0x28]
mov ecx, 0x93b384
mov edx, 0x2b
push 0x84eeec
push 0x84df38
push eax
call fcn.007c1f60
lea eax, [esp + 0x50]
lea ecx, [esp + 0x28]
mov edx, 0x84f1d0
mov dword [esp + 0x28], 0x84f168
mov dword [esp + 0x2c], 1
mov dword [esp + 0x38], 0
mov dword [esp + 0x30], eax
mov dword [esp + 0x34], 0
call fcn.007c1b50
mov eax, dword [esp + 0x70]
mov dword [esp + 0x2c], 0
mov ecx, 0x93b384
mov edx, 0x2b
mov dword [esp + 0x28], eax
push 0x84eeec
push 0x84df38
lea eax, [esp + 0x30]
push eax
call fcn.007c1f60
mov ecx, 0xd
mov edx, eax
push 0x851790
call fcn.007c1b80
int3