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

Disassembly:
push ebp
push ebx
push edi
push esi
sub esp, 0x190
mov eax, dword [esp + 0x1a8]
mov esi, dword [eax + 0x10]
mov edi, dword [eax + 0x14]
cmp esi, edi
jbe 0x4fcd9e
mov dword [ecx], 0
jmp 0x4ff5fa
mov ebp, dword [eax]
mov dword [esp], edx
mov edx, dword [eax + 4]
mov ebx, dword [esp + 0x1a4]
mov dword [esp + 0x18], ecx
mov dword [esp + 4], edi
lea eax, [ebp - 1]
mov dword [esp + 8], ebp
mov dword [esp + 0x1c], edx
cmp eax, 2
jb 0x4fcde1
mov ecx, dword [esp]
cmp byte [ecx + 0x48], 3
lea eax, [ecx + 0x40]
mov ecx, 0x76842c
cmovne ecx, eax
cmp byte [ecx + 8], 2
jne 0x4fd379
mov edi, dword [esp + 0x1a8]
lea ebx, [esi - 1]
mov dword [esp + 0x10], ebx
cmp byte [edi + 0x18], 0
je 0x4fd22f
mov eax, dword [esp]
test esi, esi
mov eax, dword [eax + 0x278]
mov dword [esp + 0x20], eax
je 0x4fcf49
cmp dword [edi + 0xc], ebx
jbe 0x4fcf49
mov ebp, dword [esp]
mov eax, dword [ebp + 0x258]
mov edx, dword [ebp + 0x260]
mov ecx, dword [ebp + 0x264]
or edx, dword [ebp + 0x270]
or eax, dword [ebp + 0x268]
or ecx, dword [ebp + 0x274]
or eax, edx
mov edx, dword [ebp + 0x25c]
or edx, dword [ebp + 0x26c]
or edx, ecx
or edx, eax
mov eax, dword [edi + 8]
mov ch, byte [eax + ebx]
movzx eax, ch
je 0x4fcf3f
mov cl, ch
lea edx, [ebp + 0x258]
mov dword [esp + 0x28], eax
xor eax, eax
and ch, 7
and cl, 0x78
mov dword [esp + 0xc], edx
mov dword [esp + 0xcc], eax
mov dword [esp + 0xc8], eax
mov dword [esp + 0xc4], eax
mov dword [esp + 0xbc], eax
mov dword [esp + 0xb8], eax
mov dword [esp + 0xb4], eax
mov dword [esp + 0xb0], eax
mov dword [esp + 0xc0], 1
shr cl, 3
neg cl
movsx ebp, cl
mov cl, ch
mov ebx, dword [esp + ebp + 0xc8]
mov eax, dword [esp + ebp + 0xcc]
shld eax, ebx, cl
shl ebx, cl
not cl
mov dword [esp + 0x14], eax
mov eax, dword [esp + ebp + 0xc4]
mov edx, eax
mov edi, eax
mov eax, dword [esp + 0x28]
shr edx, 1
shr edx, cl
mov cl, ch
or edx, ebx
mov ebx, dword [esp + ebp + 0xc0]
mov ebp, dword [esp]
shr eax, 3
and eax, 0xfffffff0
shld edi, ebx, cl
shl ebx, cl
mov ecx, dword [esp + 0xc]
mov dword [esp + 0x24], edi
mov edi, dword [esp + 0xc]
and edx, dword [ecx + eax + 8]
mov ecx, dword [esp + 0x14]
and ecx, dword [edi + eax + 0xc]
mov edi, dword [esp + 0x24]
mov dword [esp + 0x14], ecx
mov ecx, dword [esp + 0xc]
and edi, dword [ecx + eax + 4]
and ebx, dword [ecx + eax]
mov eax, dword [esp + 0x28]
or edi, dword [esp + 0x14]
or ebx, edx
or edi, ebx
jne 0x4fd368
mov bl, byte [ebp + eax + 0x58]
mov edx, dword [esp + 0x1c]
jmp 0x4fcf4b
mov bl, 2
mov edi, dword [esp + 8]
movzx ecx, bl
test edi, edi
je 0x4fcf62
cmp edi, 1
jne 0x4fd523
add ecx, 6
mov eax, dword [esp + 0x1a4]
mov edx, dword [eax + 0x88]
cmp edx, ecx
jbe 0x4ff669
mov eax, dword [eax + 0x80]
mov eax, dword [eax + ecx*4]
test eax, eax
js 0x4fe662
mov dword [esp + 0x50], eax
mov dword [esp + 0x4c], 5
mov ebx, dword [esp + 0x1a4]
cmp dword [ebx + 0xb0], 0
je 0x4fcfbe
mov eax, dword [ebx + 0xb8]
mov ecx, dword [ebx + 0xb4]
mov edx, eax
sub edx, ecx
neg edx
sub eax, ecx
cmovb eax, edx
add dword [ebx + 0x70], eax
mov edi, dword [esp + 0x50]
cmp esi, dword [esp + 4]
mov dword [ebx + 0xb0], 1
mov dword [ebx + 0xb4], esi
mov dword [ebx + 0xb8], esi
jae 0x4fd517
mov edx, dword [esp]
mov eax, dword [esp + 0x1a8]
mov ebp, dword [edx + 0x27c]
mov ecx, dword [eax + 8]
mov eax, dword [eax + 0xc]
and ebp, 0x1f
mov dword [esp + 0x1c], eax
mov dword [esp + 8], ecx
mov dword [esp + 0x14], ebp
cmp edi, 0x7ffffff
jbe 0x4fd085
cmp dword [ebx + 0xb0], 0
je 0x4ff6f2
cmp esi, dword [esp + 0x1c]
mov dword [ebx + 0xb8], esi
jae 0x4ff490
movzx ebp, byte [ecx + esi]
mov dword [esp + 0x10], esi
mov esi, edx
movzx eax, byte [edx + ebp + 0x158]
mov edx, edi
and edi, 0x7ffffff
add edi, eax
mov eax, dword [ebx + 0x7c]
cmp eax, edi
jbe 0x4ff566
mov eax, dword [ebx + 0x74]
mov edi, dword [eax + edi*4]
test edi, edi
js 0x4fd208
mov ebx, dword [esp + 0x10]
mov ecx, dword [esp + 8]
cmp edi, 0x8000000
jb 0x4fd07e
mov eax, edi
and eax, 0x10000000
je 0x4fd78e
mov esi, ebx
jmp 0x4fd13b
cmp esi, dword [esp + 4]
jae 0x4fd13b
mov ebx, dword [ebx + 0x74]
mov ebp, dword [esp + 4]
mov dword [esp + 0x10], ebx
movzx eax, byte [ecx + esi]
mov ecx, dword [esp]
movzx eax, byte [ecx + eax + 0x158]
add eax, edi
mov ecx, dword [ebx + eax*4]
mov eax, esi
add esi, 3
cmp esi, ebp
jae 0x4fd157
cmp ecx, 0x8000000
jae 0x4fd157
mov edi, dword [esp + 8]
mov dword [esp + 0xc], esi
mov esi, eax
mov ebp, dword [esp]
mov ebx, dword [esp + 0x10]
movzx eax, byte [edi + eax + 1]
movzx eax, byte [ebp + eax + 0x158]
add eax, ecx
mov edx, dword [ebx + eax*4]
cmp edx, 0x7ffffff
ja 0x4fd162
movzx eax, byte [edi + esi + 2]
movzx eax, byte [ebp + eax + 0x158]
add eax, edx
mov ecx, dword [ebx + eax*4]
cmp ecx, 0x7ffffff
ja 0x4fd169
movzx eax, byte [edi + esi + 3]
movzx eax, byte [ebp + eax + 0x158]
add eax, ecx
mov edi, dword [ebx + eax*4]
cmp edi, 0x7ffffff
ja 0x4fd174
mov ebp, dword [esp + 4]
mov ecx, dword [esp + 8]
add esi, 4
cmp esi, ebp
jb 0x4fd09a
jmp 0x4fd13f
mov ebp, dword [esp + 4]
mov ebx, dword [esp + 0x1a4]
mov edx, dword [esp]
inc esi
cmp esi, ebp
jb 0x4fd007
jmp 0x4fd553
mov ebp, dword [esp]
mov ebx, eax
mov eax, edi
mov edi, ecx
jmp 0x4fd17a
inc esi
mov eax, ecx
mov edi, edx
jmp 0x4fd170
add esi, 2
mov eax, edx
mov edi, ecx
mov ebx, esi
jmp 0x4fd17a
mov ebx, dword [esp + 0xc]
mov eax, ecx
mov ecx, dword [esp + 8]
test edi, edi
jns 0x4fd069
mov edx, dword [esp + 0x1a4]
cmp dword [edx + 0xb0], 0
je 0x4ff6f2
cmp ebx, dword [esp + 0x1c]
mov dword [edx + 0xb8], ebx
jae 0x4ff69f
movzx esi, byte [ecx + ebx]
mov edx, dword [edx + 0x7c]
mov dword [esp + 0xc], eax
movzx ecx, byte [ebp + esi + 0x158]
add ecx, eax
cmp edx, ecx
jbe 0x4ff56a
mov eax, dword [esp + 0x10]
mov edi, dword [eax + ecx*4]
test edi, edi
jns 0x4fd065
mov ecx, dword [esp + 0x1a4]
mov edx, dword [esp + 0xc]
shl esi, 8
mov dword [esp + 0x2c], ebp
mov dword [esp + 0x30], ecx
lea ecx, [esp + 0x2c]
push esi
call fcn.006560e0
add esp, 4
test eax, eax
jne 0x4ff4ff
mov edi, edx
jmp 0x4fd065
shl ebp, 8
mov dword [esp + 0x2c], esi
mov dword [esp + 0x30], ebx
lea ecx, [esp + 0x2c]
push ebp
call fcn.006560e0
add esp, 4
test eax, eax
jne 0x4ff338
mov edi, edx
jmp 0x4fd061
mov ebp, dword [esp]
test esi, esi
mov eax, dword [ebp + 0x278]
mov dword [esp + 0x20], eax
je 0x4fd510
cmp dword [edi + 0xc], ebx
jbe 0x4fd510
mov eax, dword [ebp + 0x258]
mov edx, dword [ebp + 0x260]
mov ecx, dword [ebp + 0x264]
or edx, dword [ebp + 0x270]
or eax, dword [ebp + 0x268]
or ecx, dword [ebp + 0x274]
or eax, edx
mov edx, dword [ebp + 0x25c]
or edx, dword [ebp + 0x26c]
or edx, ecx
or edx, eax
mov eax, dword [edi + 8]
mov ch, byte [eax + ebx]
movzx eax, ch
je 0x4fd81d
mov cl, ch
lea edx, [ebp + 0x258]
mov dword [esp + 0x28], eax
xor eax, eax
and ch, 7
and cl, 0x78
mov dword [esp + 0xc], edx
mov dword [esp + 0xac], eax
mov dword [esp + 0xa8], eax
mov dword [esp + 0xa4], eax
mov dword [esp + 0x9c], eax
mov dword [esp + 0x98], eax
mov dword [esp + 0x94], eax
mov dword [esp + 0x90], eax
mov dword [esp + 0xa0], 1
shr cl, 3
neg cl
movsx ebp, cl
mov cl, ch
mov ebx, dword [esp + ebp + 0xa8]
mov eax, dword [esp + ebp + 0xac]
shld eax, ebx, cl
shl ebx, cl
not cl
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0x28]
mov edx, dword [esp + ebp + 0xa4]
shr eax, 3
mov edi, edx
and eax, 0xfffffff0
shr edi, 1
shr edi, cl
mov cl, ch
or edi, ebx
mov ebx, dword [esp + ebp + 0xa0]
mov ebp, dword [esp + 0xc]
shld edx, ebx, cl
shl ebx, cl
mov ecx, dword [esp + 0xc]
and edi, dword [ecx + eax + 8]
mov ecx, dword [esp + 0x14]
and ecx, dword [ebp + eax + 0xc]
mov ebp, dword [esp]
mov dword [esp + 0x14], ecx
mov ecx, dword [esp + 0xc]
and edx, dword [ecx + eax + 4]
and ebx, dword [ecx + eax]
mov eax, dword [esp + 0x28]
or edx, dword [esp + 0x14]
or ebx, edi
or edx, ebx
je 0x4fd81d
mov dword [esp + 0x50], eax
mov dword [esp + 0x4c], 4
jmp 0x4fd84c
mov edx, dword [esp + 0x1a8]
lea eax, [esi - 1]
mov dword [esp + 0x10], ecx
mov dword [esp + 8], eax
cmp byte [edx + 0x18], 0
je 0x4fd601
mov eax, dword [esp]
test esi, esi
mov eax, dword [eax + 0x278]
mov ecx, dword [eax + 0x134]
mov dword [esp + 0x6c], eax
mov dword [esp + 0x28], ecx
je 0x4fd54c
mov edi, dword [esp + 0x1a8]
mov eax, dword [esp + 8]
cmp dword [edi + 0xc], eax
jbe 0x4fd54c
mov ebp, dword [esp]
mov eax, dword [ebp + 0x258]
mov edx, dword [ebp + 0x260]
mov ecx, dword [ebp + 0x264]
or edx, dword [ebp + 0x270]
or eax, dword [ebp + 0x268]
or ecx, dword [ebp + 0x274]
or eax, edx
mov edx, dword [ebp + 0x25c]
or edx, dword [ebp + 0x26c]
or edx, ecx
mov ecx, dword [esp + 8]
or edx, eax
mov eax, dword [edi + 8]
mov al, byte [eax + ecx]
mov byte [esp + 0xc], al
je 0x4fde1d
mov cl, byte [esp + 0xc]
xor eax, eax
mov dword [esp + 0x180], 1
mov dword [esp + 0x18c], eax
mov dword [esp + 0x188], eax
mov dword [esp + 0x184], eax
mov dword [esp + 0x17c], eax
mov dword [esp + 0x178], eax
mov dword [esp + 0x174], eax
mov dword [esp + 0x170], eax
mov ch, byte [esp + 0xc]
movzx ebp, cl
and cl, 0x78
shr cl, 3
neg cl
and ch, 7
movsx edx, cl
mov cl, ch
mov edi, dword [esp + edx + 0x188]
mov eax, dword [esp + edx + 0x18c]
mov dword [esp + 0x14], edx
shld eax, edi, cl
shl edi, cl
not cl
mov dword [esp + 0x20], eax
mov eax, dword [esp + edx + 0x184]
mov dword [esp + 0x60], ebp
mov edx, eax
mov ebx, eax
mov eax, ebp
mov ebp, dword [esp]
shr edx, 1
shr eax, 3
shr edx, cl
mov cl, ch
and eax, 0xfffffff0
or edx, edi
mov edi, dword [esp + 0x14]
mov edi, dword [esp + edi + 0x180]
shld ebx, edi, cl
shl edi, cl
mov dword [esp + 0x24], ebx
lea ebx, [ebp + 0x258]
mov dword [esp + 0x14], ebx
mov ecx, dword [esp + 0x14]
mov ebx, dword [esp + 0x14]
and edx, dword [ecx + eax + 8]
mov ecx, dword [esp + 0x20]
and ecx, dword [ebx + eax + 0xc]
mov ebx, dword [esp + 0x24]
mov dword [esp + 0x20], ecx
mov ecx, dword [esp + 0x14]
and ebx, dword [ecx + eax + 4]
and edi, dword [ecx + eax]
or ebx, dword [esp + 0x20]
or edi, edx
or ebx, edi
mov ebx, dword [esp + 0x1a4]
je 0x4fde1d
mov ebx, dword [esp + 0x60]
jmp 0x4fd752
mov bl, 2
jmp 0x4fd825
mov eax, dword [esp + 0x1a8]
mov eax, dword [eax + 0xc]
jmp 0x4fd557
mov eax, dword [esp]
test byte [eax + 0x4d], 1
je 0x4fd840
mov eax, dword [esp + 0x20]
cmp dword [eax + 0x150], edx
jbe 0x4fdcd3
lea eax, [edx + edx*2]
lea ecx, [ecx + eax*2 + 0xc]
jmp 0x4fcf62
mov al, 2
jmp 0x4fde26
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 4]
mov edx, edi
mov dword [esp + 0x1c], eax
cmp ecx, eax
jae 0x4fd5c2
mov eax, dword [esp + 0x1a8]
mov esi, ebx
mov eax, dword [eax + 8]
mov bl, byte [eax + ecx]
mov eax, dword [esp]
mov ecx, edx
and ecx, 0x7ffffff
movzx edi, bl
movzx eax, byte [eax + edi + 0x158]
add ecx, eax
mov eax, dword [esi + 0x7c]
cmp eax, ecx
jbe 0x4ff568
mov eax, dword [esi + 0x74]
mov esi, dword [eax + ecx*4]
test esi, esi
js 0x4ff06a
bt esi, 0x1b
jb 0x4fd7d9
bt esi, 0x1d
jb 0x4fee7a
mov ebx, dword [esp + 0x1a4]
jmp 0x4fd5fa
mov eax, dword [esp]
movzx edi, byte [eax + 0x257]
mov eax, edx
and eax, 0x7ffffff
lea ecx, [edi + eax + 1]
mov eax, dword [ebx + 0x7c]
cmp eax, ecx
jbe 0x4ff6bf
mov eax, dword [ebx + 0x74]
mov esi, dword [eax + ecx*4]
test esi, esi
js 0x4ff098
bt esi, 0x1b
jb 0x4fd803
xor ecx, ecx
jmp 0x4fddd9
mov eax, dword [esp]
test esi, esi
mov eax, dword [eax + 0x278]
mov dword [esp + 0x68], eax
mov eax, dword [eax + 0x134]
mov dword [esp + 0x28], eax
je 0x4fd7d2
mov edi, dword [esp + 0x1a8]
mov eax, dword [esp + 8]
cmp dword [edi + 0xc], eax
jbe 0x4fd7d2
mov ebp, dword [esp]
mov eax, dword [ebp + 0x258]
mov edx, dword [ebp + 0x260]
mov ecx, dword [ebp + 0x264]
or edx, dword [ebp + 0x270]
or eax, dword [ebp + 0x268]
or ecx, dword [ebp + 0x274]
or eax, edx
mov edx, dword [ebp + 0x25c]
or edx, dword [ebp + 0x26c]
or edx, ecx
mov ecx, dword [esp + 8]
or edx, eax
mov eax, dword [edi + 8]
mov al, byte [eax + ecx]
mov byte [esp + 0xc], al
je 0x4fe69a
mov cl, byte [esp + 0xc]
movzx eax, cl
and cl, 0x78
mov dword [esp + 0x20], eax
xor eax, eax
shr cl, 3
mov dword [esp + 0x120], 1
mov dword [esp + 0x12c], eax
mov dword [esp + 0x128], eax
mov dword [esp + 0x124], eax
mov dword [esp + 0x11c], eax
mov dword [esp + 0x118], eax
mov dword [esp + 0x114], eax
mov dword [esp + 0x110], eax
neg cl
mov ch, byte [esp + 0xc]
movsx ebp, cl
mov edi, dword [esp + ebp + 0x128]
mov eax, dword [esp + ebp + 0x12c]
and ch, 7
mov cl, ch
shld eax, edi, cl
shl edi, cl
not cl
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0x20]
mov edx, dword [esp + ebp + 0x124]
shr eax, 3
mov ebx, edx
and eax, 0xfffffff0
shr ebx, 1
shr ebx, cl
mov cl, ch
or ebx, edi
mov edi, dword [esp + ebp + 0x120]
mov ebp, dword [esp]
shld edx, edi, cl
shl edi, cl
mov ecx, dword [esp + 0x14]
add ebp, 0x258
and ebx, dword [ebp + eax + 8]
and edi, dword [ebp + eax]
and edx, dword [ebp + eax + 4]
and ecx, dword [ebp + eax + 0xc]
or edi, ebx
mov ebx, dword [esp + 0x1a4]
or edx, ecx
or edx, edi
je 0x4fe69a
mov ebx, dword [esp + 0x20]
mov eax, 4
lea edx, [eax - 3]
mov ecx, 2
cmp edx, 2
cmovb ecx, edx
test ecx, ecx
je 0x4ff1d5
cmp ecx, 1
jne 0x4fef44
test esi, esi
je 0x4ff536
mov eax, dword [esp + 8]
lea ecx, [esp + 0x2c]
mov byte [ecx + 1], bl
jmp 0x4fee85
bt edi, 0x1b
jb 0x4fdce0
bt edi, 0x1e
jb 0x4ff04d
bt edi, 0x1d
jae 0x4ff7a1
mov ecx, dword [esp + 0x1a4]
mov edx, ebx
call fcn.004fcd35
mov edx, dword [esp + 0x1c]
cmp ebx, edx
jae 0x4ff6e3
mov eax, dword [esp + 8]
mov al, byte [eax + ebx]
jmp 0x4fe58b
mov al, 2
jmp 0x4fe6a6
mov eax, dword [esp + 0x20]
cmp dword [eax + 0x150], 1
jne 0x4fdd70
mov edx, dword [esp + 4]
mov ebx, dword [esp + 0x1a4]
xor ecx, ecx
xor eax, eax
inc ecx
mov dword [esp + 0x1c], edx
jmp 0x4fddd9
mov eax, dword [esp + 0x20]
cmp dword [eax + 0x150], 1
jne 0x4fdda0
xor ecx, ecx
xor eax, eax
jmp 0x4fddd8
mov bl, byte [ebp + eax + 0x58]
mov edx, dword [esp + 0x1c]
mov edi, dword [esp + 8]
movzx ecx, bl
test edi, edi
je 0x4fd8a5
cmp edi, 1
jne 0x4fd83a
add ecx, 6
jmp 0x4fd8a5
test byte [ebp + 0x4d], 1
jne 0x4fd88e
mov dword [esp + 0x50], edx
mov dword [esp + 0x4c], 2
mov eax, dword [esp + 0x4c]
mov ecx, 2
lea edx, [eax - 3]
cmp edx, 2
cmovb ecx, edx
test ecx, ecx
je 0x4ff1d5
mov edx, dword [esp + 0x50]
mov edi, dword [esp + 0x10]
cmp ecx, 1
jne 0x4ff5db
test esi, esi
je 0x4ff536
lea ecx, [esp + 0x2c]
mov byte [ecx + 1], dl
mov dword [ecx + 4], edi
jmp 0x4fee88
mov eax, dword [esp + 0x20]
cmp dword [eax + 0x150], edx
jbe 0x4fe59a
lea eax, [edx + edx*2]
lea ecx, [ecx + eax*2 + 0xc]
mov eax, dword [esp + 0x1a4]
mov edx, dword [eax + 0x88]
cmp edx, ecx
jbe 0x4ff669
mov eax, dword [eax + 0x80]
mov eax, dword [eax + ecx*4]
mov edx, dword [esp + 4]
test eax, eax
js 0x4fef53
mov dword [esp + 0x50], eax
mov dword [esp + 0x4c], 5
mov ebx, dword [esp + 0x1a4]
cmp dword [ebx + 0xb0], 0
je 0x4fd909
mov eax, dword [ebx + 0xb8]
mov ecx, dword [ebx + 0xb4]
mov edx, eax
sub edx, ecx
neg edx
sub eax, ecx
cmovb eax, edx
mov edx, dword [esp + 4]
add dword [ebx + 0x70], eax
mov edi, dword [esp + 0x50]
mov eax, dword [esp + 0x1a8]
cmp esi, edx
mov dword [ebx + 0xb0], 1
mov dword [ebx + 0xb4], esi
mov dword [ebx + 0xb8], esi
jae 0x4fdbe6
mov ebp, dword [eax + 8]
mov eax, dword [eax + 0xc]
mov dword [esp + 0x14], 0
mov dword [esp + 0x1c], eax
mov eax, dword [esp]
mov dword [esp + 0x10], ebp
mov eax, dword [eax + 0x27c]
and eax, 0x1f
mov dword [esp + 0x6c], eax
cmp edi, 0x7ffffff
jbe 0x4fd9b9
cmp dword [ebx + 0xb0], 0
je 0x4ff6f2
cmp esi, dword [esp + 0x1c]
mov dword [ebx + 0xb8], esi
jae 0x4ff490
movzx eax, byte [ebp + esi]
mov ecx, dword [esp]
movzx edx, byte [ecx + eax + 0x158]
mov ecx, edi
and ecx, 0x7ffffff
add ecx, edx
mov edx, dword [ebx + 0x7c]
cmp edx, ecx
jbe 0x4ff56a
mov edx, dword [ebx + 0x74]
mov ecx, dword [edx + ecx*4]
test ecx, ecx
js 0x4fdb21
mov ebx, esi
mov edi, ecx
jmp 0x4fdb4a
cmp esi, edx
jae 0x4fda67
mov eax, dword [ebx + 0x74]
mov dword [esp + 8], eax
movzx ecx, byte [ebp + esi]
mov ebx, dword [esp]
mov eax, dword [esp + 8]
movzx ecx, byte [ebx + ecx + 0x158]
add ecx, edi
mov ecx, dword [eax + ecx*4]
lea eax, [esi + 3]
cmp eax, edx
jae 0x4fda6e
cmp ecx, 0x8000000
jae 0x4fda6e
movzx edx, byte [ebp + esi + 1]
mov ebx, ebp
mov ebp, dword [esp]
mov edi, dword [esp + 8]
mov dword [esp + 0xc], eax
movzx edx, byte [ebp + edx + 0x158]
add edx, ecx
mov eax, dword [edi + edx*4]
mov edx, edi
mov edi, eax
cmp eax, 0x7ffffff
ja 0x4fda72
movzx ecx, byte [ebx + esi + 2]
movzx ecx, byte [ebp + ecx + 0x158]
add ecx, edi
mov ecx, dword [edx + ecx*4]
cmp ecx, 0x7ffffff
ja 0x4fda79
mov edi, edx
movzx edx, byte [ebx + esi + 3]
movzx edx, byte [ebp + edx + 0x158]
add edx, ecx
mov edi, dword [edi + edx*4]
cmp edi, 0x7ffffff
ja 0x4fda86
mov edx, dword [esp + 4]
mov ebp, dword [esp + 0x10]
add esi, 4
cmp esi, edx
jb 0x4fd9c8
mov ebx, esi
jmp 0x4fdbce
mov edx, edi
jmp 0x4fda80
inc esi
mov edx, ecx
mov ebx, esi
jmp 0x4fda8c
add esi, 2
mov edx, edi
mov eax, edi
mov ebx, esi
mov edi, ecx
jmp 0x4fda8c
mov ebx, dword [esp + 0xc]
mov edx, ecx
test edi, edi
js 0x4fda99
mov ebp, dword [esp + 0x10]
jmp 0x4fdb4a
mov esi, dword [esp + 0x1a4]
mov ebp, dword [esp + 0x10]
cmp dword [esi + 0xb0], 0
je 0x4ff6f2
mov edi, dword [esp + 0x1c]
mov dword [esi + 0xb8], ebx
cmp ebx, edi
jae 0x4ff6b2
movzx eax, byte [ebp + ebx]
mov ecx, dword [esp]
mov esi, dword [esi + 0x7c]
movzx ecx, byte [ecx + eax + 0x158]
mov dword [esp + 0xc], eax
add ecx, edx
cmp esi, ecx
jbe 0x4ff6b8
mov eax, dword [esp + 8]
mov edi, dword [eax + ecx*4]
test edi, edi
jns 0x4fdb4a
mov eax, dword [esp]
mov esi, dword [esp + 0xc]
lea ecx, [esp + 0x2c]
mov dword [esp + 0x2c], eax
mov eax, dword [esp + 0x1a4]
shl esi, 8
mov dword [esp + 0x30], eax
push esi
call fcn.006560e0
add esp, 4
test eax, eax
jne 0x4ff4ff
mov edi, edx
jmp 0x4fdb4a
mov ecx, dword [esp]
shl eax, 8
mov edx, edi
mov dword [esp + 0x2c], ecx
mov dword [esp + 0x30], ebx
lea ecx, [esp + 0x2c]
push eax
call fcn.006560e0
add esp, 4
test eax, eax
jne 0x4ff1d5
mov edi, edx
mov ebx, esi
mov edx, dword [esp + 4]
cmp edi, 0x8000000
jb 0x4fdbce
mov eax, edi
and eax, 0x10000000
jne 0x4fdbce
bt edi, 0x1b
jae 0x4fe559
mov eax, dword [esp + 0x20]
cmp dword [eax + 0x150], 1
jne 0x4fdb82
xor eax, eax
mov dword [esp + 0x28], 0
jmp 0x4fdbc5
mov eax, edi
mov ecx, dword [esp + 0x6c]
and eax, 0x7ffffff
shr eax, cl
mov ecx, dword [esp + 0x1a4]
mov edx, dword [ecx + 0x94]
cmp edx, eax
jbe 0x4ff670
mov edx, dword [ecx + 0x8c]
mov ecx, dword [edx + eax*8]
mov edx, dword [edx + eax*8 + 4]
push 0
call fcn.004fccd8
add esp, 4
mov edx, dword [esp + 4]
mov dword [esp + 0x28], eax
xor eax, eax
mov dword [esp + 0x24], ebx
inc eax
mov dword [esp + 0x14], eax
inc ebx
cmp ebx, edx
mov esi, ebx
mov ebx, dword [esp + 0x1a4]
jb 0x4fd958
mov eax, dword [esp + 0x1c]
jmp 0x4fdbf1
mov eax, dword [eax + 0xc]
mov dword [esp + 0x14], 0
mov ebp, dword [esp]
cmp edx, eax
jae 0x4fdc4e
mov eax, dword [esp + 0x1a8]
mov esi, ebx
mov ecx, edi
and ecx, 0x7ffffff
mov eax, dword [eax + 8]
mov bl, byte [eax + edx]
movzx eax, bl
movzx edx, byte [ebp + eax + 0x158]
add ecx, edx
mov edx, dword [esi + 0x7c]
cmp edx, ecx
jbe 0x4ff56a
mov edx, dword [esi + 0x74]
mov edx, dword [edx + ecx*4]
test edx, edx
js 0x4ff187
bt edx, 0x1b
jb 0x4fdcaa
mov edi, dword [esp + 0x14]
bt edx, 0x1d
jae 0x4fe613
jmp 0x4fee7a
mov esi, eax
movzx eax, byte [ebp + 0x257]
mov edx, dword [ebx + 0x7c]
mov ecx, edi
and ecx, 0x7ffffff
lea ecx, [eax + ecx + 1]
cmp edx, ecx
jbe 0x4ff6c1
mov edx, dword [ebx + 0x74]
mov edx, dword [edx + ecx*4]
test edx, edx
js 0x4ff1b2
mov edi, dword [esp + 0x14]
bt edx, 0x1b
jae 0x4fe613
mov eax, dword [esp + 0x20]
cmp dword [eax + 0x150], 1
jne 0x4fe5a6
xor edi, edi
mov dword [esp + 0x28], 0
jmp 0x4fe60e
mov eax, dword [esp + 0x20]
cmp dword [eax + 0x150], 1
jne 0x4fe5ca
mov eax, dword [esp + 4]
xor edi, edi
mov dword [esp + 0x28], 0
inc edi
mov dword [esp + 0x24], eax
jmp 0x4fe613
mov ecx, dword [esp]
call fcn.004faa8e
jmp 0x4fcf80
mov ecx, dword [esp + 0x20]
xor eax, eax
cmp dword [ecx + 0x150], 1
je 0x4fdd27
and edi, 0x7ffffff
mov ecx, dword [esp + 0x14]
shr edi, cl
mov ecx, dword [esp + 0x1a4]
mov eax, dword [ecx + 0x94]
cmp eax, edi
jbe 0x4ff6ec
mov eax, dword [ecx + 0x8c]
mov ecx, dword [eax + edi*8]
mov edx, dword [eax + edi*8 + 4]
push 0
call fcn.004fccd8
add esp, 4
mov edi, dword [esp + 0x1a4]
mov ecx, dword [edi + 0xb4]
cmp dword [edi + 0xb0], 0
mov dword [edi + 0xb0], 0
je 0x4ff708
mov edx, ebx
mov esi, ebx
sub edx, ecx
neg edx
sub esi, ecx
mov ecx, dword [esp + 0x18]
cmovb esi, edx
add dword [edi + 0x70], esi
mov dword [ecx], 1
mov dword [ecx + 4], eax
mov dword [ecx + 8], ebx
jmp 0x4ff5fa
mov eax, dword [esp]
mov ebx, dword [esp + 0x1a4]
and esi, 0x7ffffff
mov cl, byte [eax + 0x27c]
mov edx, dword [ebx + 0x94]
shr esi, cl
cmp edx, esi
jbe 0x4ff6cc
mov eax, dword [esp + 4]
mov dword [esp + 0x1c], eax
jmp 0x4fddbf
mov eax, dword [esp]
mov edx, dword [ebx + 0x94]
and esi, 0x7ffffff
mov cl, byte [eax + 0x27c]
shr esi, cl
cmp edx, esi
jbe 0x4ff6cc
mov eax, dword [ebx + 0x8c]
mov ecx, dword [eax + esi*8]
mov edx, dword [eax + esi*8 + 4]
push 0
call fcn.004fccd8
add esp, 4
xor ecx, ecx
inc ecx
mov edx, dword [ebx + 0xb4]
cmp dword [ebx + 0xb0], 0
mov dword [ebx + 0xb0], 0
je 0x4ff708
mov edi, dword [esp + 4]
mov esi, edi
sub esi, edx
neg esi
sub edi, edx
cmovb edi, esi
mov esi, dword [esp + 0x18]
add dword [ebx + 0x70], edi
mov dword [esi], ecx
mov ecx, dword [esp + 0x1c]
mov dword [esi + 4], eax
mov dword [esi + 8], ecx
jmp 0x4ff5fa
movzx eax, byte [esp + 0xc]
mov al, byte [ebp + eax + 0x58]
mov edx, dword [ebx + 0x88]
movzx eax, al
cmp edx, eax
jbe 0x4ff667
mov ecx, dword [ebx + 0x80]
mov ecx, dword [ecx + eax*4]
test ecx, ecx
js 0x4fefdd
mov dword [esp + 0x24], ecx
mov ecx, dword [esp + 0x1a8]
mov eax, dword [ecx + 8]
mov ebp, dword [ecx + 0xc]
mov ecx, dword [esp + 0x10]
mov edi, dword [ecx]
mov ecx, dword [ecx + 4]
mov edx, dword [ecx + 8]
mov ecx, dword [ecx + 0x20]
dec edx
and edx, 0xfffffff8
lea edx, [edx + edi + 8]
lea edi, [esp + 0x80]
push dword [esp + 4]
push esi
mov dword [esp + 0x14], ebp
push ebp
mov dword [esp + 0x14], eax
push eax
mov dword [esp + 0x24], edx
push edx
push edi
mov dword [esp + 0x38], ecx
call ecx
add esp, 0x18
cmp dword [edi], 0
je 0x4ff0d5
cmp dword [esp + 0x28], 0
mov esi, dword [esp + 0x84]
mov ebp, dword [esp]
mov ecx, dword [esp + 0x24]
je 0x4fe04c
mov eax, dword [esp + 4]
mov ecx, dword [esp + 0xc]
mov dword [esp + 0x74], esi
cmp ecx, eax
mov dword [esp + 0x78], eax
jb 0x4ff74a
inc eax
cmp eax, esi
jb 0x4ff74a
mov edi, esi
sub edi, 1
jb 0x4fe028
cmp ecx, edi
jbe 0x4fe028
mov eax, dword [ebp + 0x258]
mov edx, dword [ebp + 0x260]
mov ecx, dword [ebp + 0x264]
or edx, dword [ebp + 0x270]
or eax, dword [ebp + 0x268]
or ecx, dword [ebp + 0x274]
or eax, edx
mov edx, dword [ebp + 0x25c]
or edx, dword [ebp + 0x26c]
or edx, ecx
or edx, eax
mov eax, dword [esp + 8]
mov al, byte [eax + edi]
je 0x4ff010
mov ecx, eax
xor edx, edx
mov dword [esp + 0x160], 1
movzx ebx, al
and cl, 0x78
mov dword [esp + 0x16c], edx
mov dword [esp + 0x168], edx
mov dword [esp + 0x164], edx
mov dword [esp + 0x15c], edx
mov dword [esp + 0x158], edx
mov dword [esp + 0x154], edx
mov dword [esp + 0x150], edx
mov byte [esp + 0x10], al
mov dword [esp + 0x24], edi
shr cl, 3
mov al, byte [esp + 0x10]
neg cl
movsx ecx, cl
mov edi, dword [esp + ecx + 0x168]
mov edx, dword [esp + ecx + 0x16c]
mov ebp, ecx
mov dword [esp + 0x5c], ecx
and al, 7
mov ecx, eax
shld edx, edi, cl
shl edi, cl
not cl
mov dword [esp + 0x60], edx
mov edx, dword [esp + ebp + 0x164]
mov dword [esp + 0x68], ebx
shr ebx, 3
and ebx, 0xfffffff0
mov ebp, edx
shr ebp, 1
shr ebp, cl
mov ecx, dword [esp + 0x5c]
or ebp, edi
mov edi, dword [esp + ecx + 0x160]
mov ecx, eax
shld edx, edi, cl
mov ecx, dword [esp]
add ecx, 0x258
mov dword [esp + 0x5c], ecx
mov ecx, eax
mov eax, dword [esp + 0x5c]
shl edi, cl
mov ecx, dword [esp + 0x60]
and ebp, dword [eax + ebx + 8]
and edi, dword [eax + ebx]
and ecx, dword [eax + ebx + 0xc]
and edx, dword [eax + ebx + 4]
mov al, byte [esp + 0x10]
mov ebx, dword [esp + 0x1a4]
or edi, ebp
or edx, ecx
mov ebp, dword [esp]
or edx, edi
mov edi, dword [esp + 0x24]
je 0x4ff010
mov ebx, dword [esp + 0x68]
mov eax, 4
jmp 0x4ff457
mov al, 2
mov edx, dword [ebx + 0x88]
movzx eax, al
cmp edx, eax
jbe 0x4ff667
mov ecx, dword [ebx + 0x80]
mov ecx, dword [ecx + eax*4]
test ecx, ecx
js 0x4ff348
cmp dword [ebx + 0xb0], 0
je 0x4fe073
mov eax, dword [ebx + 0xb8]
mov edi, ecx
mov ecx, dword [ebx + 0xb4]
mov edx, eax
sub edx, ecx
neg edx
sub eax, ecx
mov ecx, edi
cmovb eax, edx
add dword [ebx + 0x70], eax
mov edx, dword [esp + 4]
mov dword [ebx + 0xb0], 1
mov dword [ebx + 0xb4], esi
mov dword [ebx + 0xb8], esi
cmp esi, edx
jae 0x4fe4c2
lea eax, [edx + 1]
mov dword [esp + 0x60], eax
lea eax, [ebp + 0x258]
mov dword [esp + 0x24], eax
mov eax, dword [ebp + 0x27c]
and eax, 0x1f
mov dword [esp + 0x44], eax
mov eax, dword [esp + 8]
cmp ecx, 0x7ffffff
jbe 0x4fe116
cmp dword [ebx + 0xb0], 0
je 0x4ff6f2
cmp esi, dword [esp + 0xc]
mov dword [ebx + 0xb8], esi
jae 0x4ff679
movzx eax, byte [eax + esi]
mov edi, ecx
and ecx, 0x7ffffff
movzx edx, byte [ebp + eax + 0x158]
add ecx, edx
mov edx, dword [ebx + 0x7c]
cmp edx, ecx
jbe 0x4ff56a
mov edx, dword [ebx + 0x74]
mov ecx, dword [edx + ecx*4]
test ecx, ecx
js 0x4fe438
mov ebx, esi
mov edx, dword [esp + 4]
jmp 0x4fe244
cmp esi, edx
jae 0x4fe3eb
mov edi, dword [ebx + 0x74]
mov dword [esp + 0x10], edi
mov ebx, edx
mov edx, ecx
movzx eax, byte [eax + esi]
mov ecx, dword [esp]
movzx eax, byte [ecx + eax + 0x158]
mov ecx, esi
add eax, edx
mov eax, dword [edi + eax*4]
lea edi, [esi + 3]
cmp edi, ebx
jae 0x4fe1ca
cmp eax, 0x8000000
jae 0x4fe1ca
mov edx, dword [esp + 8]
mov esi, ecx
mov ebx, dword [esp]
mov ebp, dword [esp + 0x10]
movzx ecx, byte [edx + ecx + 1]
movzx ecx, byte [ebx + ecx + 0x158]
add ecx, eax
mov ecx, dword [ebp + ecx*4]
cmp ecx, 0x7ffffff
ja 0x4fe1ce
movzx eax, byte [edx + esi + 2]
movzx eax, byte [ebx + eax + 0x158]
add eax, ecx
mov eax, dword [ebp + eax*4]
cmp eax, 0x7ffffff
ja 0x4fe1d5
movzx ecx, byte [edx + esi + 3]
movzx ecx, byte [ebx + ecx + 0x158]
add ecx, eax
mov ecx, dword [ebp + ecx*4]
cmp ecx, 0x7ffffff
ja 0x4fe1e0
mov edx, dword [esp + 4]
mov eax, dword [esp + 8]
mov edi, dword [esp + 0x10]
add esi, 4
cmp esi, edx
jb 0x4fe125
jmp 0x4fe3eb
mov ebx, ecx
jmp 0x4fe1dc
inc esi
mov edx, eax
mov ebx, esi
jmp 0x4fe1e4
add esi, 2
mov edx, ecx
mov ebx, esi
mov ecx, eax
jmp 0x4fe1e4
mov edx, eax
mov ebx, edi
mov edi, dword [esp + 0x10]
test ecx, ecx
jns 0x4fe23d
mov eax, dword [esp + 0x1a4]
mov ecx, dword [esp + 8]
cmp dword [eax + 0xb0], 0
je 0x4ff6f2
mov esi, dword [esp + 0xc]
mov dword [eax + 0xb8], ebx
cmp ebx, esi
jae 0x4ff6d0
movzx esi, byte [ecx + ebx]
mov ecx, dword [esp]
mov eax, dword [eax + 0x7c]
movzx ecx, byte [ecx + esi + 0x158]
add ecx, edx
cmp eax, ecx
jbe 0x4ff568
mov ecx, dword [edi + ecx*4]
test ecx, ecx
js 0x4fe491
mov edx, dword [esp + 4]
mov ebp, dword [esp]
mov eax, dword [esp + 8]
cmp ecx, 0x7ffffff
jbe 0x4fe3db
bt ecx, 0x1c
jae 0x4ff01c
mov edi, ecx
push edx
push ebx
push dword [esp + 0x14]
push eax
push dword [esp + 0x24]
lea eax, [esp + 0x94]
push eax
call dword [esp + 0x38]
add esp, 0x18
cmp dword [esp + 0x80], 0
je 0x4ff0c5
mov esi, dword [esp + 0x84]
cmp esi, ebx
jbe 0x4fe3df
cmp dword [esp + 0x28], 0
mov ebx, dword [esp + 0x1a4]
mov edx, dword [esp + 4]
mov ecx, edi
je 0x4fe427
mov ecx, dword [esp + 0xc]
mov dword [esp + 0x74], esi
mov dword [esp + 0x78], edx
cmp ecx, edx
jb 0x4ff719
cmp dword [esp + 0x60], esi
jb 0x4ff719
mov edi, dword [esp + 0x24]
lea eax, [esi - 1]
cmp ecx, eax
mov dword [esp + 0x10], eax
jbe 0x4fe403
mov eax, dword [edi]
mov edx, dword [edi + 8]
mov ecx, dword [edi + 0xc]
or edx, dword [edi + 0x18]
or eax, dword [edi + 0x10]
or ecx, dword [edi + 0x1c]
or eax, edx
mov edx, dword [edi + 4]
or edx, dword [edi + 0x14]
or edx, ecx
mov ecx, dword [esp + 0x10]
or edx, eax
mov eax, dword [esp + 8]
mov ch, byte [eax + ecx]
movzx eax, ch
je 0x4fe3d5
mov dword [esp + 0x5c], eax
mov al, ch
xor edx, edx
mov dword [esp + 0x140], 1
and ch, 7
and al, 0x78
mov dword [esp + 0x14c], edx
mov dword [esp + 0x148], edx
mov dword [esp + 0x144], edx
mov dword [esp + 0x13c], edx
mov dword [esp + 0x138], edx
mov dword [esp + 0x134], edx
mov dword [esp + 0x130], edx
mov cl, ch
shr al, 3
neg al
movsx edi, al
mov edx, dword [esp + edi + 0x148]
mov eax, dword [esp + edi + 0x14c]
shld eax, edx, cl
shl edx, cl
not cl
mov dword [esp + 0x68], eax
mov eax, dword [esp + 0x5c]
mov ebx, dword [esp + edi + 0x144]
shr eax, 3
mov ebp, ebx
and eax, 0xfffffff0
shr ebp, 1
shr ebp, cl
mov cl, ch
or ebp, edx
mov edx, dword [esp + edi + 0x140]
mov edi, dword [esp + 0x24]
shld ebx, edx, cl
shl edx, cl
mov ecx, dword [esp + 0x68]
and ebp, dword [edi + eax + 8]
and edx, dword [edi + eax]
and ebx, dword [edi + eax + 4]
and ecx, dword [edi + eax + 0xc]
mov eax, dword [esp + 0x5c]
or edx, ebp
mov ebp, dword [esp]
or ebx, ecx
or ebx, edx
mov ebx, dword [esp + 0x1a4]
jne 0x4ff574
mov al, byte [ebp + eax + 0x58]
jmp 0x4fe405
mov esi, ebx
jmp 0x4fe3eb
mov edx, dword [esp + 4]
mov eax, dword [esp + 8]
mov esi, ebx
mov ecx, edi
mov ebx, dword [esp + 0x1a4]
mov ebp, dword [esp]
inc esi
cmp esi, edx
jb 0x4fe0b7
jmp 0x4fe4c6
mov al, 2
mov edx, dword [ebx + 0x88]
movzx eax, al
cmp edx, eax
jbe 0x4ff667
mov ecx, dword [ebx + 0x80]
mov ecx, dword [ecx + eax*4]
test ecx, ecx
js 0x4fe461
mov edx, dword [esp + 4]
mov eax, dword [esp + 8]
cmp esi, edx
jb 0x4fe0b7
jmp 0x4fe4c6
shl eax, 8
mov edx, edi
mov dword [esp + 0x2c], ebp
mov dword [esp + 0x30], ebx
lea ecx, [esp + 0x2c]
push eax
call fcn.006560e0
add esp, 4
test eax, eax
jne 0x4ff1d5
mov ecx, edx
jmp 0x4fe10b
mov dword [esp + 0x2c], ebp
mov dword [esp + 0x30], ebx
lea ecx, [esp + 0x4c]
lea edx, [esp + 0x2c]
push eax
push dword [esp + 0x20]
push 0
call fcn.00656fb8
add esp, 0xc
cmp dword [esp + 0x4c], 5
jne 0x4ff68e
mov ecx, dword [esp + 0x50]
jmp 0x4fe423
mov ebp, dword [esp]
mov eax, dword [esp + 0x1a4]
shl esi, 8
lea ecx, [esp + 0x2c]
mov dword [esp + 0x2c], ebp
mov dword [esp + 0x30], eax
push esi
call fcn.006560e0
add esp, 4
test eax, eax
jne 0x4ff4ff
mov ecx, edx
jmp 0x4fe10d
mov eax, dword [esp + 8]
cmp edx, dword [esp + 0xc]
jae 0x4fe51c
mov esi, ebx
mov bl, byte [eax + edx]
mov edi, ecx
and ecx, 0x7ffffff
movzx eax, bl
movzx edx, byte [ebp + eax + 0x158]
add ecx, edx
mov edx, dword [esi + 0x7c]
cmp edx, ecx
jbe 0x4ff56a
mov edx, dword [esi + 0x74]
mov edx, dword [edx + ecx*4]
test edx, edx
js 0x4ff37c
bt edx, 0x1b
jb 0x4feeeb
bt edx, 0x1d
jb 0x4fee7a
mov ebx, dword [esp + 0x1a4]
jmp 0x4fe552
movzx eax, byte [ebp + 0x257]
mov edx, dword [ebx + 0x7c]
mov esi, ecx
and ecx, 0x7ffffff
lea ecx, [eax + ecx + 1]
cmp edx, ecx
jbe 0x4ff6c1
mov edx, dword [ebx + 0x74]
mov edx, dword [edx + ecx*4]
test edx, edx
js 0x4ff3a7
bt edx, 0x1b
jb 0x4fef09
xor ecx, ecx
jmp 0x4ff145
bt edi, 0x1e
jb 0x4fef27
bt edi, 0x1d
jae 0x4ff7a1
mov ecx, dword [esp + 0x1a4]
mov edx, ebx
call fcn.004fcd35
mov edx, dword [esp + 0x1c]
cmp ebx, edx
jae 0x4ff6e3
mov al, byte [ebp + ebx]
lea ecx, [esp + 0x2c]
mov byte [ecx + 1], al
mov dword [ecx + 4], ebx
jmp 0x4fee88
mov ecx, ebp
call fcn.004faa8e
jmp 0x4fd8c3
mov cl, byte [ebp + 0x27c]
and edx, 0x7ffffff
shr edx, cl
mov ecx, dword [esp + 0x1a4]
mov eax, dword [ecx + 0x94]
cmp eax, edx
ja 0x4fe5f1
jmp 0x4ff6c8
mov cl, byte [ebp + 0x27c]
and edx, 0x7ffffff
shr edx, cl
mov ecx, dword [esp + 0x1a4]
mov eax, dword [ecx + 0x94]
cmp eax, edx
jbe 0x4ff6c8
mov esi, dword [esp + 4]
mov eax, dword [ecx + 0x8c]
mov ecx, dword [eax + edx*8]
mov edx, dword [eax + edx*8 + 4]
push 0
call fcn.004fccd8
add esp, 4
xor edi, edi
mov dword [esp + 0x28], eax
inc edi
mov dword [esp + 0x24], esi
mov edx, dword [esp + 0x1a4]
mov eax, dword [edx + 0xb4]
cmp dword [edx + 0xb0], 0
mov dword [edx + 0xb0], 0
je 0x4ff708
mov esi, dword [esp + 4]
mov ecx, esi
sub ecx, eax
neg ecx
sub esi, eax
mov eax, dword [esp + 0x18]
cmovb esi, ecx
add dword [edx + 0x70], esi
mov dword [eax], edi
mov ecx, dword [esp + 0x28]
mov edx, dword [esp + 0x24]
mov dword [eax + 4], ecx
mov dword [eax + 8], edx
jmp 0x4ff5fa
mov eax, dword [esp]
mov ecx, dword [esp + 0x1a4]
movzx ebp, bl
lea edx, [esp + 0x2c]
lea ebx, [esp + 0x4c]
mov dword [edx], eax
mov dword [edx + 4], ecx
mov ecx, ebx
push ebp
push dword [esp + 0x20]
push edi
call fcn.00656fb8
add esp, 0xc
cmp dword [ebx], 5
je 0x4fcf94
jmp 0x4fd84c
movzx eax, byte [esp + 0xc]
mov ecx, dword [esp]
mov al, byte [ecx + eax + 0x58]
mov edx, dword [ebx + 0x88]
movzx eax, al
cmp edx, eax
jbe 0x4ff667
mov ecx, dword [ebx + 0x80]
mov edi, dword [ecx + eax*4]
test edi, edi
js 0x4ff1e4
mov eax, dword [esp + 0x1a8]
lea ebp, [esp + 0x80]
mov ecx, dword [eax + 8]
mov ebx, dword [eax + 0xc]
mov dword [esp + 8], 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]
push dword [esp + 4]
push esi
mov dword [esp + 0x1c], ebx
push ebx
mov ebx, dword [esp + 0x14]
push ebx
mov dword [esp + 0x7c], eax
push eax
push ebp
mov dword [esp + 0x3c], ecx
call ecx
add esp, 0x18
cmp dword [ebp], 0
je 0x4ff0d5
cmp dword [esp + 0x28], 0
mov edx, dword [esp + 0x84]
mov ebp, dword [esp]
mov ecx, edi
je 0x4fe8d1
mov eax, dword [esp + 4]
mov ecx, dword [esp + 0x14]
mov dword [esp + 0x74], edx
cmp ecx, eax
mov dword [esp + 0x78], eax
jb 0x4ff74a
inc eax
cmp eax, edx
jb 0x4ff74a
mov edi, edx
mov dword [esp + 0x10], edx
sub edi, 1
jb 0x4fe8a2
cmp ecx, edi
jbe 0x4fe8a2
mov ecx, dword [ebp + 0x264]
mov eax, dword [ebp + 0x258]
mov edx, dword [ebp + 0x260]
mov esi, dword [ebp + 0x25c]
or edx, dword [ebp + 0x270]
or eax, dword [ebp + 0x268]
or ecx, dword [ebp + 0x274]
or esi, dword [ebp + 0x26c]
or eax, edx
or esi, ecx
or esi, eax
mov al, byte [ebx + edi]
je 0x4ff220
movzx ecx, al
xor edx, edx
mov dword [esp + 0x20], ecx
mov ecx, eax
mov dword [esp + 0x10c], edx
mov dword [esp + 0x108], edx
mov dword [esp + 0x104], edx
mov dword [esp + 0xfc], edx
mov dword [esp + 0xf8], edx
mov dword [esp + 0xf4], edx
mov dword [esp + 0xf0], edx
mov dword [esp + 0x100], 1
mov byte [esp + 0xc], al
and cl, 0x78
mov al, byte [esp + 0xc]
shr cl, 3
neg cl
movsx ebp, cl
mov esi, dword [esp + ebp + 0x108]
mov edx, dword [esp + ebp + 0x10c]
and al, 7
mov dword [esp + 0x44], ebp
mov ecx, eax
shld edx, esi, cl
shl esi, cl
not cl
mov dword [esp + 0x5c], edx
mov edx, dword [esp + ebp + 0x104]
mov dword [esp + 0x60], edi
mov ebp, dword [esp + 0x20]
mov edi, edx
shr ebp, 3
shr edi, 1
and ebp, 0xfffffff0
shr edi, cl
mov ecx, dword [esp + 0x44]
or edi, esi
mov esi, dword [esp + ecx + 0x100]
mov ecx, eax
shld edx, esi, cl
mov ecx, dword [esp]
add ecx, 0x258
mov dword [esp + 0x44], ecx
mov ecx, eax
mov eax, dword [esp + 0x44]
shl esi, cl
mov ecx, dword [esp + 0x5c]
and edi, dword [eax + ebp + 8]
and esi, dword [eax + ebp]
and ecx, dword [eax + ebp + 0xc]
and edx, dword [eax + ebp + 4]
mov al, byte [esp + 0xc]
mov ebp, dword [esp]
or esi, edi
mov edi, dword [esp + 0x60]
or edx, ecx
or edx, esi
je 0x4ff220
mov ebx, dword [esp + 0x20]
mov eax, 4
jmp 0x4ff513
mov al, 2
mov ecx, dword [esp + 0x1a4]
movzx eax, al
mov edx, dword [ecx + 0x88]
cmp edx, eax
jbe 0x4ff667
mov ecx, dword [ecx + 0x80]
mov edx, dword [esp + 0x10]
mov ecx, dword [ecx + eax*4]
test ecx, ecx
js 0x4ff410
mov esi, dword [esp + 0x1a4]
cmp dword [esi + 0xb0], 0
je 0x4fe907
mov eax, dword [esi + 0xb8]
mov ebx, ebp
mov ebp, ecx
mov ecx, dword [esi + 0xb4]
mov edi, edx
mov edx, eax
sub edx, ecx
neg edx
sub eax, ecx
mov ecx, ebp
mov ebp, ebx
cmovb eax, edx
mov edx, edi
add dword [esi + 0x70], eax
mov dword [esi + 0xb0], 1
mov dword [esi + 0xb4], edx
mov dword [esi + 0xb8], edx
mov esi, dword [esp + 4]
cmp edx, esi
jae 0x4fee14
lea eax, [esi + 1]
mov dword [esp + 0x44], 0
mov dword [esp + 0x5c], eax
lea eax, [ebp + 0x258]
mov dword [esp + 0x60], eax
mov eax, dword [ebp + 0x27c]
and eax, 0x1f
mov dword [esp + 0x8c], eax
mov eax, esi
mov ebx, dword [esp + 0x1a4]
mov edi, edx
cmp ecx, 0x7ffffff
jbe 0x4fe9c6
cmp dword [ebx + 0xb0], 0
je 0x4ff6f2
cmp edi, dword [esp + 0x14]
mov dword [ebx + 0xb8], edi
jae 0x4ff6a7
mov eax, dword [esp + 8]
mov esi, edi
movzx eax, byte [eax + edi]
mov edi, ecx
and ecx, 0x7ffffff
movzx edx, byte [ebp + eax + 0x158]
add ecx, edx
mov edx, dword [ebx + 0x7c]
cmp edx, ecx
jbe 0x4ff56a
mov edx, dword [ebx + 0x74]
mov ecx, dword [edx + ecx*4]
test ecx, ecx
js 0x4fecdf
mov eax, dword [esp + 4]
mov ebx, dword [esp + 8]
mov edx, esi
jmp 0x4feb0e
cmp edi, eax
jae 0x4fedb7
mov ebp, dword [ebx + 0x74]
mov dword [esp + 0xc], ebp
mov edx, dword [esp + 8]
mov esi, ebp
mov ebp, eax
mov ebx, edi
movzx eax, byte [edx + edi]
mov edi, ecx
mov ecx, dword [esp]
mov dword [esp + 0x20], edi
movzx eax, byte [ecx + eax + 0x158]
lea ecx, [ebx + 3]
mov dword [esp + 0x10], ecx
add eax, edi
mov edi, ebx
cmp ecx, ebp
mov eax, dword [esi + eax*4]
jae 0x4fea78
cmp eax, 0x8000000
jae 0x4fea78
movzx ecx, byte [edx + edi + 1]
mov ebx, dword [esp]
mov esi, ebp
mov ebp, dword [esp + 0xc]
movzx ecx, byte [ebx + ecx + 0x158]
add ecx, eax
mov ecx, dword [ebp + ecx*4]
cmp ecx, 0x7ffffff
ja 0x4fea88
movzx eax, byte [edx + edi + 2]
movzx eax, byte [ebx + eax + 0x158]
add eax, ecx
mov eax, dword [ebp + eax*4]
cmp eax, 0x7ffffff
ja 0x4fea8d
movzx ecx, byte [edx + edi + 3]
movzx ecx, byte [ebx + ecx + 0x158]
add ecx, eax
mov ecx, dword [ebp + ecx*4]
cmp ecx, 0x7ffffff
ja 0x4fea9a
add edi, 4
mov eax, esi
cmp edi, esi
jb 0x4fe9d5
jmp 0x4fed6d
mov edx, dword [esp + 0x20]
mov ebp, dword [esp + 0xc]
mov dword [esp + 0x10], edi
mov ecx, eax
jmp 0x4fea9c
inc edi
mov edx, eax
jmp 0x4fea94
add edi, 2
mov edx, ecx
mov ecx, eax
mov dword [esp + 0x10], edi
jmp 0x4fea9c
mov edx, eax
test ecx, ecx
js 0x4feaad
mov eax, dword [esp + 4]
mov ebp, dword [esp]
mov ebx, dword [esp + 8]
jmp 0x4feb0a
mov eax, dword [esp + 0x1a4]
mov ebx, dword [esp + 8]
cmp dword [eax + 0xb0], 0
je 0x4ff6f2
mov ecx, dword [esp + 0x10]
mov esi, dword [esp + 0x14]
cmp ecx, esi
mov dword [eax + 0xb8], ecx
jae 0x4ff6d2
movzx esi, byte [ebx + ecx]
mov ecx, dword [esp]
mov eax, dword [eax + 0x7c]
movzx ecx, byte [ecx + esi + 0x158]
add ecx, edx
cmp eax, ecx
jbe 0x4ff568
mov ecx, dword [ebp + ecx*4]
test ecx, ecx
js 0x4fed38
mov eax, dword [esp + 4]
mov ebp, dword [esp]
mov edx, dword [esp + 0x10]
cmp ecx, 0x7ffffff
jbe 0x4fedac
bt ecx, 0x1c
jae 0x4fed71
mov ebp, ecx
push eax
push edx
push dword [esp + 0x1c]
push ebx
push dword [esp + 0x7c]
lea eax, [esp + 0x94]
push eax
mov edi, edx
call dword [esp + 0x3c]
add esp, 0x18
cmp dword [esp + 0x80], 0
je 0x4fef8c
mov eax, dword [esp + 0x84]
cmp eax, edi
jbe 0x4feda1
mov esi, eax
mov ecx, ebp
cmp dword [esp + 0x28], 0
mov ebx, dword [esp + 0x1a4]
mov eax, dword [esp + 4]
mov ebp, dword [esp]
mov edi, esi
je 0x4fecd2
mov ecx, dword [esp + 0x14]
mov dword [esp + 0x74], edi
mov dword [esp + 0x78], eax
cmp ecx, eax
jb 0x4ff719
cmp dword [esp + 0x5c], edi
jb 0x4ff719
lea ebp, [edi - 1]
mov edi, dword [esp + 0x60]
cmp ecx, ebp
mov dword [esp + 0x10], ebp
jbe 0x4feca9
mov eax, dword [edi]
mov edx, dword [edi + 8]
mov ecx, dword [edi + 0xc]
or edx, dword [edi + 0x18]
or eax, dword [edi + 0x10]
or ecx, dword [edi + 0x1c]
or eax, edx
mov edx, dword [edi + 4]
or edx, dword [edi + 0x14]
or edx, ecx
or edx, eax
mov eax, dword [esp + 8]
mov ch, byte [eax + ebp]
mov ebp, dword [esp]
movzx eax, ch
je 0x4feca3
mov dword [esp + 0xc], eax
mov al, ch
xor edx, edx
mov dword [esp + 0xe0], 1
and ch, 7
and al, 0x78
mov dword [esp + 0xec], edx
mov dword [esp + 0xe8], edx
mov dword [esp + 0xe4], edx
mov dword [esp + 0xdc], edx
mov dword [esp + 0xd8], edx
mov dword [esp + 0xd4], edx
mov dword [esp + 0xd0], edx
mov cl, ch
shr al, 3
neg al
movsx edi, al
mov edx, dword [esp + edi + 0xe8]
mov eax, dword [esp + edi + 0xec]
shld eax, edx, cl
shl edx, cl
not cl
mov dword [esp + 0x20], eax
mov eax, dword [esp + 0xc]
mov ebx, dword [esp + edi + 0xe4]
shr eax, 3
mov ebp, ebx
and eax, 0xfffffff0
shr ebp, 1
shr ebp, cl
mov cl, ch
or ebp, edx
mov edx, dword [esp + edi + 0xe0]
mov edi, dword [esp + 0x60]
shld ebx, edx, cl
shl edx, cl
mov ecx, dword [esp + 0x20]
and ebp, dword [edi + eax + 8]
and edx, dword [edi + eax]
and ebx, dword [edi + eax + 4]
and ecx, dword [edi + eax + 0xc]
mov eax, dword [esp + 0xc]
or edx, ebp
mov ebp, dword [esp]
or ebx, ecx
or ebx, edx
mov ebx, dword [esp + 0x1a4]
jne 0x4ff3d3
mov al, byte [ebp + eax + 0x58]
jmp 0x4fecae
mov ebp, dword [esp]
mov al, 2
mov edx, dword [ebx + 0x88]
movzx eax, al
cmp edx, eax
jbe 0x4ff667
mov ecx, dword [ebx + 0x80]
mov edi, esi
mov ecx, dword [ecx + eax*4]
test ecx, ecx
js 0x4fed08
mov eax, dword [esp + 4]
cmp edi, eax
jb 0x4fe95d
jmp 0x4fee1e
shl eax, 8
mov edx, edi
mov dword [esp + 0x2c], ebp
mov dword [esp + 0x30], ebx
lea ecx, [esp + 0x2c]
push eax
call fcn.006560e0
add esp, 4
test eax, eax
jne 0x4ff1d5
mov ecx, edx
jmp 0x4fe9b7
mov dword [esp + 0x2c], ebp
mov dword [esp + 0x30], ebx
lea ecx, [esp + 0x4c]
lea edx, [esp + 0x2c]
push eax
push dword [esp + 0x20]
push 0
call fcn.00656fb8
add esp, 0xc
cmp dword [esp + 0x4c], 5
jne 0x4ff605
mov ecx, dword [esp + 0x50]
jmp 0x4fecce
mov ebp, dword [esp]
mov eax, dword [esp + 0x1a4]
shl esi, 8
lea ecx, [esp + 0x2c]
mov dword [esp + 0x2c], ebp
mov dword [esp + 0x30], eax
push esi
call fcn.006560e0
add esp, 4
test eax, eax
jne 0x4ff338
mov eax, dword [esp + 4]
mov ecx, edx
jmp 0x4feb0a
mov edx, edi
jmp 0x4feda9
bt ecx, 0x1b
jae 0x4ff616
mov edi, dword [esp + 0x68]
mov esi, eax
mov dword [esp + 0x70], 0
cmp dword [edi + 0x150], 1
jne 0x4fedbb
xor eax, eax
mov dword [esp + 0x64], edx
inc eax
mov dword [esp + 0x44], eax
mov eax, esi
jmp 0x4fedac
mov eax, dword [esp + 4]
mov edx, edi
mov ecx, ebp
mov ebp, dword [esp]
inc edx
cmp edx, eax
jb 0x4fe954
jmp 0x4fee1e
mov edx, edi
jmp 0x4fedac
mov eax, ecx
mov edi, ecx
mov ecx, dword [esp + 0x8c]
mov esi, edx
and eax, 0x7ffffff
shr eax, cl
mov ecx, dword [esp + 0x1a4]
mov edx, dword [ecx + 0x94]
cmp edx, eax
jbe 0x4ff670
mov edx, dword [ecx + 0x8c]
mov ecx, dword [edx + eax*8]
mov edx, dword [edx + eax*8 + 4]
push 0
call fcn.004fccd8
add esp, 4
mov dword [esp + 0x70], eax
xor eax, eax
mov edx, esi
mov dword [esp + 0x64], esi
mov ecx, edi
inc eax
mov dword [esp + 0x44], eax
mov eax, dword [esp + 4]
jmp 0x4fedac
mov eax, esi
mov dword [esp + 0x44], 0
cmp eax, dword [esp + 0x14]
jae 0x4fee90
mov edx, eax
mov eax, dword [esp + 8]
mov esi, dword [esp + 0x1a4]
mov edi, ecx
and ecx, 0x7ffffff
mov bl, byte [eax + edx]
movzx eax, bl
movzx edx, byte [ebp + eax + 0x158]
add ecx, edx
mov edx, dword [esi + 0x7c]
cmp edx, ecx
jbe 0x4ff56a
mov edx, dword [esi + 0x74]
mov edx, dword [edx + ecx*4]
test edx, edx
js 0x4ff4a0
bt edx, 0x1b
jb 0x4fefb6
mov eax, dword [esp + 0x70]
bt edx, 0x1d
jae 0x4ff29d
mov eax, dword [esp + 4]
lea ecx, [esp + 0x2c]
mov byte [ecx + 1], bl
mov dword [ecx + 4], eax
mov byte [ecx], 0
jmp 0x4ff5e8
mov esi, dword [esp + 0x1a4]
movzx eax, byte [ebp + 0x257]
mov edi, ecx
and ecx, 0x7ffffff
mov edx, dword [esi + 0x7c]
lea ecx, [eax + ecx + 1]
cmp edx, ecx
jbe 0x4ff6c1
mov edx, dword [esi + 0x74]
mov edx, dword [edx + ecx*4]
test edx, edx
js 0x4ff4d6
mov eax, dword [esp + 0x70]
bt edx, 0x1b
jae 0x4ff29d
mov eax, dword [esp + 0x68]
cmp dword [eax + 0x150], 1
jne 0x4ff22c
mov ecx, dword [esp + 0x14]
jmp 0x4fefcb
mov eax, dword [esp + 0x6c]
cmp dword [eax + 0x150], 1
jne 0x4ff0e2
mov esi, dword [esp + 4]
mov ebx, dword [esp + 0x1a4]
jmp 0x4fef1e
mov eax, dword [esp + 0x6c]
cmp dword [eax + 0x150], 1
jne 0x4ff10b
mov esi, dword [esp + 0xc]
xor ecx, ecx
xor eax, eax
jmp 0x4ff144
mov ecx, dword [esp + 0x1a4]
mov edx, ebx
call fcn.004fcd35
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x14]
mov dword [eax], ecx
jmp 0x4fe64f
lea ecx, [esp + 0x2c]
mov dword [ecx + 4], eax
mov dword [ecx + 8], ebx
jmp 0x4ff5e5
mov eax, dword [esp + 0x1a4]
lea edx, [esp + 0x2c]
mov dword [edx], ebp
movzx ebp, bl
lea ebx, [esp + 0x4c]
mov ecx, ebx
mov dword [edx + 4], eax
push ebp
push dword [esp + 0x20]
push edi
call fcn.00656fb8
mov edx, dword [esp + 0x10]
add esp, 0xc
cmp dword [ebx], 5
jne 0x4fd84c
jmp 0x4fd8db
mov ecx, dword [esp + 0x1a4]
mov edx, dword [esp + 4]
call fcn.004fcd35
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x44]
mov esi, dword [esp + 0x70]
mov edx, dword [esp + 0x64]
mov dword [eax], ecx
mov dword [eax + 4], esi
jmp 0x4fe65a
mov eax, dword [esp + 0x68]
cmp dword [eax + 0x150], 1
jne 0x4ff254
mov ecx, dword [esp + 4]
xor eax, eax
inc eax
mov dword [esp + 0x44], eax
xor eax, eax
mov dword [esp + 0x64], ecx
jmp 0x4ff29d
mov ecx, dword [esp]
lea edx, [esp + 0x2c]
lea edi, [esp + 0x4c]
mov dword [edx], ecx
mov dword [edx + 4], ebx
mov ecx, edi
push eax
push dword [esp + 0x20]
push 0
call fcn.00656fb8
add esp, 0xc
cmp dword [edi], 5
jne 0x4ff213
mov ecx, dword [esp + 0x50]
jmp 0x4fde48
movzx eax, al
mov al, byte [ebp + eax + 0x58]
jmp 0x4fe02a
bt ecx, 0x1b
jb 0x4ff2ec
bt ecx, 0x1e
jb 0x4ff04d
bt ecx, 0x1d
jae 0x4ff7a1
mov ecx, dword [esp + 0x1a4]
mov edx, ebx
call fcn.004fcd35
mov edx, dword [esp + 0xc]
jmp 0x4fd7be
mov ecx, dword [esp + 0x1a4]
mov edx, ebx
call fcn.004fcd35
mov eax, dword [esp + 0x18]
mov dword [eax], 0
jmp 0x4ff5fa
mov eax, dword [esp]
lea ecx, [esp + 0x2c]
shl edi, 8
mov dword [ecx], eax
mov eax, dword [esp + 0x1a4]
mov dword [ecx + 4], eax
push edi
call fcn.006560e0
add esp, 4
test eax, eax
jne 0x4ff4c6
mov esi, edx
jmp 0x4fd5a5
mov eax, dword [esp]
inc edi
lea ecx, [esp + 0x2c]
shl edi, 0x10
or edi, 1
mov dword [ecx], eax
mov dword [ecx + 4], ebx
push edi
call fcn.006560e0
add esp, 4
test eax, eax
je 0x4ff341
mov eax, dword [esp + 0x1c]
jmp 0x4ff4ca
mov ecx, dword [esp + 0x1a4]
mov edx, dword [esp + 4]
call fcn.004fcd35
xor eax, eax
mov ecx, dword [esp + 0x18]
mov dword [ecx], eax
jmp 0x4ff5fa
mov ebx, dword [esp + 0x1a4]
mov cl, byte [ebp + 0x27c]
and edx, 0x7ffffff
mov eax, dword [ebx + 0x94]
shr edx, cl
cmp eax, edx
jbe 0x4ff6c8
mov esi, dword [esp + 4]
jmp 0x4ff12b
mov cl, byte [ebp + 0x27c]
mov eax, dword [ebx + 0x94]
mov esi, dword [esp + 0xc]
and edx, 0x7ffffff
shr edx, cl
cmp eax, edx
jbe 0x4ff6c8
mov eax, dword [ebx + 0x8c]
mov ecx, dword [eax + edx*8]
mov edx, dword [eax + edx*8 + 4]
push 0
call fcn.004fccd8
add esp, 4
xor ecx, ecx
inc ecx
mov edx, dword [ebx + 0xb4]
cmp dword [ebx + 0xb0], 0
mov dword [ebx + 0xb0], 0
je 0x4ff708
mov edi, dword [esp + 4]
mov ebp, esi
mov esi, edi
sub esi, edx
neg esi
sub edi, edx
mov edx, dword [esp + 0x18]
cmovb edi, esi
add dword [ebx + 0x70], edi
mov dword [edx], ecx
mov dword [edx + 4], eax
mov dword [edx + 8], ebp
jmp 0x4ff5fa
mov edx, dword [esp + 0x1a4]
lea ecx, [esp + 0x2c]
shl eax, 8
mov dword [ecx], ebp
mov dword [ecx + 4], edx
mov edx, edi
push eax
call fcn.006560e0
add esp, 4
test eax, eax
jne 0x4ff4c6
jmp 0x4fdc35
inc eax
lea ecx, [esp + 0x2c]
mov edx, edi
shl eax, 0x10
mov dword [ecx], ebp
mov dword [ecx + 4], ebx
or eax, 1
push eax
call fcn.006560e0
add esp, 4
test eax, eax
je 0x4fdc7c
lea ecx, [esp + 0x2c]
mov dword [ecx + 4], esi
mov byte [ecx], 1
jmp 0x4ff5e8
mov ecx, dword [esp]
lea edx, [esp + 0x2c]
lea edi, [esp + 0x4c]
mov dword [edx], ecx
mov dword [edx + 4], ebx
mov ecx, edi
push eax
push dword [esp + 0x20]
push 0
call fcn.00656fb8
add esp, 0xc
cmp dword [edi], 5
jne 0x4ff213
mov edi, dword [esp + 0x50]
jmp 0x4fe6c8
mov eax, dword [esp + 0x4c]
mov ebx, dword [esp + 0x50]
jmp 0x4fd757
movzx eax, al
mov al, byte [ebp + eax + 0x58]
jmp 0x4fe8a4
mov cl, byte [ebp + 0x27c]
and edx, 0x7ffffff
mov esi, dword [esp + 0x14]
shr edx, cl
mov ecx, dword [esp + 0x1a4]
mov eax, dword [ecx + 0x94]
cmp eax, edx
ja 0x4ff27b
jmp 0x4ff6c8
mov cl, byte [ebp + 0x27c]
and edx, 0x7ffffff
shr edx, cl
mov ecx, dword [esp + 0x1a4]
mov eax, dword [ecx + 0x94]
cmp eax, edx
jbe 0x4ff6c8
mov esi, dword [esp + 4]
mov eax, dword [ecx + 0x8c]
mov ecx, dword [eax + edx*8]
mov edx, dword [eax + edx*8 + 4]
push 0
call fcn.004fccd8
add esp, 4
xor ecx, ecx
mov dword [esp + 0x64], esi
inc ecx
mov dword [esp + 0x44], ecx
mov edx, dword [esp + 0x1a4]
mov edi, dword [edx + 0xb4]
cmp dword [edx + 0xb0], 0
mov dword [edx + 0xb0], 0
je 0x4ff708
mov esi, dword [esp + 4]
mov ecx, esi
sub ecx, edi
neg ecx
sub esi, edi
cmovb esi, ecx
mov ecx, dword [esp + 0x18]
add dword [edx + 0x70], esi
mov edx, dword [esp + 0x44]
mov dword [ecx], edx
mov edx, dword [esp + 0x64]
mov dword [ecx + 4], eax
mov dword [ecx + 8], edx
jmp 0x4ff5fa
mov esi, dword [esp + 0x6c]
xor eax, eax
mov edx, ecx
cmp dword [esi + 0x150], 1
je 0x4fdd27
mov eax, dword [esp + 0x1a4]
and edx, 0x7ffffff
mov ecx, dword [esp + 0x44]
shr edx, cl
mov ecx, edx
mov edx, dword [eax + 0x94]
cmp edx, ecx
jbe 0x4ff672
mov eax, dword [eax + 0x8c]
mov edx, ecx
mov ecx, dword [eax + ecx*8]
mov edx, dword [eax + edx*8 + 4]
jmp 0x4fdd1d
mov eax, dword [esp + 0x10]
jmp 0x4ff4ca
mov esi, edx
jmp 0x4fd5f0
mov dword [esp + 0x24], edi
lea edx, [esp + 0x2c]
lea edi, [esp + 0x4c]
mov dword [edx], ebp
mov dword [edx + 4], ebx
mov ecx, edi
push eax
push dword [esp + 0x20]
push 0
call fcn.00656fb8
add esp, 0xc
cmp dword [edi], 5
jne 0x4ff44b
mov ecx, dword [esp + 0x50]
jmp 0x4fe04c
mov edx, dword [esp + 0x1a4]
lea ecx, [esp + 0x2c]
shl eax, 8
mov dword [ecx], ebp
mov dword [ecx + 4], edx
mov edx, edi
push eax
call fcn.006560e0
add esp, 4
test eax, eax
jne 0x4ff4c6
jmp 0x4fe4ff
inc eax
lea ecx, [esp + 0x2c]
mov edx, esi
shl eax, 0x10
mov dword [ecx], ebp
mov dword [ecx + 4], ebx
or eax, 1
push eax
call fcn.006560e0
add esp, 4
test eax, eax
je 0x4fe548
mov eax, dword [esp + 0xc]
jmp 0x4ff4ca
mov eax, 4
mov edi, esi
lea edx, [eax - 3]
mov ecx, 2
cmp edx, 2
cmovb ecx, edx
mov edx, dword [esp + 0x10]
test ecx, ecx
je 0x4ff5cb
cmp ecx, 1
jne 0x4ff5d7
mov eax, dword [esp + 0xc]
lea ecx, [esp + 0x2c]
mov byte [ecx + 1], al
mov dword [ecx + 4], edx
jmp 0x4fee88
mov ecx, dword [esp + 0x1a4]
lea edx, [esp + 0x2c]
lea esi, [esp + 0x4c]
mov dword [edx], ebp
mov dword [edx + 4], ecx
mov ecx, esi
push eax
push dword [esp + 0x20]
push 0
call fcn.00656fb8
add esp, 0xc
cmp dword [esi], 5
jne 0x4ff50b
mov ecx, dword [esp + 0x50]
mov edx, dword [esp + 0x10]
jmp 0x4fe8d1
mov eax, dword [esp + 0x4c]
mov ebx, dword [esp + 0x50]
mov edi, dword [esp + 0x24]
lea edx, [eax - 3]
mov ecx, 2
cmp edx, 2
cmovb ecx, edx
test ecx, ecx
je 0x4ff5ab
cmp ecx, 1
jne 0x4ff54a
test esi, esi
je 0x4ff536
lea ecx, [esp + 0x2c]
mov byte [ecx + 1], bl
mov dword [ecx + 4], edi
mov byte [ecx], 0
jmp 0x4ff5b5
mov edx, dword [esp + 0x1c]
mov ecx, esi
push 0x768630
jmp 0x4ff6d9
mov edx, dword [esp + 0x1a4]
lea ecx, [esp + 0x2c]
shl eax, 8
mov dword [ecx], ebp
mov dword [ecx + 4], edx
mov edx, edi
push eax
call fcn.006560e0
add esp, 4
test eax, eax
je 0x4fee62
mov eax, dword [esp + 4]
lea ecx, [esp + 0x2c]
mov dword [ecx + 4], eax
jmp 0x4ff1dc
inc eax
lea ecx, [esp + 0x2c]
mov edx, edi
shl eax, 0x10
mov dword [ecx], ebp
mov dword [ecx + 4], esi
or eax, 1
push eax
call fcn.006560e0
add esp, 4
test eax, eax
je 0x4feec3
mov eax, dword [esp + 0x14]
jmp 0x4ff4ca
lea ecx, [esp + 0x2c]
mov dword [ecx + 4], ebx
jmp 0x4ff1dc
mov eax, dword [esp + 0x4c]
mov ebx, dword [esp + 0x50]
lea edx, [eax - 3]
mov ecx, 2
cmp edx, 2
cmovb ecx, edx
test ecx, ecx
je 0x4ff559
cmp ecx, 1
mov ecx, dword [esp + 0x10]
jne 0x4ff54a
test ecx, ecx
jne 0x4ff47e
mov ecx, str.no_quit_in_start_without_look_behindX
mov edx, 0x24
push 0x768104
jmp 0x4ff701
lea ecx, [esp + 0x2c]
mov dword [ecx + 4], eax
mov dword [ecx + 8], ebx
mov byte [ecx], 3
jmp 0x4ff5b5
mov eax, dword [esp + 0x10]
lea ecx, [esp + 0x2c]
mov dword [ecx + 4], eax
jmp 0x4ff5b2
mov ecx, edi
mov edx, eax
push 0x7680c0
jmp 0x4ff6d9
mov eax, 4
lea edx, [eax - 3]
mov ecx, 2
cmp edx, 2
cmovb ecx, edx
mov edx, dword [esp + 0x10]
test ecx, ecx
je 0x4ff5ab
cmp ecx, 1
jne 0x4ff654
mov eax, dword [esp + 0x5c]
lea ecx, [esp + 0x2c]
mov byte [ecx + 1], al
mov dword [ecx + 4], edx
jmp 0x4ff488
lea ecx, [esp + 0x2c]
mov dword [ecx + 4], esi
mov byte [ecx], 1
call fcn.004f8c4d
mov ecx, dword [esp + 0x18]
mov dword [ecx + 4], eax
mov eax, 2
jmp 0x4ff0d7
lea ecx, [esp + 0x2c]
mov dword [ecx + 4], edi
jmp 0x4ff1dc
mov edx, dword [esp + 0xc]
lea ecx, [esp + 0x2c]
mov dword [ecx + 4], eax
mov dword [ecx + 8], edx
mov byte [ecx], 3
call fcn.004f8c4d
mov ecx, dword [esp + 0x18]
mov dword [ecx + 4], eax
mov dword [ecx], 2
add esp, 0x190
pop esi
pop edi
pop ebx
pop ebp
ret
mov eax, dword [esp + 0x4c]
mov ecx, dword [esp + 0x50]
mov dword [esp + 0xc], ecx
jmp 0x4ff3da
bt ecx, 0x1e
jb 0x4ff682
bt ecx, 0x1d
jae 0x4ff7a1
mov ecx, dword [esp + 0x1a4]
mov esi, edx
call fcn.004fcd35
cmp esi, dword [esp + 0x14]
jae 0x4ff796
mov eax, dword [esp + 8]
lea ecx, [esp + 0x2c]
mov al, byte [eax + esi]
mov byte [ecx + 1], al
mov dword [ecx + 4], esi
jmp 0x4fee88
mov edx, dword [esp + 0x5c]
lea ecx, [esp + 0x2c]
mov dword [ecx + 4], eax
mov dword [ecx + 8], edx
jmp 0x4ff554
mov ecx, eax
push 0x7683ec
jmp 0x4ff6d9
mov ecx, eax
push 0x7683fc
jmp 0x4ff6d9
mov edx, dword [esp + 0xc]
jmp 0x4ff494
mov ecx, dword [esp + 0x1a4]
jmp 0x4fef97
mov eax, dword [esp + 0x4c]
mov ecx, dword [esp + 0x50]
mov dword [esp + 0x5c], ecx
jmp 0x4ff579
mov edx, dword [esp + 0x1c]
mov ecx, ebx
jmp 0x4ff6d4
mov edx, dword [esp + 0x14]
mov ecx, edi
jmp 0x4ff496
mov ecx, ebx
mov edx, edi
jmp 0x4ff6d4
mov edx, esi
jmp 0x4ff56a
mov edx, eax
push 0x7680d0
jmp 0x4ff6d9
mov ecx, edx
jmp 0x4ff6ee
mov ecx, esi
jmp 0x4ff672
mov ecx, ebx
mov edx, esi
push 0x768620
call fcn.006521f0
add esp, 4
ud2
mov ecx, ebx
push 0x76869c
jmp 0x4ff6d9
mov ecx, edi
mov edx, eax
jmp 0x4ff672
mov ecx, str.no_in_progress_search_to_update
mov edx, 0x1f
push 0x768164
call fcn.00652640
jmp 0x4ff6de
mov ecx, str.no_in_progress_search_to_finish
mov edx, 0x1f
push 0x768194
jmp 0x4ff701
lea eax, [esp + 0x7c]
lea edx, [esp + 0x4c]
mov dword [eax], ecx
lea ecx, [esp + 0x74]
mov dword [esp + 0x4c], ecx
mov dword [esp + 0x50], 0x49881f
mov dword [esp + 0x54], eax
lea ecx, [esp + 0x2c]
mov eax, 2
mov dword [esp + 0x58], fcn.004a3a90
jmp 0x4ff774
lea eax, [esp + 0x7c]
lea edx, [esp + 0x4c]
mov dword [eax], ecx
lea ecx, [esp + 0x74]
mov dword [edx], ecx
mov dword [edx + 4], 0x49881f
mov dword [edx + 8], eax
lea ecx, [esp + 0x2c]
mov eax, 2
mov dword [edx + 0xc], fcn.004a3a90
mov dword [ecx], str.invalid_span__for_haystack_of_length
mov dword [ecx + 4], eax
mov dword [ecx + 0x10], 0
mov dword [ecx + 8], edx
mov edx, 0x76afac
mov dword [ecx + 0xc], eax
call fcn.00652150
ud2
mov edx, dword [esp + 0x14]
mov ecx, esi
jmp 0x4ff6e5
lea ecx, [esp + 0x2c]
xor eax, eax
lea edx, [esp + 0x48]
mov dword [ecx], 0x768684
mov dword [ecx + 4], 1
mov dword [ecx + 0x10], eax
mov dword [ecx + 8], edx
mov edx, 0x76868c
jmp 0x4ff78c