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

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff8
sub esp, 0x198
mov ebx, dword [ebp + 0xc]
mov edi, dword [ebx + 0x10]
mov eax, dword [ebx + 0x14]
cmp edi, eax
jbe 0x4dc277
mov dword [ecx], 0
jmp 0x4def76
mov ebx, dword [ebx]
mov esi, dword [ebp + 8]
mov dword [esp + 8], eax
mov dword [esp], edx
mov dword [esp + 0x14], ecx
lea eax, [ebx - 1]
cmp eax, 2
jb 0x4dc2af
cmp byte [edx + 0x3c], 3
lea eax, [edx + 0x30]
mov esi, 0x59bd14
cmovne esi, eax
mov dword [esp + 0x10], esi
cmp byte [esi + 0xc], 2
mov esi, dword [ebp + 8]
jne 0x4dc601
mov dword [esp + 4], ebx
mov ebx, dword [ebp + 0xc]
cmp byte [ebx + 0x18], 0
je 0x4dc46f
mov eax, dword [edx + 0x280]
test edi, edi
mov dword [esp + 0x18], eax
je 0x4dc452
lea eax, [edi - 1]
cmp dword [ebx + 0xc], eax
jbe 0x4dc452
mov ecx, dword [ebx + 8]
test ecx, ecx
je 0x4dc452
movzx eax, byte [ecx + eax]
mov ecx, dword [edx + 0x260]
mov ebx, dword [edx + 0x268]
or ebx, dword [edx + 0x278]
or ecx, dword [edx + 0x270]
mov byte [esp + 0x10], al
mov eax, dword [edx + 0x26c]
or ecx, ebx
mov ebx, dword [edx + 0x264]
or eax, dword [edx + 0x27c]
or ebx, dword [edx + 0x274]
or ebx, eax
movzx eax, byte [esp + 0x10]
or ebx, ecx
mov dword [esp + 0x20], eax
mov eax, dword [ebp + 0xc]
mov eax, dword [eax + 4]
mov dword [esp + 0xc], eax
je 0x4dc986
mov ch, byte [esp + 0x10]
mov dword [esp + 0xd0], 0
mov dword [esp + 0xcc], 0
mov dword [esp + 0xc8], 0
mov dword [esp + 0xc4], 1
mov dword [esp + 0xc0], 0
mov dword [esp + 0xbc], 0
mov dword [esp + 0xb8], 0
mov dword [esp + 0xb4], 0
mov al, ch
and ch, 7
and al, 0x78
mov cl, ch
shr al, 3
neg al
movsx edx, al
mov ebx, dword [esp + edx + 0xcc]
mov eax, dword [esp + edx + 0xd0]
mov dword [esp + 0x24], edx
shld eax, ebx, cl
shl ebx, cl
not cl
mov dword [esp + 0x1c], eax
mov eax, dword [esp + edx + 0xc8]
mov edx, eax
mov esi, eax
mov eax, dword [esp + 0x20]
shr edx, 1
shr edx, cl
mov cl, ch
or edx, ebx
mov ebx, dword [esp + 0x24]
shr eax, 3
and eax, 0xfffffff0
mov ebx, dword [esp + ebx + 0xc4]
shld esi, ebx, cl
shl ebx, cl
mov ecx, dword [esp]
mov dword [esp + 0x40], esi
add ecx, 0x260
mov dword [esp + 0x24], ecx
and edx, dword [ecx + eax + 8]
mov ecx, dword [esp + 0x1c]
mov esi, dword [esp + 0x24]
and ecx, dword [esi + eax + 0xc]
mov esi, dword [esp + 0x40]
mov dword [esp + 0x1c], ecx
mov ecx, dword [esp + 0x24]
and esi, dword [ecx + eax + 4]
and ebx, dword [ecx + eax]
or esi, dword [esp + 0x1c]
or ebx, edx
or esi, ebx
mov esi, dword [ebp + 8]
je 0x4dc986
movzx eax, byte [esp + 0x10]
mov dword [esp + 0x48], 4
mov byte [esp + 0x4c], al
jmp 0x4dc9d4
mov eax, dword [ebx + 4]
mov dword [esp + 0xc], eax
mov al, 2
mov ebx, dword [esp + 4]
movzx ecx, al
test ebx, ebx
jne 0x4dc99d
jmp 0x4dc9a9
mov eax, dword [edx + 0x280]
test edi, edi
mov dword [esp + 0x20], eax
je 0x4dc7aa
lea eax, [edi - 1]
cmp dword [ebx + 0xc], eax
jbe 0x4dc7aa
mov ecx, dword [ebx + 8]
test ecx, ecx
je 0x4dc7aa
movzx eax, byte [ecx + eax]
mov ecx, dword [edx + 0x260]
mov ebx, dword [edx + 0x268]
or ebx, dword [edx + 0x278]
or ecx, dword [edx + 0x270]
mov byte [esp + 0x10], al
mov eax, dword [edx + 0x26c]
or ecx, ebx
mov ebx, dword [edx + 0x264]
or eax, dword [edx + 0x27c]
or ebx, dword [edx + 0x274]
or ebx, eax
movzx eax, byte [esp + 0x10]
or ebx, ecx
mov dword [esp + 0x1c], eax
mov eax, dword [ebp + 0xc]
mov eax, dword [eax + 4]
mov dword [esp + 0xc], eax
je 0x4dce36
mov ch, byte [esp + 0x10]
mov dword [esp + 0xb0], 0
mov dword [esp + 0xac], 0
mov dword [esp + 0xa8], 0
mov dword [esp + 0xa4], 1
mov dword [esp + 0xa0], 0
mov dword [esp + 0x9c], 0
mov dword [esp + 0x98], 0
mov dword [esp + 0x94], 0
mov al, ch
and ch, 7
and al, 0x78
mov cl, ch
shr al, 3
neg al
movsx edx, al
mov ebx, dword [esp + edx + 0xac]
mov eax, dword [esp + edx + 0xb0]
mov dword [esp + 0x24], edx
shld eax, ebx, cl
shl ebx, cl
not cl
mov dword [esp + 0x18], eax
mov eax, dword [esp + edx + 0xa8]
mov esi, eax
mov edx, eax
mov eax, dword [esp + 0x1c]
shr esi, 1
shr esi, cl
mov cl, ch
or esi, ebx
mov ebx, dword [esp + 0x24]
shr eax, 3
and eax, 0xfffffff0
mov ebx, dword [esp + ebx + 0xa4]
shld edx, ebx, cl
shl ebx, cl
mov ecx, dword [esp]
mov dword [esp + 0x40], edx
add ecx, 0x260
mov dword [esp + 0x24], ecx
and esi, dword [ecx + eax + 8]
mov ecx, dword [esp + 0x18]
mov edx, dword [esp + 0x24]
and ecx, dword [edx + eax + 0xc]
mov edx, dword [esp + 0x40]
mov dword [esp + 0x18], ecx
mov ecx, dword [esp + 0x24]
and edx, dword [ecx + eax + 4]
and ebx, dword [ecx + eax]
or edx, dword [esp + 0x18]
or ebx, esi
mov esi, dword [ebp + 8]
or edx, ebx
je 0x4dce36
movzx eax, byte [esp + 0x10]
mov dword [esp + 0x48], 4
mov byte [esp + 0x4c], al
jmp 0x4dce84
mov ebx, dword [ebp + 0xc]
cmp byte [ebx + 0x18], 0
je 0x4dc7e6
mov eax, dword [edx + 0x280]
test edi, edi
mov dword [esp + 0x40], eax
mov eax, dword [eax + 0x13c]
mov dword [esp + 0x20], eax
je 0x4dc7c7
lea eax, [edi - 1]
cmp dword [ebx + 0xc], eax
jbe 0x4dc7c7
mov ecx, dword [ebx + 8]
test ecx, ecx
je 0x4dc7c7
movzx eax, byte [ecx + eax]
mov ecx, dword [edx + 0x260]
mov ebx, dword [edx + 0x268]
or ebx, dword [edx + 0x278]
or ecx, dword [edx + 0x270]
mov byte [esp + 4], al
mov eax, dword [edx + 0x26c]
or ecx, ebx
mov ebx, dword [edx + 0x264]
or eax, dword [edx + 0x27c]
or ebx, dword [edx + 0x274]
or ebx, eax
movzx eax, byte [esp + 4]
or ebx, ecx
mov dword [esp + 0x18], eax
mov eax, dword [ebp + 0xc]
mov eax, dword [eax + 4]
mov dword [esp + 0x24], eax
je 0x4dd3ed
mov ch, byte [esp + 4]
mov dword [esp + 0x190], 0
mov dword [esp + 0x18c], 0
mov dword [esp + 0x188], 0
mov dword [esp + 0x184], 1
mov dword [esp + 0x180], 0
mov dword [esp + 0x17c], 0
mov dword [esp + 0x178], 0
mov dword [esp + 0x174], 0
mov al, ch
and ch, 7
and al, 0x78
mov cl, ch
shr al, 3
neg al
movsx edx, al
mov ebx, dword [esp + edx + 0x18c]
mov eax, dword [esp + edx + 0x190]
mov dword [esp + 0x1c], edx
shld eax, ebx, cl
shl ebx, cl
not cl
mov dword [esp + 0xc], eax
mov eax, dword [esp + edx + 0x188]
mov esi, eax
mov edx, eax
mov eax, dword [esp + 0x18]
shr esi, 1
shr esi, cl
mov cl, ch
or esi, ebx
mov ebx, dword [esp + 0x1c]
shr eax, 3
and eax, 0xfffffff0
mov ebx, dword [esp + ebx + 0x184]
shld edx, ebx, cl
shl ebx, cl
mov ecx, dword [esp]
mov dword [esp + 0x44], edx
add ecx, 0x260
mov dword [esp + 0x1c], ecx
and esi, dword [ecx + eax + 8]
mov ecx, dword [esp + 0xc]
mov edx, dword [esp + 0x1c]
and ecx, dword [edx + eax + 0xc]
mov edx, dword [esp + 0x44]
mov dword [esp + 0xc], ecx
mov ecx, dword [esp + 0x1c]
and edx, dword [ecx + eax + 4]
and ebx, dword [ecx + eax]
or edx, dword [esp + 0xc]
or ebx, esi
mov esi, dword [ebp + 8]
or edx, ebx
je 0x4dd3ed
movzx eax, byte [esp + 4]
mov dword [esp + 0x48], 4
mov byte [esp + 0x4c], al
jmp 0x4dd427
mov eax, dword [ebx + 4]
mov dword [esp + 0xc], eax
mov al, 2
mov ebx, dword [esp + 4]
movzx ecx, al
test ebx, ebx
jne 0x4dce4d
jmp 0x4dce59
mov eax, dword [ebx + 4]
mov dword [esp + 0x24], eax
mov al, 2
mov edx, dword [esi + 0x88]
movzx eax, al
cmp edx, eax
ja 0x4dd40a
jmp 0x4df1a3
mov eax, dword [edx + 0x280]
test edi, edi
mov dword [esp + 0x44], eax
mov eax, dword [eax + 0x13c]
mov dword [esp + 0x1c], eax
je 0x4dcdb3
lea eax, [edi - 1]
cmp dword [ebx + 0xc], eax
jbe 0x4dcdb3
mov ecx, dword [ebx + 8]
test ecx, ecx
je 0x4dcdb3
movzx eax, byte [ecx + eax]
mov ecx, dword [edx + 0x260]
mov ebx, dword [edx + 0x268]
or ebx, dword [edx + 0x278]
or ecx, dword [edx + 0x270]
mov byte [esp + 4], al
mov eax, dword [edx + 0x26c]
or ecx, ebx
mov ebx, dword [edx + 0x264]
or eax, dword [edx + 0x27c]
or ebx, dword [edx + 0x274]
movzx edx, byte [esp + 4]
or ebx, eax
mov dword [esp + 0x18], edx
or ebx, ecx
mov ecx, dword [ebp + 0xc]
mov ebx, dword [ecx + 4]
je 0x4dd711
mov ch, byte [esp + 4]
mov dword [esp + 0x130], 0
mov dword [esp + 0x12c], 0
mov dword [esp + 0x128], 0
mov dword [esp + 0x124], 1
mov dword [esp + 0x120], 0
mov dword [esp + 0x11c], 0
mov dword [esp + 0x118], 0
mov dword [esp + 0x114], 0
mov dword [esp + 0x6c], ebx
mov al, ch
and ch, 7
and al, 0x78
mov cl, ch
shr al, 3
neg al
movsx edx, al
mov ebx, dword [esp + edx + 0x12c]
mov eax, dword [esp + edx + 0x130]
mov dword [esp + 0x20], edx
shld eax, ebx, cl
shl ebx, cl
not cl
mov dword [esp + 0xc], eax
mov eax, dword [esp + edx + 0x128]
mov esi, eax
mov edx, eax
mov eax, dword [esp + 0x18]
shr esi, 1
shr esi, cl
mov cl, ch
or esi, ebx
mov ebx, dword [esp + 0x20]
shr eax, 3
and eax, 0xfffffff0
mov ebx, dword [esp + ebx + 0x124]
shld edx, ebx, cl
shl ebx, cl
mov ecx, dword [esp]
mov dword [esp + 0x24], edx
add ecx, 0x260
mov dword [esp + 0x20], ecx
and esi, dword [ecx + eax + 8]
mov ecx, dword [esp + 0xc]
mov edx, dword [esp + 0x20]
and ecx, dword [edx + eax + 0xc]
mov edx, dword [esp + 0x24]
mov dword [esp + 0xc], ecx
mov ecx, dword [esp + 0x20]
and edx, dword [ecx + eax + 4]
and ebx, dword [ecx + eax]
or edx, dword [esp + 0xc]
or ebx, esi
mov esi, dword [ebp + 8]
or edx, ebx
mov ebx, dword [esp + 0x6c]
je 0x4dd711
movzx eax, byte [esp + 4]
mov dword [esp + 0x48], 4
mov byte [esp + 0x4c], al
jmp 0x4dd74b
mov edx, dword [esp]
mov eax, dword [esp + 0x20]
movzx eax, byte [edx + eax + 0x60]
mov ebx, dword [esp + 4]
movzx ecx, al
test ebx, ebx
je 0x4dc9a9
cmp ebx, 1
jne 0x4dca5c
add ecx, 6
mov edx, dword [esi + 0x88]
cmp ecx, edx
jae 0x4dd38a
mov edx, dword [esi + 0x84]
mov edx, dword [edx + ecx*4]
test edx, edx
js 0x4dd3c4
mov dword [esp + 0x4c], edx
mov dword [esp + 0x48], 5
lea edx, [esp + 0x48]
lea ecx, [esp + 0x28]
push edi
call fcn.004df450
add esp, 4
cmp dword [esp + 0x28], 0
mov edx, dword [esp + 0x2c]
jne 0x4dcea0
cmp dword [esi + 0xb0], 1
jne 0x4dca1a
mov eax, dword [esi + 0xb8]
mov ecx, dword [esi + 0xb4]
mov esi, eax
sub esi, ecx
neg esi
sub eax, ecx
cmovb eax, esi
mov esi, dword [ebp + 8]
add dword [esi + 0x70], eax
cmp edi, dword [esp + 8]
mov dword [esi + 0xb0], 1
mov dword [esi + 0xb4], edi
mov dword [esi + 0xb8], edi
jae 0x4dca7b
mov eax, dword [ebp + 0xc]
mov ebx, dword [eax + 8]
mov eax, dword [eax + 0xc]
mov dword [esp + 0x10], eax
mov eax, dword [esp]
mov dword [esp + 4], ebx
mov eax, dword [eax + 0x284]
and eax, 0x1f
mov dword [esp + 0x24], eax
jmp 0x4dcb2e
test byte [edx + 0x59], 1
jne 0x4dcd78
mov eax, dword [esp + 0xc]
mov dword [esp + 0x48], 2
mov dword [esp + 0x4c], eax
jmp 0x4dc9d4
mov eax, dword [ebp + 0xc]
mov esi, dword [eax + 0xc]
mov ecx, dword [esp + 8]
cmp ecx, esi
jae 0x4dcde1
mov eax, dword [eax + 8]
mov edi, dword [ebp + 8]
movzx ebx, byte [eax + ecx]
mov eax, dword [esp]
mov ecx, edx
and ecx, 0x7ffffff
movzx esi, bl
movzx eax, byte [eax + esi + 0x160]
add ecx, eax
mov eax, dword [edi + 0x7c]
cmp ecx, eax
jae 0x4def91
mov eax, dword [edi + 0x78]
mov edi, dword [eax + ecx*4]
test edi, edi
js 0x4ddb4e
test edi, 0x8000000
jne 0x4dec2a
test edi, 0x20000000
je 0x4dce2f
movzx eax, byte [0x5fd2ec]
xor ecx, ecx
mov edx, 0xc
call fcn.0056a9f0
mov ecx, dword [esp + 8]
test eax, eax
je 0x4df363
mov edx, ecx
mov ecx, dword [esp + 0x14]
mov byte [eax], 0
mov byte [eax + 1], bl
mov dword [eax + 4], edx
jmp 0x4de988
mov edx, ecx
nop word cs:[eax + eax]
nop
inc edi
mov esi, dword [ebp + 8]
cmp edi, dword [esp + 8]
jae 0x4dcdce
cmp edx, 0x7ffffff
jbe 0x4dcbb0
cmp dword [esi + 0xb0], 0
je 0x4df2cb
cmp edi, dword [esp + 0x10]
mov dword [esi + 0xb8], edi
jae 0x4df0d6
movzx ebx, byte [ebx + edi]
mov eax, dword [esp]
mov ecx, edx
and ecx, 0x7ffffff
movzx eax, byte [eax + ebx + 0x160]
add ecx, eax
mov eax, dword [esi + 0x7c]
cmp ecx, eax
jae 0x4def91
mov eax, dword [esi + 0x78]
mov esi, dword [eax + ecx*4]
test esi, esi
js 0x4dcd4b
mov ebx, dword [esp + 4]
mov eax, edi
cmp esi, 0x7ffffff
mov edx, esi
mov edi, eax
jbe 0x4dcb20
test esi, 0x10000000
jne 0x4dcd2e
jmp 0x4dd666
cmp edi, dword [esp + 8]
jae 0x4dcb20
mov eax, dword [esi + 0x7c]
mov ecx, dword [esi + 0x78]
mov dword [esp + 0x1c], eax
mov eax, ecx
nop word cs:[eax + eax]
movzx ecx, byte [ebx + edi]
mov esi, dword [esp]
movzx ecx, byte [esi + ecx + 0x160]
add ecx, edx
mov ecx, dword [eax + ecx*4]
cmp ecx, 0x7ffffff
ja 0x4dcc7e
mov edx, dword [esp + 8]
mov esi, eax
lea eax, [edi + 3]
cmp eax, edx
jae 0x4dcb13
movzx edx, byte [ebx + edi + 1]
mov ebx, dword [esp]
mov dword [esp + 0xc], eax
mov eax, esi
movzx edx, byte [ebx + edx + 0x160]
add edx, ecx
mov edx, dword [esi + edx*4]
cmp edx, 0x7ffffff
ja 0x4dcd09
mov esi, dword [esp + 4]
movzx ecx, byte [esi + edi + 2]
movzx ecx, byte [ebx + ecx + 0x160]
add ecx, edx
mov ecx, dword [eax + ecx*4]
cmp ecx, 0x7ffffff
ja 0x4dcd37
movzx edx, byte [esi + edi + 3]
movzx edx, byte [ebx + edx + 0x160]
add edx, ecx
mov edx, dword [eax + edx*4]
cmp edx, 0x7ffffff
ja 0x4dcd0e
add edi, 4
mov ebx, dword [esp + 4]
cmp edi, dword [esp + 8]
jb 0x4dcbd0
jmp 0x4dcb20
mov dword [esp + 0xc], edi
mov esi, ecx
test esi, esi
jns 0x4dcd1e
mov ecx, dword [ebp + 8]
mov edi, eax
mov eax, dword [esp + 0xc]
cmp dword [ecx + 0xb0], 0
je 0x4df2cb
mov dword [ecx + 0xb8], eax
mov ecx, dword [esp]
movzx esi, byte [ebx + eax]
movzx ecx, byte [ecx + esi + 0x160]
mov dword [esp + 0x20], esi
mov esi, dword [esp + 0x1c]
add ecx, edx
cmp ecx, esi
jae 0x4df210
mov esi, dword [edi + ecx*4]
test esi, esi
jns 0x4dcb8b
mov eax, dword [esp]
mov esi, dword [esp + 0x20]
lea ecx, [esp + 0x28]
mov dword [esp + 0x28], eax
mov eax, dword [ebp + 8]
shl esi, 8
mov dword [esp + 0x2c], eax
push esi
call fcn.00583a20
add esp, 4
test eax, eax
jne 0x4df14b
mov eax, dword [esp + 0xc]
mov esi, edx
jmp 0x4dcb8b
inc edi
mov dword [esp + 0xc], edi
mov ebx, dword [esp + 4]
mov esi, edx
mov edx, ecx
test esi, esi
js 0x4dcc8c
mov eax, dword [esp + 0xc]
test esi, 0x10000000
je 0x4dd666
mov edx, esi
mov edi, eax
jmp 0x4dcb20
add edi, 2
mov ebx, esi
mov esi, ecx
mov dword [esp + 0xc], edi
test esi, esi
jns 0x4dcd1e
jmp 0x4dcc8c
mov eax, dword [esp]
shl ebx, 8
lea ecx, [esp + 0x28]
mov dword [esp + 0x28], eax
mov eax, dword [ebp + 8]
mov dword [esp + 0x2c], eax
push ebx
call fcn.00583a20
add esp, 4
test eax, eax
jne 0x4de963
mov esi, edx
jmp 0x4dcb85
mov byte [esp + 0x10], al
mov ebx, dword [esp + 0x18]
mov eax, dword [esp + 0xc]
cmp dword [ebx + 0x15c], eax
jbe 0x4dd394
lea edx, [eax + eax*2]
mov ebx, dword [esp + 4]
movzx eax, byte [esp + 0x10]
lea ecx, [ecx + edx*2 + 0xc]
mov edx, dword [esi + 0x88]
cmp ecx, edx
jb 0x4dc9b7
jmp 0x4dd38a
mov ebx, dword [ebx + 4]
mov al, 2
mov edx, dword [esi + 0x88]
movzx eax, al
cmp edx, eax
ja 0x4dd72e
jmp 0x4df1a3
mov eax, dword [ebp + 0xc]
mov esi, dword [esp + 0x10]
mov ecx, dword [esp + 8]
cmp ecx, esi
jb 0x4dca8d
mov eax, dword [esp]
mov dword [esp + 0x10], esi
mov edi, dword [ebp + 8]
mov ecx, edx
and ecx, 0x7ffffff
movzx esi, byte [eax + 0x25f]
shl esi, 0x10
add esi, 0x10001
mov eax, esi
shr eax, 0x10
add ecx, eax
mov eax, dword [edi + 0x7c]
cmp ecx, eax
jae 0x4df21c
mov eax, dword [edi + 0x78]
mov edi, dword [eax + ecx*4]
test edi, edi
js 0x4ddba2
test edi, 0x8000000
jne 0x4decc1
xor eax, eax
jmp 0x4ded30
mov edx, dword [esp]
mov eax, dword [esp + 0x1c]
movzx eax, byte [edx + eax + 0x60]
mov ebx, dword [esp + 4]
movzx ecx, al
test ebx, ebx
je 0x4dce59
cmp ebx, 1
jne 0x4dd210
add ecx, 6
mov edx, dword [esi + 0x88]
cmp ecx, edx
jae 0x4dd38a
mov edx, dword [esi + 0x84]
mov edx, dword [edx + ecx*4]
test edx, edx
js 0x4dd6e8
mov dword [esp + 0x4c], edx
mov dword [esp + 0x48], 5
lea edx, [esp + 0x48]
lea ecx, [esp + 0x28]
push edi
call fcn.004df450
add esp, 4
cmp dword [esp + 0x28], 0
mov edx, dword [esp + 0x2c]
je 0x4dceb2
mov eax, dword [esp + 0x14]
mov dword [eax + 4], edx
mov dword [eax], 2
jmp 0x4def76
cmp dword [esi + 0xb0], 1
jne 0x4dced8
mov eax, dword [esi + 0xb8]
mov ecx, dword [esi + 0xb4]
mov esi, eax
sub esi, ecx
neg esi
sub eax, ecx
cmovb eax, esi
mov esi, dword [ebp + 8]
add dword [esi + 0x70], eax
mov ebx, dword [esp + 8]
mov dword [esi + 0xb0], 1
mov dword [esi + 0xb4], edi
mov dword [esi + 0xb8], edi
cmp edi, ebx
jae 0x4dd22f
mov eax, dword [ebp + 0xc]
mov dword [esp + 0x24], 0
mov ecx, dword [eax + 8]
mov eax, dword [eax + 0xc]
mov dword [esp + 0x1c], eax
mov eax, dword [esp]
mov dword [esp + 4], ecx
mov eax, dword [eax + 0x284]
and eax, 0x1f
mov dword [esp + 0x6c], eax
jmp 0x4dcf32
mov esi, edi
inc esi
cmp esi, ebx
mov edi, esi
jae 0x4dd2ce
cmp edx, 0x7ffffff
jbe 0x4dcfc0
mov esi, dword [ebp + 8]
cmp dword [esi + 0xb0], 0
je 0x4df2cb
cmp edi, dword [esp + 0x1c]
mov dword [esi + 0xb8], edi
jae 0x4df0e6
mov eax, dword [esp + 4]
mov ecx, edx
and ecx, 0x7ffffff
movzx ebx, byte [eax + edi]
mov eax, dword [esp]
movzx eax, byte [eax + ebx + 0x160]
add ecx, eax
mov eax, dword [esi + 0x7c]
cmp ecx, eax
jae 0x4def91
mov eax, dword [esi + 0x78]
mov eax, dword [eax + ecx*4]
test eax, eax
js 0x4dd1df
mov ebx, dword [esp + 8]
mov esi, edi
mov edx, eax
cmp edx, 0x7ffffff
jbe 0x4dcf27
test edx, 0x10000000
jne 0x4dcf27
jmp 0x4dd14e
cmp edi, ebx
jae 0x4dcf25
mov ecx, dword [ebp + 8]
mov eax, dword [ecx + 0x78]
mov dword [esp + 0xc], eax
mov eax, dword [ecx + 0x7c]
mov dword [esp + 0x10], eax
nop dword [eax]
mov ecx, dword [esp + 4]
mov esi, dword [esp]
movzx ecx, byte [ecx + edi]
movzx ecx, byte [esi + ecx + 0x160]
mov esi, dword [esp + 0xc]
add ecx, edx
mov ecx, dword [esi + ecx*4]
cmp ecx, 0x7ffffff
ja 0x4dd098
mov esi, edi
add edi, 3
cmp edi, ebx
jae 0x4dd115
mov ebx, dword [esp + 4]
mov eax, dword [esp]
mov dword [esp + 0x18], edi
mov edi, dword [esp + 0xc]
movzx edx, byte [ebx + esi + 1]
movzx edx, byte [eax + edx + 0x160]
add edx, ecx
mov edx, dword [edi + edx*4]
cmp edx, 0x7ffffff
ja 0x4dd11c
movzx ecx, byte [ebx + esi + 2]
movzx ecx, byte [eax + ecx + 0x160]
add ecx, edx
mov ecx, dword [edi + ecx*4]
cmp ecx, 0x7ffffff
ja 0x4dd121
movzx edx, byte [ebx + esi + 3]
movzx edx, byte [eax + edx + 0x160]
add edx, ecx
mov edx, dword [edi + edx*4]
cmp edx, 0x7ffffff
ja 0x4dd128
mov ebx, dword [esp + 8]
mov eax, dword [esp + 0x10]
add esi, 4
mov edi, esi
cmp esi, ebx
jb 0x4dcfe0
jmp 0x4dcf25
mov esi, edi
mov ebx, ecx
test ebx, ebx
jns 0x4dd13c
mov ecx, dword [ebp + 8]
cmp dword [ecx + 0xb0], 0
je 0x4df2cb
mov dword [ecx + 0xb8], esi
mov ecx, dword [esp + 4]
mov ebx, dword [esp + 8]
movzx edi, byte [ecx + esi]
mov ecx, dword [esp]
movzx ecx, byte [ecx + edi + 0x160]
add ecx, edx
cmp ecx, eax
jae 0x4def91
mov eax, dword [esp + 0xc]
mov eax, dword [eax + ecx*4]
test eax, eax
jns 0x4dcf9a
mov eax, dword [esp]
shl edi, 8
lea ecx, [esp + 0x28]
mov dword [esp + 0x28], eax
mov eax, dword [ebp + 8]
mov dword [esp + 0x2c], eax
push edi
call fcn.00583a20
add esp, 4
test eax, eax
je 0x4dcf9c
jmp 0x4df179
mov edx, ecx
jmp 0x4dcf27
mov ebx, edx
inc esi
jmp 0x4dd12e
add esi, 2
mov ebx, ecx
jmp 0x4dd130
mov esi, dword [esp + 0x18]
mov ebx, edx
mov edx, ecx
mov eax, dword [esp + 0x10]
test ebx, ebx
js 0x4dd0a4
mov edx, ebx
mov ebx, dword [esp + 8]
test edx, 0x10000000
jne 0x4dcf27
test edx, 0x8000000
je 0x4dda24
mov eax, dword [esp + 0x20]
mov dword [esp + 0x24], 1
mov dword [esp + 0x40], 0
cmp dword [eax + 0x15c], 1
je 0x4dd1b1
mov edi, edx
mov ecx, dword [esp + 0x6c]
and edi, 0x7ffffff
shr edi, cl
mov ecx, dword [ebp + 8]
mov eax, dword [ecx + 0x94]
cmp edi, eax
jae 0x4df202
mov ecx, dword [ecx + 0x90]
mov eax, dword [ecx + edi*8 + 4]
test eax, eax
je 0x4df1af
mov ecx, dword [ecx + edi*8]
test byte [ecx + 8], 2
jne 0x4dd1ba
mov dword [esp + 0x44], esi
jmp 0x4dcf27
cmp eax, 0xd
jb 0x4df317
add eax, 0xfffffff3
cmp eax, 3
jbe 0x4df328
mov eax, dword [ecx + 0x15]
mov dword [esp + 0x44], esi
mov dword [esp + 0x40], eax
jmp 0x4dcf27
mov eax, dword [esp]
shl ebx, 8
lea ecx, [esp + 0x28]
mov dword [esp + 0x28], eax
mov eax, dword [ebp + 8]
mov dword [esp + 0x2c], eax
push ebx
call fcn.00583a20
add esp, 4
mov ebx, dword [esp + 8]
test eax, eax
jne 0x4de963
mov esi, edi
jmp 0x4dcf9c
test byte [edx + 0x59], 1
jne 0x4dd354
mov eax, dword [esp + 0xc]
mov dword [esp + 0x48], 2
mov dword [esp + 0x4c], eax
jmp 0x4dce84
mov eax, dword [ebp + 0xc]
mov edi, ebx
mov dword [esp + 0x24], 0
mov esi, dword [eax + 0xc]
cmp edi, esi
jae 0x4dd2df
mov eax, dword [eax + 8]
mov ecx, edx
and ecx, 0x7ffffff
movzx ebx, byte [eax + edi]
mov eax, dword [esp]
mov edi, dword [ebp + 8]
movzx esi, bl
movzx eax, byte [eax + esi + 0x160]
add ecx, eax
mov eax, dword [edi + 0x7c]
cmp ecx, eax
jae 0x4def91
mov eax, dword [edi + 0x78]
mov edi, dword [eax + ecx*4]
test edi, edi
js 0x4de2cd
test edi, 0x8000000
jne 0x4dee8e
mov esi, dword [ebp + 8]
test edi, 0x20000000
je 0x4def2f
movzx eax, byte [0x5fd2ec]
xor ecx, ecx
mov edx, 0xc
call fcn.0056a9f0
test eax, eax
je 0x4df363
mov byte [eax], 0
mov byte [eax + 1], bl
mov ebx, dword [esp + 8]
mov ecx, dword [esp + 0x14]
mov dword [eax + 4], ebx
jmp 0x4de988
mov eax, dword [ebp + 0xc]
mov esi, dword [esp + 0x1c]
mov edi, ebx
cmp edi, esi
jb 0x4dd247
mov eax, dword [esp]
mov ebx, esi
mov edi, dword [ebp + 8]
mov ecx, edx
and ecx, 0x7ffffff
movzx esi, byte [eax + 0x25f]
shl esi, 0x10
add esi, 0x10001
mov eax, esi
shr eax, 0x10
add ecx, eax
mov eax, dword [edi + 0x7c]
cmp ecx, eax
jae 0x4df21c
mov eax, dword [edi + 0x78]
mov edi, dword [eax + ecx*4]
test edi, edi
js 0x4de31a
mov esi, dword [ebp + 8]
test edi, 0x8000000
je 0x4def2f
mov eax, dword [esp + 0x20]
mov dword [esp + 0x24], 1
cmp dword [eax + 0x15c], 1
jne 0x4dd9bc
mov dword [esp + 0x40], 0
jmp 0x4def2b
mov byte [esp + 0x10], al
mov ebx, dword [esp + 0x20]
mov eax, dword [esp + 0xc]
cmp dword [ebx + 0x15c], eax
jbe 0x4dd6b8
lea edx, [eax + eax*2]
mov ebx, dword [esp + 4]
movzx eax, byte [esp + 0x10]
lea ecx, [ecx + edx*2 + 0xc]
mov edx, dword [esi + 0x88]
cmp ecx, edx
jb 0x4dce67
push 0x59bcd4
call fcn.0057f710
mov ecx, dword [edx + 0x284]
movzx eax, byte [esp + 0x10]
mov edx, 1
and ecx, 0x1f
shl edx, cl
cmp ecx, 0x1b
jae 0x4df339
mov ebx, dword [esp + 4]
or edx, 0x40000000
test edx, edx
jns 0x4dc9c8
mov ecx, dword [esp]
movzx eax, al
lea edx, [esp + 0x28]
mov dword [esp + 0x28], ecx
mov dword [esp + 0x2c], esi
lea ecx, [esp + 0x48]
push eax
push dword [esp + 0x10]
push ebx
call fcn.005853c0
add esp, 0xc
jmp 0x4dc9d4
mov eax, dword [esp]
mov ecx, dword [esp + 0x18]
movzx eax, byte [eax + ecx + 0x60]
mov edx, dword [esi + 0x88]
movzx eax, al
cmp edx, eax
jbe 0x4df1a3
mov ecx, dword [esi + 0x84]
mov ecx, dword [ecx + eax*4]
test ecx, ecx
js 0x4dda6c
mov dword [esp + 0x4c], ecx
mov dword [esp + 0x48], 5
lea ecx, [esp + 0x28]
lea edx, [esp + 0x48]
push edi
call fcn.004df450
add esp, 4
cmp dword [esp + 0x28], 0
mov ebx, dword [esp + 0x2c]
mov esi, dword [esp + 8]
je 0x4dd459
mov eax, dword [esp + 0x14]
mov dword [eax + 4], ebx
mov dword [eax], 2
jmp 0x4def76
mov eax, dword [ebp + 0xc]
mov ecx, dword [eax + 8]
mov eax, dword [eax + 0xc]
mov dword [esp + 4], ecx
mov ecx, dword [esp + 0x10]
mov dword [esp + 0x18], eax
mov eax, dword [ecx]
mov ecx, dword [ecx + 4]
mov edx, dword [ecx + 8]
mov dword [esp + 0xc], eax
mov ecx, dword [ecx + 0x20]
mov eax, dword [esp + 0xc]
dec edx
and edx, 0xfffffff8
lea edx, [edx + eax + 8]
lea eax, [esp + 0x84]
push esi
push edi
push dword [esp + 0x20]
push dword [esp + 0x10]
mov dword [esp + 0x7c], edx
push edx
push eax
mov dword [esp + 0x5c], ecx
call ecx
add esp, 0x18
cmp dword [esp + 0x84], 0
je 0x4dd98b
cmp dword [esp + 0x20], 0
mov edi, dword [esp + 0x88]
je 0x4ddc5c
mov eax, dword [esp + 8]
mov ecx, dword [esp]
mov dword [esp + 0x78], edi
cmp dword [esp + 0x18], eax
mov dword [esp + 0x7c], eax
jb 0x4df396
inc eax
cmp eax, edi
jb 0x4df396
test edi, edi
je 0x4dd998
lea eax, [edi - 1]
cmp dword [esp + 0x18], eax
jbe 0x4dd998
mov esi, ecx
mov edx, dword [ecx + 0x26c]
mov ecx, dword [ecx + 0x260]
mov ebx, dword [esi + 0x268]
or ecx, dword [esi + 0x270]
or edx, dword [esi + 0x27c]
or ebx, dword [esi + 0x278]
or ecx, ebx
mov ebx, dword [esi + 0x264]
or ebx, dword [esi + 0x274]
or ebx, edx
or ebx, ecx
mov ecx, dword [esp + 4]
movzx ecx, byte [ecx + eax]
movzx eax, cl
mov dword [esp + 0x1c], eax
je 0x4ddbf3
mov eax, ecx
mov dword [esp + 0x170], 0
mov dword [esp + 0x16c], 0
mov dword [esp + 0x168], 0
mov dword [esp + 0x164], 1
mov dword [esp + 0x160], 0
mov dword [esp + 0x15c], 0
mov dword [esp + 0x158], 0
mov dword [esp + 0x154], 0
mov byte [esp + 0x60], cl
and al, 0x78
mov ch, byte [esp + 0x60]
shr al, 3
neg al
movsx eax, al
mov dword [esp + 0x10], eax
and ch, 7
mov ebx, dword [esp + eax + 0x16c]
mov eax, dword [esp + eax + 0x170]
mov cl, ch
shld eax, ebx, cl
shl ebx, cl
not cl
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0x10]
mov edx, dword [esp + eax + 0x168]
mov eax, dword [esp + 0x1c]
mov dword [esp + 0x5c], edx
shr edx, 1
shr eax, 3
shr edx, cl
mov cl, ch
and eax, 0xfffffff0
or edx, ebx
mov ebx, dword [esp + 0x10]
mov ebx, dword [esp + ebx + 0x164]
shld dword [esp + 0x5c], ebx, cl
shl ebx, cl
lea ecx, [esi + 0x260]
mov dword [esp + 0x10], ecx
and edx, dword [ecx + eax + 8]
mov ecx, dword [esp + 0xc]
mov esi, dword [esp + 0x10]
and ecx, dword [esi + eax + 0xc]
mov esi, dword [esp + 0x10]
mov dword [esp + 0xc], ecx
mov ecx, dword [esp + 0x10]
and ebx, dword [ecx + eax]
mov ecx, dword [esp + 0x5c]
and ecx, dword [esi + eax + 4]
mov esi, dword [esp]
movzx eax, byte [esp + 0x60]
or ebx, edx
or ecx, dword [esp + 0xc]
or ecx, ebx
je 0x4ddbf3
mov dword [esp + 0x48], 4
mov byte [esp + 0x4c], al
jmp 0x4ddc2d
test esi, 0x8000000
jne 0x4dd99f
test esi, 0x40000000
jne 0x4deb3f
test esi, 0x20000000
je 0x4df410
mov ecx, dword [ebp + 8]
mov edx, eax
mov esi, eax
call fcn.004df520
mov edx, dword [esp + 0x10]
mov eax, esi
cmp esi, edx
jae 0x4df2a7
movzx ecx, byte [ebx + eax]
mov edx, eax
call fcn.004df560
mov ecx, dword [esp + 0x14]
jmp 0x4de988
mov ecx, dword [edx + 0x284]
movzx eax, byte [esp + 0x10]
mov edx, 1
and ecx, 0x1f
shl edx, cl
cmp ecx, 0x1b
jae 0x4df339
mov ebx, dword [esp + 4]
or edx, 0x40000000
test edx, edx
jns 0x4dce78
mov ecx, dword [esp]
movzx eax, al
lea edx, [esp + 0x28]
mov dword [esp + 0x28], ecx
mov dword [esp + 0x2c], esi
lea ecx, [esp + 0x48]
push eax
push dword [esp + 0x10]
push ebx
call fcn.005853c0
add esp, 0xc
jmp 0x4dce84
mov eax, dword [esp]
mov ecx, dword [esp + 0x18]
movzx eax, byte [eax + ecx + 0x60]
mov edx, dword [esi + 0x88]
movzx eax, al
cmp edx, eax
jbe 0x4df1a3
mov ecx, dword [esi + 0x84]
mov ecx, dword [ecx + eax*4]
test ecx, ecx
js 0x4ddb2a
mov dword [esp + 0x4c], ecx
mov dword [esp + 0x48], 5
lea ecx, [esp + 0x28]
lea edx, [esp + 0x48]
push edi
call fcn.004df450
add esp, 4
cmp dword [esp + 0x28], 0
mov ecx, dword [esp + 0x2c]
je 0x4dd779
mov eax, dword [esp + 0x14]
mov dword [eax + 4], ecx
mov dword [eax], 2
jmp 0x4def76
mov eax, dword [ebp + 0xc]
mov dword [esp + 4], ecx
mov dword [esp + 0x6c], ebx
mov ecx, dword [eax + 8]
mov ebx, dword [eax + 0xc]
mov dword [esp + 0xc], ecx
mov ecx, dword [esp + 0x10]
mov eax, dword [ecx]
mov ecx, dword [ecx + 4]
mov edx, dword [ecx + 8]
mov ecx, dword [ecx + 0x20]
dec edx
and edx, 0xfffffff8
lea eax, [edx + eax + 8]
lea edx, [esp + 0x84]
push dword [esp + 8]
push edi
mov edi, ebx
push ebx
push dword [esp + 0x18]
mov dword [esp + 0x50], eax
push eax
push edx
mov dword [esp + 0x3c], ecx
call ecx
add esp, 0x18
cmp dword [esp + 0x84], 0
je 0x4dd98b
mov eax, dword [esp + 0x88]
cmp dword [esp + 0x1c], 0
mov ebx, edi
mov dword [esp + 0x20], ebx
mov edi, eax
je 0x4de3d4
mov eax, dword [esp + 8]
mov dword [esp + 0x78], edi
cmp ebx, eax
mov ebx, dword [esp]
mov dword [esp + 0x7c], eax
jb 0x4df3b2
inc eax
cmp eax, edi
jb 0x4df3b2
test edi, edi
je 0x4dda1d
lea eax, [edi - 1]
cmp dword [esp + 0x20], eax
jbe 0x4dda1d
mov ecx, dword [ebx + 0x260]
mov esi, dword [ebx + 0x268]
mov edx, dword [ebx + 0x26c]
or esi, dword [ebx + 0x278]
or ecx, dword [ebx + 0x270]
or edx, dword [ebx + 0x27c]
or ecx, esi
mov esi, dword [ebx + 0x264]
or esi, dword [ebx + 0x274]
or esi, edx
or esi, ecx
mov ecx, dword [esp + 0xc]
movzx ecx, byte [ecx + eax]
movzx eax, cl
mov dword [esp + 0x10], eax
je 0x4de360
mov eax, ecx
mov dword [esp + 0x110], 0
mov dword [esp + 0x10c], 0
mov dword [esp + 0x108], 0
mov dword [esp + 0x104], 1
mov dword [esp + 0x100], 0
mov dword [esp + 0xfc], 0
mov dword [esp + 0xf8], 0
mov dword [esp + 0xf4], 0
mov byte [esp + 0x60], cl
and al, 0x78
mov ch, byte [esp + 0x60]
shr al, 3
neg al
movsx eax, al
mov dword [esp + 0x5c], eax
and ch, 7
mov esi, dword [esp + eax + 0x10c]
mov eax, dword [esp + eax + 0x110]
mov cl, ch
shld eax, esi, cl
shl esi, cl
not cl
mov dword [esp + 4], eax
mov eax, dword [esp + 0x5c]
mov ebx, dword [esp + eax + 0x108]
mov dword [esp + 0x18], edi
mov eax, dword [esp + 0x10]
mov edi, ebx
shr eax, 3
shr edi, 1
and eax, 0xfffffff0
shr edi, cl
mov cl, ch
or edi, esi
mov esi, dword [esp + 0x5c]
mov esi, dword [esp + esi + 0x104]
shld ebx, esi, cl
shl esi, cl
mov ecx, dword [esp]
add ecx, 0x260
mov dword [esp + 0x5c], ecx
and edi, dword [ecx + eax + 8]
mov ecx, dword [esp + 4]
mov edx, dword [esp + 0x5c]
and ecx, dword [edx + eax + 0xc]
mov edx, dword [esp + 0x5c]
and ebx, dword [edx + eax + 4]
and esi, dword [edx + eax]
mov dword [esp + 4], ecx
movzx eax, byte [esp + 0x60]
or ebx, dword [esp + 4]
or esi, edi
mov edi, dword [esp + 0x18]
or ebx, esi
je 0x4de360
mov esi, dword [ebp + 8]
mov ebx, dword [esp + 0x20]
mov dword [esp + 0x48], 4
mov byte [esp + 0x4c], al
jmp 0x4de3a1
mov ecx, dword [esp + 0x14]
xor eax, eax
mov dword [ecx], eax
jmp 0x4def76
mov al, 2
jmp 0x4ddbfc
mov ecx, dword [esp + 0x18]
mov ebx, eax
xor eax, eax
cmp dword [ecx + 0x15c], 1
jne 0x4dda93
mov esi, dword [ebp + 8]
jmp 0x4ddae6
mov eax, dword [esp]
mov edx, dword [esi + 0x94]
and edi, 0x7ffffff
movzx ecx, byte [eax + 0x284]
shr edi, cl
cmp edi, edx
jae 0x4df247
mov eax, dword [esi + 0x90]
mov dword [esp + 0x40], 0
mov edx, dword [eax + edi*8 + 4]
test edx, edx
je 0x4df1af
mov eax, dword [eax + edi*8]
test byte [eax + 8], 2
je 0x4def2b
cmp edx, 0xd
jb 0x4df378
add edx, 0xfffffff3
cmp edx, 3
ja 0x4def1c
jmp 0x4df387
mov al, 2
jmp 0x4de36f
mov edi, esi
mov esi, dword [esp + 4]
test edx, 0x40000000
jne 0x4de225
test edx, 0x20000000
je 0x4df410
mov ecx, dword [ebp + 8]
mov edx, edi
call fcn.004df520
mov edx, dword [esp + 0x1c]
cmp edi, edx
jae 0x4df2bf
movzx ecx, byte [esi + edi]
mov edx, edi
call fcn.004df560
mov ecx, dword [esp + 0x14]
jmp 0x4de988
mov ecx, dword [esp]
lea edx, [esp + 0x28]
mov dword [esp + 0x28], ecx
mov dword [esp + 0x2c], esi
lea ecx, [esp + 0x48]
push eax
push dword [esp + 0x28]
push 0
call fcn.005853c0
add esp, 0xc
jmp 0x4dd427
and esi, 0x7ffffff
mov ecx, dword [esp + 0x24]
shr esi, cl
mov ecx, dword [ebp + 8]
mov edx, dword [ecx + 0x94]
cmp esi, edx
jae 0x4df2b3
mov ecx, dword [ecx + 0x90]
mov edx, dword [ecx + esi*8 + 4]
test edx, edx
je 0x4df1af
mov ecx, dword [ecx + esi*8]
mov esi, dword [ebp + 8]
test byte [ecx + 8], 2
je 0x4ddae6
cmp edx, 0xd
jb 0x4df378
add edx, 0xfffffff3
cmp edx, 3
jbe 0x4df387
mov eax, dword [ecx + 0x15]
mov ecx, dword [esi + 0xb4]
cmp dword [esi + 0xb0], 0
mov dword [esi + 0xb0], 0
je 0x4df303
mov edi, esi
mov edx, ebx
mov esi, ebx
sub edx, ecx
neg edx
sub esi, ecx
mov ecx, dword [esp + 0x14]
cmovb esi, edx
add dword [edi + 0x70], esi
mov dword [ecx], 1
mov dword [ecx + 4], eax
mov dword [ecx + 8], ebx
jmp 0x4def76
mov ecx, dword [esp]
lea edx, [esp + 0x28]
mov dword [esp + 0x28], ecx
mov dword [esp + 0x2c], esi
lea ecx, [esp + 0x48]
push eax
push ebx
push 0
call fcn.005853c0
add esp, 0xc
jmp 0x4dd74b
mov eax, dword [esp]
shl esi, 8
lea ecx, [esp + 0x28]
mov dword [esp + 0x28], eax
mov eax, dword [ebp + 8]
mov dword [esp + 0x2c], eax
push esi
call fcn.00583a20
add esp, 4
test eax, eax
je 0x4dec1c
movzx eax, byte [0x5fd2ec]
xor ecx, ecx
mov edx, 0xc
call fcn.0056a9f0
test eax, eax
je 0x4df363
mov edx, dword [esp + 8]
mov ecx, dword [esp + 0x14]
mov byte [eax], 1
mov dword [eax + 4], edx
jmp 0x4de988
mov eax, dword [esp]
lea ecx, [esp + 0x28]
mov dword [esp + 0x28], eax
mov eax, dword [ebp + 8]
mov dword [esp + 0x2c], eax
push esi
call fcn.00583a20
add esp, 4
test eax, eax
je 0x4decb3
movzx eax, byte [0x5fd2ec]
xor ecx, ecx
mov edx, 0xc
call fcn.0056a9f0
test eax, eax
je 0x4df363
mov edx, dword [esp + 0x10]
mov ecx, dword [esp + 0x14]
mov byte [eax], 1
mov dword [eax + 4], edx
jmp 0x4de988
mov eax, dword [esp + 0x1c]
movzx eax, byte [esi + eax + 0x60]
mov ecx, dword [ebp + 8]
movzx eax, al
mov edx, dword [ecx + 0x88]
cmp edx, eax
jbe 0x4df1a3
mov ecx, dword [ecx + 0x84]
mov ecx, dword [ecx + eax*4]
test ecx, ecx
js 0x4ded84
mov dword [esp + 0x4c], ecx
mov dword [esp + 0x48], 5
lea ecx, [esp + 0x28]
lea edx, [esp + 0x48]
push edi
call fcn.004df450
add esp, 4
cmp dword [esp + 0x28], 0
mov ebx, dword [esp + 0x2c]
je 0x4ddc5c
mov ecx, dword [esp + 0x14]
mov eax, 2
mov dword [ecx + 4], ebx
mov dword [ecx], eax
jmp 0x4def76
mov esi, dword [ebp + 8]
cmp dword [esi + 0xb0], 1
jne 0x4ddc82
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 dword [esi + 0xb0], 1
mov dword [esi + 0xb4], edi
mov dword [esi + 0xb8], edi
mov esi, dword [esp + 8]
mov ecx, dword [esp]
cmp edi, esi
jae 0x4de149
mov edx, dword [ecx + 0x284]
lea eax, [esi + 1]
mov dword [esp + 0x5c], eax
lea eax, [ecx + 0x260]
mov dword [esp + 0x60], eax
and edx, 0x1f
mov dword [esp + 0x68], edx
jmp 0x4ddcd7
mov ebx, ecx
mov edi, eax
mov ecx, dword [esp]
inc edi
cmp edi, esi
jae 0x4de149
cmp ebx, 0x7ffffff
jbe 0x4ddd49
mov esi, dword [ebp + 8]
mov eax, dword [esp + 4]
cmp dword [esi + 0xb0], 0
je 0x4df2cb
cmp edi, dword [esp + 0x18]
mov dword [esi + 0xb8], edi
jae 0x4df228
movzx eax, byte [eax + edi]
movzx edx, byte [ecx + eax + 0x160]
mov ecx, ebx
and ecx, 0x7ffffff
add ecx, edx
mov edx, dword [esi + 0x7c]
cmp ecx, edx
jae 0x4df1bd
mov edx, dword [esi + 0x78]
mov edx, dword [edx + ecx*4]
test edx, edx
js 0x4de0ee
mov esi, dword [esp + 8]
mov eax, edi
cmp edx, 0x7ffffff
mov ebx, edx
mov edi, eax
jbe 0x4ddccb
jmp 0x4dde4a
cmp edi, esi
jae 0x4ddccb
mov ecx, dword [ebp + 8]
mov edx, dword [ecx + 0x7c]
mov eax, dword [ecx + 0x78]
mov dword [esp + 0xc], eax
mov dword [esp + 0x10], edx
mov eax, dword [esp + 4]
mov esi, dword [esp]
movzx ecx, byte [eax + edi]
mov eax, dword [esp + 0xc]
movzx ecx, byte [esi + ecx + 0x160]
add ecx, ebx
mov ecx, dword [eax + ecx*4]
cmp ecx, 0x7ffffff
ja 0x4dde12
mov esi, dword [esp + 8]
mov eax, edi
add edi, 3
cmp edi, esi
jae 0x4ddcc7
mov edx, dword [esp + 4]
mov esi, dword [esp]
mov dword [esp + 0x1c], edi
mov edi, dword [esp + 0xc]
movzx ebx, byte [edx + eax + 1]
movzx ebx, byte [esi + ebx + 0x160]
add ebx, ecx
mov ebx, dword [edi + ebx*4]
cmp ebx, 0x7ffffff
ja 0x4dde1c
movzx ecx, byte [edx + eax + 2]
movzx ecx, byte [esi + ecx + 0x160]
add ecx, ebx
mov ecx, dword [edi + ecx*4]
cmp ecx, 0x7ffffff
ja 0x4dde25
movzx ebx, byte [edx + eax + 3]
movzx ebx, byte [esi + ebx + 0x160]
add ebx, ecx
mov ebx, dword [edi + ebx*4]
cmp ebx, 0x7ffffff
ja 0x4dde30
mov esi, dword [esp + 8]
mov edx, dword [esp + 0x10]
add eax, 4
mov edi, eax
cmp eax, esi
jb 0x4ddd62
jmp 0x4ddccb
mov esi, dword [esp + 8]
mov eax, edi
mov edi, ecx
jmp 0x4dde40
mov esi, dword [esp + 8]
mov edi, ebx
inc eax
jmp 0x4dde3a
mov esi, dword [esp + 8]
add eax, 2
mov edi, ecx
jmp 0x4dde3c
mov esi, dword [esp + 8]
mov eax, dword [esp + 0x1c]
mov edi, ebx
mov ebx, ecx
mov edx, dword [esp + 0x10]
test edi, edi
js 0x4de001
mov ebx, edi
test ebx, 0x10000000
je 0x4deaf8
push esi
push eax
push dword [esp + 0x20]
push dword [esp + 0x10]
push dword [esp + 0x7c]
mov edi, eax
lea eax, [esp + 0x98]
push eax
call dword [esp + 0x5c]
add esp, 0x18
cmp dword [esp + 0x84], 0
je 0x4deb58
mov ecx, dword [esp + 0x88]
cmp ecx, edi
jbe 0x4ddccb
mov eax, ecx
cmp dword [esp + 0x20], 0
mov ecx, dword [esp]
mov edi, eax
je 0x4de0e4
mov ecx, dword [esp + 0x18]
mov dword [esp + 0x78], edi
mov dword [esp + 0x7c], esi
cmp ecx, esi
jb 0x4df39c
cmp dword [esp + 0x5c], edi
jb 0x4df39c
mov esi, dword [esp + 0x60]
lea eax, [edi - 1]
cmp ecx, eax
jbe 0x4de080
mov ecx, dword [esi]
mov ebx, dword [esi + 8]
mov edx, dword [esi + 0xc]
or ebx, dword [esi + 0x18]
or ecx, dword [esi + 0x10]
or edx, dword [esi + 0x1c]
or ecx, ebx
mov ebx, dword [esi + 4]
or ebx, dword [esi + 0x14]
or ebx, edx
or ebx, ecx
mov ecx, dword [esp + 4]
movzx ecx, byte [ecx + eax]
movzx eax, cl
mov dword [esp + 0xc], eax
je 0x4de084
mov eax, ecx
mov dword [esp + 0x150], 0
mov dword [esp + 0x14c], 0
mov dword [esp + 0x148], 0
mov dword [esp + 0x144], 1
mov dword [esp + 0x140], 0
mov dword [esp + 0x13c], 0
mov dword [esp + 0x138], 0
mov dword [esp + 0x134], 0
mov byte [esp + 0x10], cl
and al, 0x78
mov ch, byte [esp + 0x10]
shr al, 3
neg al
movsx edx, al
mov ebx, dword [esp + edx + 0x14c]
mov eax, dword [esp + edx + 0x150]
and ch, 7
mov dword [esp + 0x80], edx
mov cl, ch
shld eax, ebx, cl
shl ebx, cl
not cl
mov dword [esp + 0x1c], eax
mov eax, dword [esp + edx + 0x148]
mov edx, eax
mov esi, eax
mov eax, dword [esp + 0xc]
shr edx, 1
shr edx, cl
mov cl, ch
or edx, ebx
mov ebx, dword [esp + 0x80]
shr eax, 3
and eax, 0xfffffff0
mov ebx, dword [esp + ebx + 0x144]
shld esi, ebx, cl
shl ebx, cl
mov ecx, dword [esp + 0x60]
and edx, dword [ecx + eax + 8]
and ebx, dword [ecx + eax]
and esi, dword [ecx + eax + 4]
or ebx, edx
mov edx, dword [esp + 0x1c]
and edx, dword [ecx + eax + 0xc]
or esi, edx
or esi, ebx
je 0x4de084
movzx eax, byte [esp + 0x10]
mov esi, dword [esp + 8]
mov dword [esp + 0x48], 4
mov byte [esp + 0x4c], al
jmp 0x4de0c1
mov ecx, dword [ebp + 8]
cmp dword [ecx + 0xb0], 0
je 0x4df2cb
mov dword [esp + 0x1c], eax
mov dword [ecx + 0xb8], eax
mov eax, dword [esp + 4]
mov ecx, dword [esp + 0x1c]
movzx edi, byte [eax + ecx]
mov ecx, dword [esp]
mov eax, dword [esp + 0x1c]
movzx ecx, byte [ecx + edi + 0x160]
add ecx, ebx
cmp ecx, edx
jae 0x4df1bd
mov edx, dword [esp + 0xc]
mov edx, dword [edx + ecx*4]
test edx, edx
jns 0x4ddd38
mov eax, dword [esp]
shl edi, 8
mov edx, ebx
lea ecx, [esp + 0x28]
mov dword [esp + 0x28], eax
mov eax, dword [ebp + 8]
mov dword [esp + 0x2c], eax
push edi
call fcn.00583a20
add esp, 4
test eax, eax
jne 0x4df261
mov eax, dword [esp + 0x1c]
jmp 0x4ddd38
mov al, 2
jmp 0x4de090
mov eax, dword [esp]
mov ecx, dword [esp + 0xc]
movzx eax, byte [eax + ecx + 0x60]
mov ecx, dword [ebp + 8]
movzx eax, al
mov edx, dword [ecx + 0x88]
cmp edx, eax
jbe 0x4df1a3
mov ecx, dword [ecx + 0x84]
mov esi, dword [esp + 8]
mov ecx, dword [ecx + eax*4]
test ecx, ecx
js 0x4de11f
mov dword [esp + 0x4c], ecx
mov dword [esp + 0x48], 5
lea ecx, [esp + 0x28]
lea edx, [esp + 0x48]
push edi
call fcn.004df450
add esp, 4
cmp dword [esp + 0x28], 0
mov ebx, dword [esp + 0x2c]
jne 0x4ddc49
mov ecx, dword [esp]
cmp edi, esi
jb 0x4ddcd7
jmp 0x4de149
mov ecx, dword [esp]
shl eax, 8
mov edx, ebx
mov dword [esp + 0x28], ecx
mov ecx, dword [ebp + 8]
mov dword [esp + 0x2c], ecx
lea ecx, [esp + 0x28]
push eax
call fcn.00583a20
add esp, 4
mov esi, dword [esp + 8]
test eax, eax
je 0x4ddd36
jmp 0x4de963
mov ecx, dword [esp]
lea edx, [esp + 0x28]
mov dword [esp + 0x28], ecx
mov ecx, dword [ebp + 8]
mov dword [esp + 0x2c], ecx
lea ecx, [esp + 0x48]
push eax
push dword [esp + 0x28]
push 0
call fcn.005853c0
add esp, 0xc
jmp 0x4de0c1
cmp esi, dword [esp + 0x18]
jae 0x4de1dc
mov eax, dword [esp + 4]
movzx eax, byte [eax + esi]
mov esi, dword [ebp + 8]
mov byte [esp + 4], al
movzx eax, al
movzx edx, byte [ecx + eax + 0x160]
mov ecx, ebx
and ecx, 0x7ffffff
add ecx, edx
mov edx, dword [esi + 0x7c]
cmp ecx, edx
jae 0x4df1bd
mov edx, dword [esi + 0x78]
mov edx, dword [edx + ecx*4]
test edx, edx
js 0x4df03a
test edx, 0x8000000
jne 0x4de234
test edx, 0x20000000
je 0x4de21e
movzx eax, byte [0x5fd2ec]
xor ecx, ecx
mov edx, 0xc
call fcn.0056a9f0
mov ecx, dword [esp + 8]
test eax, eax
je 0x4df363
movzx edx, byte [esp + 4]
mov byte [eax], 0
mov byte [eax + 1], dl
mov edx, ecx
mov ecx, dword [esp + 0x14]
mov dword [eax + 4], edx
jmp 0x4de988
movzx eax, byte [ecx + 0x25f]
mov esi, dword [ebp + 8]
mov ecx, ebx
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 0x4df28f
mov edx, dword [esi + 0x78]
mov edx, dword [edx + ecx*4]
test edx, edx
js 0x4df086
test edx, 0x8000000
jne 0x4de259
xor esi, esi
jmp 0x4debd5
mov ecx, dword [ebp + 8]
mov edx, edi
call fcn.004df520
jmp 0x4def5e
mov eax, dword [esp + 0x40]
xor edi, edi
mov esi, 1
cmp dword [eax + 0x15c], 1
jne 0x4deb6f
mov eax, dword [esp + 8]
mov dword [esp + 0x18], eax
jmp 0x4debd5
mov eax, dword [esp + 0x40]
xor edi, edi
mov esi, 1
cmp dword [eax + 0x15c], 1
je 0x4debd5
mov eax, dword [esp]
and edx, 0x7ffffff
movzx ecx, byte [eax + 0x284]
shr edx, cl
mov ecx, dword [ebp + 8]
mov eax, dword [ecx + 0x94]
cmp edx, eax
jae 0x4df299
mov ecx, dword [ecx + 0x90]
mov eax, dword [ecx + edx*8 + 4]
test eax, eax
je 0x4df1af
mov ecx, dword [ecx + edx*8]
test byte [ecx + 8], 2
je 0x4debd5
cmp eax, 0xd
jb 0x4df317
add eax, 0xfffffff3
cmp eax, 3
ja 0x4debd2
jmp 0x4df328
mov eax, dword [esp]
shl esi, 8
lea ecx, [esp + 0x28]
mov dword [esp + 0x28], eax
mov eax, dword [ebp + 8]
mov dword [esp + 0x2c], eax
push esi
call fcn.00583a20
add esp, 4
test eax, eax
je 0x4dee80
movzx eax, byte [0x5fd2ec]
xor ecx, ecx
mov edx, 0xc
call fcn.0056a9f0
test eax, eax
je 0x4df363
mov ebx, dword [esp + 8]
mov byte [eax], 1
jmp 0x4dd2c2
mov eax, dword [esp]
lea ecx, [esp + 0x28]
mov dword [esp + 0x28], eax
mov eax, dword [ebp + 8]
mov dword [esp + 0x2c], eax
push esi
call fcn.00583a20
add esp, 4
test eax, eax
je 0x4def7e
movzx eax, byte [0x5fd2ec]
xor ecx, ecx
mov edx, 0xc
call fcn.0056a9f0
test eax, eax
je 0x4df363
mov byte [eax], 1
jmp 0x4dd2c2
mov eax, dword [esp + 0x10]
mov ecx, dword [esp]
mov esi, dword [ebp + 8]
movzx eax, byte [ecx + eax + 0x60]
mov edx, dword [esi + 0x88]
movzx eax, al
cmp edx, eax
jbe 0x4df1a3
mov ecx, dword [esi + 0x84]
mov ebx, dword [esp + 0x20]
mov ecx, dword [ecx + eax*4]
test ecx, ecx
js 0x4def9d
mov dword [esp + 0x4c], ecx
mov dword [esp + 0x48], 5
lea ecx, [esp + 0x28]
lea edx, [esp + 0x48]
push edi
call fcn.004df450
add esp, 4
cmp dword [esp + 0x28], 0
mov eax, dword [esp + 0x2c]
je 0x4de3d0
mov ecx, dword [esp + 0x14]
mov edx, 2
mov dword [ecx + 4], eax
mov dword [ecx], edx
jmp 0x4def76
mov dword [esp + 4], eax
cmp dword [esi + 0xb0], 1
jne 0x4de3f7
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 + 8]
mov ecx, dword [esp]
mov dword [esi + 0xb0], 1
mov dword [esi + 0xb4], edi
mov dword [esi + 0xb8], edi
cmp edi, eax
jae 0x4de996
inc eax
mov dword [esp + 0x68], 0
mov dword [esp + 0x80], eax
lea eax, [ecx + 0x260]
mov dword [esp + 0x60], eax
mov eax, dword [ecx + 0x284]
and eax, 0x1f
mov dword [esp + 0x90], eax
jmp 0x4de45e
mov dword [esp + 4], ecx
mov ecx, dword [esp]
mov ebx, dword [esp + 0x20]
inc edi
cmp edi, dword [esp + 8]
jae 0x4de99e
cmp dword [esp + 4], 0x7ffffff
jbe 0x4de4dd
cmp dword [esi + 0xb0], 0
je 0x4df2cb
cmp edi, ebx
mov dword [esi + 0xb8], edi
jae 0x4df253
mov eax, dword [esp + 0xc]
movzx eax, byte [eax + edi]
movzx edx, byte [ecx + eax + 0x160]
mov ecx, dword [esp + 4]
and ecx, 0x7ffffff
add ecx, edx
mov edx, dword [esi + 0x7c]
cmp ecx, edx
jae 0x4df1bd
mov edx, dword [esi + 0x78]
mov ecx, dword [edx + ecx*4]
test ecx, ecx
js 0x4de844
mov esi, ecx
mov eax, dword [esp + 8]
mov ecx, dword [esp]
mov edx, dword [esp + 0xc]
cmp esi, 0x7ffffff
ja 0x4de5d7
mov dword [esp + 4], esi
mov esi, dword [ebp + 8]
jmp 0x4de453
cmp edi, dword [esp + 8]
jae 0x4de453
mov edx, dword [esi + 0x78]
mov eax, dword [esi + 0x7c]
mov dword [esp + 0x5c], eax
mov dword [esp + 0x10], edx
mov eax, dword [esp + 0xc]
mov ebx, dword [esp]
movzx ecx, byte [eax + edi]
movzx ecx, byte [ebx + ecx + 0x160]
add ecx, dword [esp + 4]
mov ecx, dword [edx + ecx*4]
cmp ecx, 0x7ffffff
ja 0x4de5b0
lea eax, [edi + 3]
cmp eax, dword [esp + 8]
mov dword [esp + 0x18], eax
jae 0x4de448
mov eax, dword [esp + 0xc]
mov ebx, dword [esp]
mov edx, dword [esp + 0x10]
movzx esi, byte [eax + edi + 1]
movzx esi, byte [ebx + esi + 0x160]
add esi, ecx
mov esi, dword [edx + esi*4]
cmp esi, 0x7ffffff
ja 0x4de5a2
movzx ecx, byte [eax + edi + 2]
movzx ecx, byte [ebx + ecx + 0x160]
add ecx, esi
mov ecx, dword [edx + ecx*4]
cmp ecx, 0x7ffffff
ja 0x4de5a9
movzx esi, byte [eax + edi + 3]
movzx esi, byte [ebx + esi + 0x160]
add esi, ecx
mov esi, dword [edx + esi*4]
cmp esi, 0x7ffffff
ja 0x4de5b8
add edi, 4
mov dword [esp + 4], esi
mov esi, dword [ebp + 8]
mov edx, dword [esp + 0x10]
cmp edi, dword [esp + 8]
jb 0x4de4f5
jmp 0x4de44c
mov ebx, dword [esp + 0x20]
inc edi
jmp 0x4de5c0
mov dword [esp + 4], esi
add edi, 2
mov ebx, dword [esp + 0x20]
mov esi, ecx
jmp 0x4de5c4
mov ebx, dword [esp + 0x20]
mov edi, dword [esp + 0x18]
mov dword [esp + 4], ecx
test esi, esi
js 0x4de7f5
mov eax, dword [esp + 8]
mov ecx, dword [esp]
mov edx, dword [esp + 0xc]
test esi, 0x10000000
mov dword [esp + 4], esi
je 0x4de872
push eax
push edi
push ebx
push edx
push dword [esp + 0x50]
lea eax, [esp + 0x98]
push eax
call dword [esp + 0x3c]
add esp, 0x18
cmp dword [esp + 0x84], 0
mov esi, dword [ebp + 8]
je 0x4deae8
mov ecx, dword [esp + 0x88]
cmp ecx, edi
jbe 0x4de8a7
mov eax, ecx
cmp dword [esp + 0x1c], 0
mov ecx, dword [esp]
mov edi, eax
je 0x4de454
mov eax, dword [esp + 8]
mov dword [esp + 0x78], edi
cmp ebx, eax
mov dword [esp + 0x7c], eax
jb 0x4df372
cmp dword [esp + 0x80], edi
jb 0x4df372
mov ecx, dword [esp + 0x60]
lea eax, [edi - 1]
cmp ebx, eax
jbe 0x4de788
mov ebx, dword [ecx]
mov esi, dword [ecx + 8]
mov edx, dword [ecx + 0xc]
or esi, dword [ecx + 0x18]
or ebx, dword [ecx + 0x10]
or edx, dword [ecx + 0x1c]
or ebx, esi
mov esi, dword [ecx + 4]
or esi, dword [ecx + 0x14]
mov ecx, dword [esp + 0xc]
or esi, edx
movzx ecx, byte [ecx + eax]
or esi, ebx
mov ebx, dword [esp + 0x20]
movzx eax, cl
mov dword [esp + 4], eax
je 0x4de78c
mov eax, ecx
mov dword [esp + 0xf0], 0
mov dword [esp + 0xec], 0
mov dword [esp + 0xe8], 0
mov dword [esp + 0xe4], 1
mov dword [esp + 0xe0], 0
mov dword [esp + 0xdc], 0
mov dword [esp + 0xd8], 0
mov dword [esp + 0xd4], 0
mov byte [esp + 0x10], cl
and al, 0x78
mov ch, byte [esp + 0x10]
shr al, 3
neg al
movsx edx, al
mov ebx, dword [esp + edx + 0xec]
mov eax, dword [esp + edx + 0xf0]
and ch, 7
mov dword [esp + 0x5c], edx
mov cl, ch
shld eax, ebx, cl
shl ebx, cl
not cl
mov dword [esp + 0x18], eax
mov eax, dword [esp + 4]
mov esi, dword [esp + edx + 0xe8]
shr eax, 3
mov edx, esi
and eax, 0xfffffff0
shr edx, 1
shr edx, cl
mov cl, ch
or edx, ebx
mov ebx, dword [esp + 0x5c]
mov ebx, dword [esp + ebx + 0xe4]
shld esi, ebx, cl
shl ebx, cl
mov ecx, dword [esp + 0x60]
and edx, dword [ecx + eax + 8]
and ebx, dword [ecx + eax]
and esi, dword [ecx + eax + 4]
or ebx, edx
mov edx, dword [esp + 0x18]
and edx, dword [ecx + eax + 0xc]
movzx eax, byte [esp + 0x10]
or esi, edx
or esi, ebx
mov ebx, dword [esp + 0x20]
je 0x4de78c
mov esi, dword [ebp + 8]
mov dword [esp + 0x48], 4
mov byte [esp + 0x4c], al
jmp 0x4de7c9
mov al, 2
jmp 0x4de79b
mov eax, dword [esp]
mov ecx, dword [esp + 4]
mov esi, dword [ebp + 8]
movzx eax, byte [eax + ecx + 0x60]
mov edx, dword [esi + 0x88]
movzx eax, al
cmp edx, eax
jbe 0x4df1a3
mov ecx, dword [esi + 0x84]
mov ecx, dword [ecx + eax*4]
test ecx, ecx
js 0x4de8af
mov dword [esp + 0x4c], ecx
mov dword [esp + 0x48], 5
lea ecx, [esp + 0x28]
lea edx, [esp + 0x48]
push edi
call fcn.004df450
add esp, 4
cmp dword [esp + 0x28], 0
mov eax, dword [esp + 0x2c]
mov dword [esp + 4], eax
jne 0x4ded77
mov ecx, dword [esp]
jmp 0x4de454
mov ecx, dword [ebp + 8]
cmp dword [ecx + 0xb0], 0
je 0x4df2cb
mov eax, dword [esp + 0xc]
mov dword [ecx + 0xb8], edi
mov ecx, dword [esp]
mov edx, dword [esp + 0x5c]
movzx esi, byte [eax + edi]
movzx ecx, byte [ecx + esi + 0x160]
add ecx, dword [esp + 4]
cmp ecx, edx
jae 0x4df1bd
mov eax, dword [esp + 0x10]
mov eax, dword [eax + ecx*4]
test eax, eax
js 0x4de939
mov esi, eax
jmp 0x4de4ba
mov ecx, dword [esp]
mov edx, dword [esp + 4]
shl eax, 8
mov dword [esp + 0x28], ecx
lea ecx, [esp + 0x28]
mov dword [esp + 0x2c], esi
push eax
call fcn.00583a20
add esp, 4
test eax, eax
jne 0x4de963
mov esi, edx
jmp 0x4de4ba
test esi, 0x8000000
mov esi, dword [ebp + 8]
je 0x4df1c7
mov eax, dword [esp + 0x44]
mov dword [esp + 0x68], 1
mov dword [esp + 0x70], 0
cmp dword [eax + 0x15c], 1
jne 0x4de8d6
mov dword [esp + 0x64], edi
jmp 0x4de453
mov ecx, dword [esp]
jmp 0x4de453
mov ecx, dword [esp]
lea edx, [esp + 0x28]
mov dword [esp + 0x28], ecx
mov dword [esp + 0x2c], esi
lea ecx, [esp + 0x48]
push eax
push dword [esp + 0x70]
push 0
call fcn.005853c0
add esp, 0xc
jmp 0x4de7c9
mov eax, dword [esp + 4]
mov edx, dword [esi + 0x94]
mov ecx, dword [esp + 0x90]
and eax, 0x7ffffff
shr eax, cl
cmp eax, edx
jae 0x4df2df
mov ecx, dword [esi + 0x90]
mov edx, dword [ecx + eax*8 + 4]
test edx, edx
je 0x4df1af
mov eax, dword [ecx + eax*8]
test byte [eax + 8], 2
je 0x4de92d
cmp edx, 0xd
jb 0x4df378
add edx, 0xfffffff3
cmp edx, 3
jbe 0x4df387
mov eax, dword [eax + 0x15]
mov dword [esp + 0x70], eax
mov ecx, dword [esp]
mov dword [esp + 0x64], edi
jmp 0x4de453
mov eax, dword [esp]
mov ecx, dword [ebp + 8]
mov edx, dword [esp + 4]
shl esi, 8
mov dword [esp + 0x28], eax
mov dword [esp + 0x2c], ecx
lea ecx, [esp + 0x28]
push esi
call fcn.00583a20
add esp, 4
test eax, eax
je 0x4de86b
movzx eax, byte [0x5fd2ec]
xor ecx, ecx
mov edx, 0xc
call fcn.0056a9f0
test eax, eax
je 0x4df363
mov ecx, dword [esp + 0x14]
mov byte [eax], 1
mov dword [eax + 4], edi
mov dword [ecx + 4], eax
mov dword [ecx], 2
jmp 0x4def76
mov dword [esp + 0x68], 0
mov eax, dword [esp + 8]
cmp eax, ebx
jae 0x4de9fb
mov edx, dword [esp + 0xc]
movzx ebx, byte [edx + eax]
movzx eax, bl
movzx edx, byte [ecx + eax + 0x160]
mov ecx, dword [esp + 4]
and ecx, 0x7ffffff
add ecx, edx
mov edx, dword [esi + 0x7c]
cmp ecx, edx
jae 0x4df1bd
mov edx, dword [esi + 0x78]
mov edx, dword [edx + ecx*4]
test edx, edx
js 0x4df0f6
test edx, 0x8000000
jne 0x4deaba
test edx, 0x20000000
jne 0x4dd29d
jmp 0x4dee1d
movzx eax, byte [ecx + 0x25f]
mov ecx, dword [esp + 4]
shl eax, 0x10
and ecx, 0x7ffffff
add eax, 0x10001
mov edx, eax
shr edx, 0x10
add ecx, edx
mov edx, dword [esi + 0x7c]
cmp ecx, edx
jae 0x4df28f
mov edx, dword [esi + 0x78]
mov edx, dword [edx + ecx*4]
test edx, edx
js 0x4df122
test edx, 0x8000000
je 0x4dee1d
mov eax, dword [esp + 0x44]
mov dword [esp + 0x68], 1
mov dword [esp + 0x70], 0
cmp dword [eax + 0x15c], 1
je 0x4dee19
mov eax, dword [esp]
and edx, 0x7ffffff
movzx ecx, byte [eax + 0x284]
mov eax, dword [esi + 0x94]
shr edx, cl
cmp edx, eax
jae 0x4df299
mov ecx, dword [esi + 0x90]
mov eax, dword [ecx + edx*8 + 4]
test eax, eax
je 0x4df1af
mov ecx, dword [ecx + edx*8]
test byte [ecx + 8], 2
je 0x4dee19
cmp eax, 0xd
jb 0x4df317
add eax, 0xfffffff3
cmp eax, 3
ja 0x4dee0a
jmp 0x4df328
mov eax, dword [esp + 0x44]
mov dword [esp + 0x68], 1
mov dword [esp + 0x70], 0
cmp dword [eax + 0x15c], 1
jne 0x4dedae
mov eax, dword [esp + 8]
mov dword [esp + 0x64], eax
jmp 0x4dee1d
mov edx, dword [esp + 8]
mov ecx, esi
call fcn.004df520
jmp 0x4dee4c
test ebx, 0x8000000
jne 0x4dee61
test ebx, 0x40000000
jne 0x4deb3f
test ebx, 0x20000000
je 0x4df410
mov ecx, dword [ebp + 8]
mov edx, eax
mov esi, eax
call fcn.004df520
mov edx, dword [esp + 0x18]
cmp esi, edx
jae 0x4df2eb
mov eax, dword [esp + 4]
mov edx, esi
movzx ecx, byte [eax + esi]
jmp 0x4dda5e
mov ecx, dword [ebp + 8]
mov edx, eax
call fcn.004df520
mov eax, dword [esp + 0x14]
mov dword [eax], 0
jmp 0x4def76
mov ecx, dword [ebp + 8]
mov edx, esi
call fcn.004df520
mov ecx, dword [esp + 0x14]
xor eax, eax
mov dword [ecx], eax
jmp 0x4def76
mov eax, dword [esp]
and edx, 0x7ffffff
movzx ecx, byte [eax + 0x284]
shr edx, cl
mov ecx, dword [ebp + 8]
mov eax, dword [ecx + 0x94]
cmp edx, eax
jae 0x4df299
mov ecx, dword [ecx + 0x90]
mov eax, dword [ecx + edx*8 + 4]
test eax, eax
je 0x4df1af
mov ecx, dword [ecx + edx*8]
mov edx, dword [esp + 8]
test byte [ecx + 8], 2
mov dword [esp + 0x18], edx
je 0x4debd5
cmp eax, 0xd
jb 0x4df317
mov edx, dword [esp + 8]
add eax, 0xfffffff3
cmp eax, 3
mov dword [esp + 0x18], edx
jbe 0x4df328
mov edi, dword [ecx + 0x15]
mov edx, dword [ebp + 8]
mov eax, dword [edx + 0xb4]
cmp dword [edx + 0xb0], 0
mov dword [edx + 0xb0], 0
je 0x4df303
mov ebx, dword [esp + 8]
mov ecx, ebx
sub ecx, eax
neg ecx
sub ebx, eax
mov eax, dword [esp + 0x14]
cmovb ebx, ecx
mov ecx, dword [esp + 0x18]
add dword [edx + 0x70], ebx
mov dword [eax], esi
mov dword [eax + 4], edi
mov dword [eax + 8], ecx
jmp 0x4def76
mov edi, edx
test edi, 0x8000000
je 0x4dcad4
mov ecx, dword [esp + 0x18]
xor esi, esi
mov eax, 1
cmp dword [ecx + 0x15c], 1
jne 0x4dec4b
mov ecx, dword [esp + 8]
mov dword [esp + 0x10], ecx
jmp 0x4ded30
mov ecx, dword [esp]
and edi, 0x7ffffff
movzx ecx, byte [ecx + 0x284]
shr edi, cl
mov ecx, dword [ebp + 8]
mov edx, dword [ecx + 0x94]
cmp edi, edx
jae 0x4df247
mov ecx, dword [ecx + 0x90]
mov edx, dword [ecx + edi*8 + 4]
test edx, edx
je 0x4df1af
mov ecx, dword [ecx + edi*8]
mov edi, dword [esp + 8]
test byte [ecx + 8], 2
mov dword [esp + 0x10], edi
je 0x4ded30
cmp edx, 0xd
jb 0x4df378
mov eax, dword [esp + 8]
add edx, 0xfffffff3
cmp edx, 3
mov dword [esp + 0x10], eax
ja 0x4ded28
jmp 0x4df387
mov edi, edx
test edi, 0x8000000
je 0x4dce2f
mov ecx, dword [esp + 0x18]
xor esi, esi
mov eax, 1
cmp dword [ecx + 0x15c], 1
je 0x4ded30
mov ecx, dword [esp]
and edi, 0x7ffffff
movzx ecx, byte [ecx + 0x284]
shr edi, cl
mov ecx, dword [ebp + 8]
mov edx, dword [ecx + 0x94]
cmp edi, edx
jae 0x4df247
mov ecx, dword [ecx + 0x90]
mov edx, dword [ecx + edi*8 + 4]
test edx, edx
je 0x4df1af
mov ecx, dword [ecx + edi*8]
test byte [ecx + 8], 2
je 0x4ded30
cmp edx, 0xd
jb 0x4df378
add edx, 0xfffffff3
cmp edx, 3
jbe 0x4df387
mov esi, dword [ecx + 0x15]
mov eax, 1
mov edi, dword [ebp + 8]
mov ecx, dword [edi + 0xb4]
cmp dword [edi + 0xb0], 0
mov dword [edi + 0xb0], 0
je 0x4df303
mov ebx, dword [esp + 8]
mov edx, ebx
sub edx, ecx
neg edx
sub ebx, ecx
cmovb ebx, edx
mov edx, dword [esp + 0x10]
add dword [edi + 0x70], ebx
mov edi, dword [esp + 0x14]
mov dword [edi], eax
mov dword [edi + 4], esi
mov dword [edi + 8], edx
jmp 0x4def76
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 4]
jmp 0x4dd76b
mov ecx, dword [esp]
lea edx, [esp + 0x28]
mov dword [esp + 0x28], ecx
mov ecx, dword [ebp + 8]
mov dword [esp + 0x2c], ecx
lea ecx, [esp + 0x48]
push eax
push dword [esp + 0x28]
push 0
call fcn.005853c0
add esp, 0xc
jmp 0x4ddc2d
mov eax, dword [esp]
and edx, 0x7ffffff
movzx ecx, byte [eax + 0x284]
mov eax, dword [esi + 0x94]
shr edx, cl
cmp edx, eax
jae 0x4df299
mov ecx, dword [esi + 0x90]
mov eax, dword [ecx + edx*8 + 4]
test eax, eax
je 0x4df1af
mov ecx, dword [ecx + edx*8]
mov edx, dword [esp + 8]
test byte [ecx + 8], 2
mov dword [esp + 0x64], edx
je 0x4dee1d
cmp eax, 0xd
jb 0x4df317
mov ebx, dword [esp + 8]
add eax, 0xfffffff3
cmp eax, 3
jbe 0x4df328
mov eax, dword [ecx + 0x15]
mov dword [esp + 0x68], 1
mov dword [esp + 0x70], eax
mov dword [esp + 0x64], ebx
mov eax, dword [esi + 0xb4]
cmp dword [esi + 0xb0], 0
mov dword [esi + 0xb0], 0
je 0x4df303
mov edx, dword [esp + 8]
mov ecx, edx
sub ecx, eax
neg ecx
sub edx, eax
cmovb edx, ecx
add dword [esi + 0x70], edx
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x68]
mov esi, dword [esp + 0x70]
mov edx, dword [esp + 0x64]
jmp 0x4def6e
mov ecx, dword [esp + 0x40]
mov dword [esp + 0x1c], eax
xor eax, eax
cmp dword [ecx + 0x15c], 1
jne 0x4defc4
mov esi, dword [ebp + 8]
jmp 0x4df014
mov edi, edx
test edi, 0x8000000
je 0x4dd28e
mov eax, dword [esp + 0x20]
mov esi, dword [ebp + 8]
mov dword [esp + 0x24], 1
cmp dword [eax + 0x15c], 1
jne 0x4deeb8
mov eax, dword [esp + 8]
mov dword [esp + 0x40], 0
mov dword [esp + 0x44], eax
jmp 0x4def2f
mov eax, dword [esp]
mov edx, dword [esi + 0x94]
and edi, 0x7ffffff
movzx ecx, byte [eax + 0x284]
shr edi, cl
cmp edi, edx
jae 0x4df247
mov eax, dword [esi + 0x90]
mov dword [esp + 0x40], 0
mov edx, dword [eax + edi*8 + 4]
test edx, edx
je 0x4df1af
mov eax, dword [eax + edi*8]
mov ecx, dword [esp + 8]
test byte [eax + 8], 2
mov dword [esp + 0x44], ecx
je 0x4def2f
cmp edx, 0xd
jb 0x4df378
mov ebx, dword [esp + 8]
add edx, 0xfffffff3
cmp edx, 3
jbe 0x4df387
mov eax, dword [eax + 0x15]
mov dword [esp + 0x24], 1
mov dword [esp + 0x40], eax
mov dword [esp + 0x44], ebx
mov eax, dword [esi + 0xb4]
cmp dword [esi + 0xb0], 0
mov dword [esi + 0xb0], 0
je 0x4df303
mov edx, dword [esp + 8]
mov ecx, edx
sub ecx, eax
neg ecx
sub edx, eax
cmovb edx, ecx
add dword [esi + 0x70], edx
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x24]
mov esi, dword [esp + 0x40]
mov edx, dword [esp + 0x44]
mov dword [eax], ecx
mov dword [eax + 4], esi
mov dword [eax + 8], edx
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
mov edi, edx
mov esi, dword [ebp + 8]
test edi, 0x8000000
jne 0x4dd32e
jmp 0x4def2f
mov edx, eax
push 0x59b9a8
call fcn.0057f710
mov ecx, dword [esp]
lea edx, [esp + 0x28]
mov dword [esp + 0x28], ecx
mov dword [esp + 0x2c], esi
lea ecx, [esp + 0x48]
push eax
push dword [esp + 0x70]
push 0
call fcn.005853c0
add esp, 0xc
jmp 0x4de3a1
mov esi, dword [ebp + 8]
and ebx, 0x7ffffff
mov ecx, dword [esp + 0x68]
shr ebx, cl
mov edx, dword [esi + 0x94]
cmp ebx, edx
jae 0x4df2f7
mov ecx, dword [esi + 0x90]
mov edx, dword [ecx + ebx*8 + 4]
test edx, edx
je 0x4df1af
mov ecx, dword [ecx + ebx*8]
test byte [ecx + 8], 2
je 0x4df014
cmp edx, 0xd
jb 0x4df378
add edx, 0xfffffff3
cmp edx, 3
jbe 0x4df387
mov eax, dword [ecx + 0x15]
mov ecx, dword [esi + 0xb4]
cmp dword [esi + 0xb0], 0
mov dword [esi + 0xb0], 0
je 0x4df303
mov ebx, dword [esp + 0x1c]
jmp 0x4ddb03
mov ecx, dword [esp]
shl eax, 8
mov edx, ebx
mov dword [esp + 0x28], ecx
mov dword [esp + 0x2c], esi
lea ecx, [esp + 0x28]
push eax
call fcn.00583a20
add esp, 4
test eax, eax
je 0x4de190
movzx eax, byte [0x5fd2ec]
xor ecx, ecx
mov edx, 0xc
call fcn.0056a9f0
mov ecx, dword [esp + 8]
test eax, eax
je 0x4df363
mov byte [eax], 1
jmp 0x4de1ce
mov ecx, dword [esp]
mov edx, ebx
mov dword [esp + 0x28], ecx
mov dword [esp + 0x2c], esi
lea ecx, [esp + 0x28]
push eax
call fcn.00583a20
add esp, 4
test eax, eax
je 0x4de216
movzx eax, byte [0x5fd2ec]
xor ecx, ecx
mov edx, 0xc
call fcn.0056a9f0
test eax, eax
je 0x4df363
mov edx, dword [esp + 0x18]
mov ecx, dword [esp + 0x14]
mov byte [eax], 1
mov dword [eax + 4], edx
jmp 0x4de988
mov edx, dword [esp + 0x10]
mov ecx, edi
push 0x59bf1c
call fcn.0057f710
mov edx, dword [esp + 0x1c]
mov ecx, edi
push 0x59bf1c
call fcn.0057f710
mov ecx, dword [esp]
mov edx, dword [esp + 4]
shl eax, 8
mov dword [esp + 0x28], ecx
mov dword [esp + 0x2c], esi
lea ecx, [esp + 0x28]
push eax
call fcn.00583a20
add esp, 4
test eax, eax
jne 0x4de2f3
jmp 0x4de9de
mov ecx, dword [esp]
mov edx, dword [esp + 4]
mov dword [esp + 0x28], ecx
mov dword [esp + 0x2c], esi
lea ecx, [esp + 0x28]
push eax
call fcn.00583a20
add esp, 4
test eax, eax
jne 0x4de33d
jmp 0x4dea34
movzx eax, byte [0x5fd2ec]
xor ecx, ecx
mov edx, 0xc
call fcn.0056a9f0
test eax, eax
je 0x4df363
mov ecx, dword [esp + 0xc]
mov byte [eax], 1
mov dword [eax + 4], ecx
mov ecx, dword [esp + 0x14]
jmp 0x4de988
movzx eax, byte [0x5fd2ec]
xor ecx, ecx
mov edx, 0xc
call fcn.0056a9f0
test eax, eax
je 0x4df363
mov ecx, dword [esp + 0x14]
mov byte [eax], 1
mov dword [eax + 4], esi
jmp 0x4de988
mov ecx, eax
push 0x59bcd4
call fcn.0057f710
xor ecx, ecx
xor edx, edx
push 0x59e5d0
call fcn.0057f710
push 0x59b9a8
call fcn.0057f710
test dword [esp + 4], 0x40000000
jne 0x4df238
test dword [esp + 4], 0x20000000
je 0x4df410
mov ecx, dword [ebp + 8]
mov edx, edi
mov esi, edi
call fcn.004df520
cmp edi, dword [esp + 0x20]
jae 0x4df3a2
mov eax, dword [esp + 0xc]
movzx ecx, byte [eax + edi]
jmp 0x4dda5c
mov ecx, edi
mov edx, eax
push 0x59bce4
call fcn.0057f710
mov edx, esi
push 0x59b9a8
call fcn.0057f710
mov edx, eax
push 0x59b9b8
call fcn.0057f710
mov edx, dword [esp + 0x18]
mov ecx, edi
push 0x59bf1c
call fcn.0057f710
mov ecx, dword [ebp + 8]
mov edx, edi
call fcn.004df520
jmp 0x4dee4c
mov ecx, edi
push 0x59bce4
call fcn.0057f710
mov ecx, edi
mov edx, ebx
push 0x59bf1c
call fcn.0057f710
movzx eax, byte [0x5fd2ec]
xor ecx, ecx
mov edx, 0xc
call fcn.0056a9f0
test eax, eax
je 0x4df363
mov ecx, dword [esp + 0x1c]
mov byte [eax], 1
mov dword [eax + 4], ecx
mov ecx, dword [esp + 0x14]
jmp 0x4de988
push 0x59b9b8
call fcn.0057f710
mov ecx, edx
mov edx, eax
push 0x59bce4
call fcn.0057f710
mov ecx, eax
push 0x59bf88
call fcn.0057f710
mov ecx, esi
push 0x59bce4
call fcn.0057f710
mov ecx, edi
push 0x59bf88
call fcn.0057f710
mov ecx, str.no_in_progress_search_to_update
mov edx, 0x1f
push 0x59ba4c
call fcn.0057fb30
mov ecx, eax
push 0x59bce4
call fcn.0057f710
mov ecx, esi
push 0x59bf88
call fcn.0057f710
mov ecx, ebx
push 0x59bce4
call fcn.0057f710
mov ecx, str.no_in_progress_search_to_finish
mov edx, 0x1f
push 0x59ba7c
call fcn.0057fb30
mov ecx, 0xd
mov edx, eax
push 0x59e600
call fcn.0057f6b0
mov ecx, 4
mov edx, eax
push 0x59e514
call fcn.0057f770
mov dword [esp + 0x28], edx
mov dword [esp + 0x2c], 0
lea eax, [esp + 0x28]
mov ecx, str.called__Result::unwrap____on_an__Err__value
mov edx, 0x2b
push 0x59bcf4
push 0x59aa5c
push eax
call fcn.0057fa90
mov ecx, 4
mov edx, 0xc
call fcn.0057f230
mov dword [esp + 0x74], ebx
jmp 0x4df3ba
mov ecx, 0xd
push 0x59e600
call fcn.0057f6b0
mov ecx, 4
push 0x59e514
call fcn.0057f770
mov eax, dword [esp + 0x18]
jmp 0x4df3b6
mov dword [esp + 0x74], ecx
jmp 0x4df3ba
mov edx, dword [esp + 0x20]
mov ecx, edi
push 0x59bf88
call fcn.0057f710
mov eax, dword [esp + 0x20]
mov dword [esp + 0x74], eax
lea eax, [esp + 0x78]
lea edx, [esp + 0x74]
lea ecx, [esp + 0x48]
mov dword [esp + 0x28], 0x59a73c
mov dword [esp + 0x2c], 2
mov dword [esp + 0x38], 0
mov dword [esp + 0x30], ecx
mov dword [esp + 0x48], eax
mov dword [esp + 0x4c], 0x463480
mov dword [esp + 0x50], edx
lea ecx, [esp + 0x28]
mov edx, 0x59e860
mov dword [esp + 0x54], 0x4adf60
mov dword [esp + 0x34], 2
call fcn.0057f680
lea eax, [esp + 0x58]
lea ecx, [esp + 0x28]
mov edx, 0x59bf78
mov dword [esp + 0x28], 0x59bf70
mov dword [esp + 0x2c], 1
mov dword [esp + 0x38], 0
mov dword [esp + 0x30], eax
mov dword [esp + 0x34], 0
call fcn.0057f680
int3