Function at 0x4d69a0
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 0x4d69c7
mov dword [ecx], 0
jmp 0x4d96c6
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 0x4d69ff
cmp byte [edx + 0x3c], 3
lea eax, [edx + 0x30]
mov esi, 0x84ef0c
cmovne esi, eax
mov dword [esp + 0x10], esi
cmp byte [esi + 0xc], 2
mov esi, dword [ebp + 8]
jne 0x4d6d51
mov dword [esp + 4], ebx
mov ebx, dword [ebp + 0xc]
cmp byte [ebx + 0x18], 0
je 0x4d6bbf
mov eax, dword [edx + 0x280]
test edi, edi
mov dword [esp + 0x18], eax
je 0x4d6ba2
lea eax, [edi - 1]
cmp dword [ebx + 0xc], eax
jbe 0x4d6ba2
mov ecx, dword [ebx + 8]
test ecx, ecx
je 0x4d6ba2
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 0x4d70d6
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 0x4d70d6
movzx eax, byte [esp + 0x10]
mov dword [esp + 0x48], 4
mov byte [esp + 0x4c], al
jmp 0x4d7124
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 0x4d70ed
jmp 0x4d70f9
mov eax, dword [edx + 0x280]
test edi, edi
mov dword [esp + 0x20], eax
je 0x4d6efa
lea eax, [edi - 1]
cmp dword [ebx + 0xc], eax
jbe 0x4d6efa
mov ecx, dword [ebx + 8]
test ecx, ecx
je 0x4d6efa
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 0x4d7586
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 0x4d7586
movzx eax, byte [esp + 0x10]
mov dword [esp + 0x48], 4
mov byte [esp + 0x4c], al
jmp 0x4d75d4
mov ebx, dword [ebp + 0xc]
cmp byte [ebx + 0x18], 0
je 0x4d6f36
mov eax, dword [edx + 0x280]
test edi, edi
mov dword [esp + 0x40], eax
mov eax, dword [eax + 0x13c]
mov dword [esp + 0x20], eax
je 0x4d6f17
lea eax, [edi - 1]
cmp dword [ebx + 0xc], eax
jbe 0x4d6f17
mov ecx, dword [ebx + 8]
test ecx, ecx
je 0x4d6f17
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 0x4d7b3d
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 0x4d7b3d
movzx eax, byte [esp + 4]
mov dword [esp + 0x48], 4
mov byte [esp + 0x4c], al
jmp 0x4d7b77
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 0x4d759d
jmp 0x4d75a9
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 0x4d7b5a
jmp 0x4d98f3
mov eax, dword [edx + 0x280]
test edi, edi
mov dword [esp + 0x44], eax
mov eax, dword [eax + 0x13c]
mov dword [esp + 0x1c], eax
je 0x4d7503
lea eax, [edi - 1]
cmp dword [ebx + 0xc], eax
jbe 0x4d7503
mov ecx, dword [ebx + 8]
test ecx, ecx
je 0x4d7503
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 0x4d7e61
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 0x4d7e61
movzx eax, byte [esp + 4]
mov dword [esp + 0x48], 4
mov byte [esp + 0x4c], al
jmp 0x4d7e9b
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 0x4d70f9
cmp ebx, 1
jne 0x4d71ac
add ecx, 6
mov edx, dword [esi + 0x88]
cmp ecx, edx
jae 0x4d7ada
mov edx, dword [esi + 0x84]
mov edx, dword [edx + ecx*4]
test edx, edx
js 0x4d7b14
mov dword [esp + 0x4c], edx
mov dword [esp + 0x48], 5
lea edx, [esp + 0x48]
lea ecx, [esp + 0x28]
push edi
call fcn.004d9ba0
add esp, 4
cmp dword [esp + 0x28], 0
mov edx, dword [esp + 0x2c]
jne 0x4d75f0
cmp dword [esi + 0xb0], 1
jne 0x4d716a
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 0x4d71cb
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 0x4d727e
test byte [edx + 0x59], 1
jne 0x4d74c8
mov eax, dword [esp + 0xc]
mov dword [esp + 0x48], 2
mov dword [esp + 0x4c], eax
jmp 0x4d7124
mov eax, dword [ebp + 0xc]
mov esi, dword [eax + 0xc]
mov ecx, dword [esp + 8]
cmp ecx, esi
jae 0x4d7531
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 0x4d96e1
mov eax, dword [edi + 0x78]
mov edi, dword [eax + ecx*4]
test edi, edi
js 0x4d829e
test edi, 0x8000000
jne 0x4d937a
test edi, 0x20000000
je 0x4d757f
movzx eax, byte [0x94bfc5]
xor ecx, ecx
mov edx, 0xc
call fcn.0071ee80
mov ecx, dword [esp + 8]
test eax, eax
je 0x4d9ab3
mov edx, ecx
mov ecx, dword [esp + 0x14]
mov byte [eax], 0
mov byte [eax + 1], bl
mov dword [eax + 4], edx
jmp 0x4d90d8
mov edx, ecx
nop word cs:[eax + eax]
nop
inc edi
mov esi, dword [ebp + 8]
cmp edi, dword [esp + 8]
jae 0x4d751e
cmp edx, 0x7ffffff
jbe 0x4d7300
cmp dword [esi + 0xb0], 0
je 0x4d9a1b
cmp edi, dword [esp + 0x10]
mov dword [esi + 0xb8], edi
jae 0x4d9826
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 0x4d96e1
mov eax, dword [esi + 0x78]
mov esi, dword [eax + ecx*4]
test esi, esi
js 0x4d749b
mov ebx, dword [esp + 4]
mov eax, edi
cmp esi, 0x7ffffff
mov edx, esi
mov edi, eax
jbe 0x4d7270
test esi, 0x10000000
jne 0x4d747e
jmp 0x4d7db6
cmp edi, dword [esp + 8]
jae 0x4d7270
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 0x4d73ce
mov edx, dword [esp + 8]
mov esi, eax
lea eax, [edi + 3]
cmp eax, edx
jae 0x4d7263
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 0x4d7459
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 0x4d7487
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 0x4d745e
add edi, 4
mov ebx, dword [esp + 4]
cmp edi, dword [esp + 8]
jb 0x4d7320
jmp 0x4d7270
mov dword [esp + 0xc], edi
mov esi, ecx
test esi, esi
jns 0x4d746e
mov ecx, dword [ebp + 8]
mov edi, eax
mov eax, dword [esp + 0xc]
cmp dword [ecx + 0xb0], 0
je 0x4d9a1b
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 0x4d9960
mov esi, dword [edi + ecx*4]
test esi, esi
jns 0x4d72db
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.007c8760
add esp, 4
test eax, eax
jne 0x4d989b
mov eax, dword [esp + 0xc]
mov esi, edx
jmp 0x4d72db
inc edi
mov dword [esp + 0xc], edi
mov ebx, dword [esp + 4]
mov esi, edx
mov edx, ecx
test esi, esi
js 0x4d73dc
mov eax, dword [esp + 0xc]
test esi, 0x10000000
je 0x4d7db6
mov edx, esi
mov edi, eax
jmp 0x4d7270
add edi, 2
mov ebx, esi
mov esi, ecx
mov dword [esp + 0xc], edi
test esi, esi
jns 0x4d746e
jmp 0x4d73dc
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.007c8760
add esp, 4
test eax, eax
jne 0x4d90b3
mov esi, edx
jmp 0x4d72d5
mov byte [esp + 0x10], al
mov ebx, dword [esp + 0x18]
mov eax, dword [esp + 0xc]
cmp dword [ebx + 0x15c], eax
jbe 0x4d7ae4
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 0x4d7107
jmp 0x4d7ada
mov ebx, dword [ebx + 4]
mov al, 2
mov edx, dword [esi + 0x88]
movzx eax, al
cmp edx, eax
ja 0x4d7e7e
jmp 0x4d98f3
mov eax, dword [ebp + 0xc]
mov esi, dword [esp + 0x10]
mov ecx, dword [esp + 8]
cmp ecx, esi
jb 0x4d71dd
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 0x4d996c
mov eax, dword [edi + 0x78]
mov edi, dword [eax + ecx*4]
test edi, edi
js 0x4d82f2
test edi, 0x8000000
jne 0x4d9411
xor eax, eax
jmp 0x4d9480
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 0x4d75a9
cmp ebx, 1
jne 0x4d7960
add ecx, 6
mov edx, dword [esi + 0x88]
cmp ecx, edx
jae 0x4d7ada
mov edx, dword [esi + 0x84]
mov edx, dword [edx + ecx*4]
test edx, edx
js 0x4d7e38
mov dword [esp + 0x4c], edx
mov dword [esp + 0x48], 5
lea edx, [esp + 0x48]
lea ecx, [esp + 0x28]
push edi
call fcn.004d9ba0
add esp, 4
cmp dword [esp + 0x28], 0
mov edx, dword [esp + 0x2c]
je 0x4d7602
mov eax, dword [esp + 0x14]
mov dword [eax + 4], edx
mov dword [eax], 2
jmp 0x4d96c6
cmp dword [esi + 0xb0], 1
jne 0x4d7628
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 0x4d797f
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 0x4d7682
mov esi, edi
inc esi
cmp esi, ebx
mov edi, esi
jae 0x4d7a1e
cmp edx, 0x7ffffff
jbe 0x4d7710
mov esi, dword [ebp + 8]
cmp dword [esi + 0xb0], 0
je 0x4d9a1b
cmp edi, dword [esp + 0x1c]
mov dword [esi + 0xb8], edi
jae 0x4d9836
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 0x4d96e1
mov eax, dword [esi + 0x78]
mov eax, dword [eax + ecx*4]
test eax, eax
js 0x4d792f
mov ebx, dword [esp + 8]
mov esi, edi
mov edx, eax
cmp edx, 0x7ffffff
jbe 0x4d7677
test edx, 0x10000000
jne 0x4d7677
jmp 0x4d789e
cmp edi, ebx
jae 0x4d7675
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 0x4d77e8
mov esi, edi
add edi, 3
cmp edi, ebx
jae 0x4d7865
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 0x4d786c
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 0x4d7871
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 0x4d7878
mov ebx, dword [esp + 8]
mov eax, dword [esp + 0x10]
add esi, 4
mov edi, esi
cmp esi, ebx
jb 0x4d7730
jmp 0x4d7675
mov esi, edi
mov ebx, ecx
test ebx, ebx
jns 0x4d788c
mov ecx, dword [ebp + 8]
cmp dword [ecx + 0xb0], 0
je 0x4d9a1b
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 0x4d96e1
mov eax, dword [esp + 0xc]
mov eax, dword [eax + ecx*4]
test eax, eax
jns 0x4d76ea
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.007c8760
add esp, 4
test eax, eax
je 0x4d76ec
jmp 0x4d98c9
mov edx, ecx
jmp 0x4d7677
mov ebx, edx
inc esi
jmp 0x4d787e
add esi, 2
mov ebx, ecx
jmp 0x4d7880
mov esi, dword [esp + 0x18]
mov ebx, edx
mov edx, ecx
mov eax, dword [esp + 0x10]
test ebx, ebx
js 0x4d77f4
mov edx, ebx
mov ebx, dword [esp + 8]
test edx, 0x10000000
jne 0x4d7677
test edx, 0x8000000
je 0x4d8174
mov eax, dword [esp + 0x20]
mov dword [esp + 0x24], 1
mov dword [esp + 0x40], 0
cmp dword [eax + 0x15c], 1
je 0x4d7901
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 0x4d9952
mov ecx, dword [ecx + 0x90]
mov eax, dword [ecx + edi*8 + 4]
test eax, eax
je 0x4d98ff
mov ecx, dword [ecx + edi*8]
test byte [ecx + 8], 2
jne 0x4d790a
mov dword [esp + 0x44], esi
jmp 0x4d7677
cmp eax, 0xd
jb 0x4d9a67
add eax, 0xfffffff3
cmp eax, 3
jbe 0x4d9a78
mov eax, dword [ecx + 0x15]
mov dword [esp + 0x44], esi
mov dword [esp + 0x40], eax
jmp 0x4d7677
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.007c8760
add esp, 4
mov ebx, dword [esp + 8]
test eax, eax
jne 0x4d90b3
mov esi, edi
jmp 0x4d76ec
test byte [edx + 0x59], 1
jne 0x4d7aa4
mov eax, dword [esp + 0xc]
mov dword [esp + 0x48], 2
mov dword [esp + 0x4c], eax
jmp 0x4d75d4
mov eax, dword [ebp + 0xc]
mov edi, ebx
mov dword [esp + 0x24], 0
mov esi, dword [eax + 0xc]
cmp edi, esi
jae 0x4d7a2f
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 0x4d96e1
mov eax, dword [edi + 0x78]
mov edi, dword [eax + ecx*4]
test edi, edi
js 0x4d8a1d
test edi, 0x8000000
jne 0x4d95de
mov esi, dword [ebp + 8]
test edi, 0x20000000
je 0x4d967f
movzx eax, byte [0x94bfc5]
xor ecx, ecx
mov edx, 0xc
call fcn.0071ee80
test eax, eax
je 0x4d9ab3
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 0x4d90d8
mov eax, dword [ebp + 0xc]
mov esi, dword [esp + 0x1c]
mov edi, ebx
cmp edi, esi
jb 0x4d7997
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 0x4d996c
mov eax, dword [edi + 0x78]
mov edi, dword [eax + ecx*4]
test edi, edi
js 0x4d8a6a
mov esi, dword [ebp + 8]
test edi, 0x8000000
je 0x4d967f
mov eax, dword [esp + 0x20]
mov dword [esp + 0x24], 1
cmp dword [eax + 0x15c], 1
jne 0x4d810c
mov dword [esp + 0x40], 0
jmp 0x4d967b
mov byte [esp + 0x10], al
mov ebx, dword [esp + 0x20]
mov eax, dword [esp + 0xc]
cmp dword [ebx + 0x15c], eax
jbe 0x4d7e08
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 0x4d75b7
push 0x84eecc
call fcn.007c1be0
mov ecx, dword [edx + 0x284]
movzx eax, byte [esp + 0x10]
mov edx, 1
and ecx, 0x1f
shl edx, cl
cmp ecx, 0x1b
jae 0x4d9a89
mov ebx, dword [esp + 4]
or edx, 0x40000000
test edx, edx
jns 0x4d7118
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.007c9a60
add esp, 0xc
jmp 0x4d7124
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 0x4d98f3
mov ecx, dword [esi + 0x84]
mov ecx, dword [ecx + eax*4]
test ecx, ecx
js 0x4d81bc
mov dword [esp + 0x4c], ecx
mov dword [esp + 0x48], 5
lea ecx, [esp + 0x28]
lea edx, [esp + 0x48]
push edi
call fcn.004d9ba0
add esp, 4
cmp dword [esp + 0x28], 0
mov ebx, dword [esp + 0x2c]
mov esi, dword [esp + 8]
je 0x4d7ba9
mov eax, dword [esp + 0x14]
mov dword [eax + 4], ebx
mov dword [eax], 2
jmp 0x4d96c6
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 0x4d80db
cmp dword [esp + 0x20], 0
mov edi, dword [esp + 0x88]
je 0x4d83ac
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 0x4d9ae6
inc eax
cmp eax, edi
jb 0x4d9ae6
test edi, edi
je 0x4d80e8
lea eax, [edi - 1]
cmp dword [esp + 0x18], eax
jbe 0x4d80e8
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 0x4d8343
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 0x4d8343
mov dword [esp + 0x48], 4
mov byte [esp + 0x4c], al
jmp 0x4d837d
test esi, 0x8000000
jne 0x4d80ef
test esi, 0x40000000
jne 0x4d928f
test esi, 0x20000000
je 0x4d9b60
mov ecx, dword [ebp + 8]
mov edx, eax
mov esi, eax
call fcn.004d9c70
mov edx, dword [esp + 0x10]
mov eax, esi
cmp esi, edx
jae 0x4d99f7
movzx ecx, byte [ebx + eax]
mov edx, eax
call fcn.004d9cb0
mov ecx, dword [esp + 0x14]
jmp 0x4d90d8
mov ecx, dword [edx + 0x284]
movzx eax, byte [esp + 0x10]
mov edx, 1
and ecx, 0x1f
shl edx, cl
cmp ecx, 0x1b
jae 0x4d9a89
mov ebx, dword [esp + 4]
or edx, 0x40000000
test edx, edx
jns 0x4d75c8
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.007c9a60
add esp, 0xc
jmp 0x4d75d4
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 0x4d98f3
mov ecx, dword [esi + 0x84]
mov ecx, dword [ecx + eax*4]
test ecx, ecx
js 0x4d827a
mov dword [esp + 0x4c], ecx
mov dword [esp + 0x48], 5
lea ecx, [esp + 0x28]
lea edx, [esp + 0x48]
push edi
call fcn.004d9ba0
add esp, 4
cmp dword [esp + 0x28], 0
mov ecx, dword [esp + 0x2c]
je 0x4d7ec9
mov eax, dword [esp + 0x14]
mov dword [eax + 4], ecx
mov dword [eax], 2
jmp 0x4d96c6
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 0x4d80db
mov eax, dword [esp + 0x88]
cmp dword [esp + 0x1c], 0
mov ebx, edi
mov dword [esp + 0x20], ebx
mov edi, eax
je 0x4d8b24
mov eax, dword [esp + 8]
mov dword [esp + 0x78], edi
cmp ebx, eax
mov ebx, dword [esp]
mov dword [esp + 0x7c], eax
jb 0x4d9b02
inc eax
cmp eax, edi
jb 0x4d9b02
test edi, edi
je 0x4d816d
lea eax, [edi - 1]
cmp dword [esp + 0x20], eax
jbe 0x4d816d
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 0x4d8ab0
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 0x4d8ab0
mov esi, dword [ebp + 8]
mov ebx, dword [esp + 0x20]
mov dword [esp + 0x48], 4
mov byte [esp + 0x4c], al
jmp 0x4d8af1
mov ecx, dword [esp + 0x14]
xor eax, eax
mov dword [ecx], eax
jmp 0x4d96c6
mov al, 2
jmp 0x4d834c
mov ecx, dword [esp + 0x18]
mov ebx, eax
xor eax, eax
cmp dword [ecx + 0x15c], 1
jne 0x4d81e3
mov esi, dword [ebp + 8]
jmp 0x4d8236
mov eax, dword [esp]
mov edx, dword [esi + 0x94]
and edi, 0x7ffffff
movzx ecx, byte [eax + 0x284]
shr edi, cl
cmp edi, edx
jae 0x4d9997
mov eax, dword [esi + 0x90]
mov dword [esp + 0x40], 0
mov edx, dword [eax + edi*8 + 4]
test edx, edx
je 0x4d98ff
mov eax, dword [eax + edi*8]
test byte [eax + 8], 2
je 0x4d967b
cmp edx, 0xd
jb 0x4d9ac8
add edx, 0xfffffff3
cmp edx, 3
ja 0x4d966c
jmp 0x4d9ad7
mov al, 2
jmp 0x4d8abf
mov edi, esi
mov esi, dword [esp + 4]
test edx, 0x40000000
jne 0x4d8975
test edx, 0x20000000
je 0x4d9b60
mov ecx, dword [ebp + 8]
mov edx, edi
call fcn.004d9c70
mov edx, dword [esp + 0x1c]
cmp edi, edx
jae 0x4d9a0f
movzx ecx, byte [esi + edi]
mov edx, edi
call fcn.004d9cb0
mov ecx, dword [esp + 0x14]
jmp 0x4d90d8
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.007c9a60
add esp, 0xc
jmp 0x4d7b77
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 0x4d9a03
mov ecx, dword [ecx + 0x90]
mov edx, dword [ecx + esi*8 + 4]
test edx, edx
je 0x4d98ff
mov ecx, dword [ecx + esi*8]
mov esi, dword [ebp + 8]
test byte [ecx + 8], 2
je 0x4d8236
cmp edx, 0xd
jb 0x4d9ac8
add edx, 0xfffffff3
cmp edx, 3
jbe 0x4d9ad7
mov eax, dword [ecx + 0x15]
mov ecx, dword [esi + 0xb4]
cmp dword [esi + 0xb0], 0
mov dword [esi + 0xb0], 0
je 0x4d9a53
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 0x4d96c6
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.007c9a60
add esp, 0xc
jmp 0x4d7e9b
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.007c8760
add esp, 4
test eax, eax
je 0x4d936c
movzx eax, byte [0x94bfc5]
xor ecx, ecx
mov edx, 0xc
call fcn.0071ee80
test eax, eax
je 0x4d9ab3
mov edx, dword [esp + 8]
mov ecx, dword [esp + 0x14]
mov byte [eax], 1
mov dword [eax + 4], edx
jmp 0x4d90d8
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.007c8760
add esp, 4
test eax, eax
je 0x4d9403
movzx eax, byte [0x94bfc5]
xor ecx, ecx
mov edx, 0xc
call fcn.0071ee80
test eax, eax
je 0x4d9ab3
mov edx, dword [esp + 0x10]
mov ecx, dword [esp + 0x14]
mov byte [eax], 1
mov dword [eax + 4], edx
jmp 0x4d90d8
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 0x4d98f3
mov ecx, dword [ecx + 0x84]
mov ecx, dword [ecx + eax*4]
test ecx, ecx
js 0x4d94d4
mov dword [esp + 0x4c], ecx
mov dword [esp + 0x48], 5
lea ecx, [esp + 0x28]
lea edx, [esp + 0x48]
push edi
call fcn.004d9ba0
add esp, 4
cmp dword [esp + 0x28], 0
mov ebx, dword [esp + 0x2c]
je 0x4d83ac
mov ecx, dword [esp + 0x14]
mov eax, 2
mov dword [ecx + 4], ebx
mov dword [ecx], eax
jmp 0x4d96c6
mov esi, dword [ebp + 8]
cmp dword [esi + 0xb0], 1
jne 0x4d83d2
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 0x4d8899
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 0x4d8427
mov ebx, ecx
mov edi, eax
mov ecx, dword [esp]
inc edi
cmp edi, esi
jae 0x4d8899
cmp ebx, 0x7ffffff
jbe 0x4d8499
mov esi, dword [ebp + 8]
mov eax, dword [esp + 4]
cmp dword [esi + 0xb0], 0
je 0x4d9a1b
cmp edi, dword [esp + 0x18]
mov dword [esi + 0xb8], edi
jae 0x4d9978
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 0x4d990d
mov edx, dword [esi + 0x78]
mov edx, dword [edx + ecx*4]
test edx, edx
js 0x4d883e
mov esi, dword [esp + 8]
mov eax, edi
cmp edx, 0x7ffffff
mov ebx, edx
mov edi, eax
jbe 0x4d841b
jmp 0x4d859a
cmp edi, esi
jae 0x4d841b
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 0x4d8562
mov esi, dword [esp + 8]
mov eax, edi
add edi, 3
cmp edi, esi
jae 0x4d8417
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 0x4d856c
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 0x4d8575
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 0x4d8580
mov esi, dword [esp + 8]
mov edx, dword [esp + 0x10]
add eax, 4
mov edi, eax
cmp eax, esi
jb 0x4d84b2
jmp 0x4d841b
mov esi, dword [esp + 8]
mov eax, edi
mov edi, ecx
jmp 0x4d8590
mov esi, dword [esp + 8]
mov edi, ebx
inc eax
jmp 0x4d858a
mov esi, dword [esp + 8]
add eax, 2
mov edi, ecx
jmp 0x4d858c
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 0x4d8751
mov ebx, edi
test ebx, 0x10000000
je 0x4d9248
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 0x4d92a8
mov ecx, dword [esp + 0x88]
cmp ecx, edi
jbe 0x4d841b
mov eax, ecx
cmp dword [esp + 0x20], 0
mov ecx, dword [esp]
mov edi, eax
je 0x4d8834
mov ecx, dword [esp + 0x18]
mov dword [esp + 0x78], edi
mov dword [esp + 0x7c], esi
cmp ecx, esi
jb 0x4d9aec
cmp dword [esp + 0x5c], edi
jb 0x4d9aec
mov esi, dword [esp + 0x60]
lea eax, [edi - 1]
cmp ecx, eax
jbe 0x4d87d0
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 0x4d87d4
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 0x4d87d4
movzx eax, byte [esp + 0x10]
mov esi, dword [esp + 8]
mov dword [esp + 0x48], 4
mov byte [esp + 0x4c], al
jmp 0x4d8811
mov ecx, dword [ebp + 8]
cmp dword [ecx + 0xb0], 0
je 0x4d9a1b
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 0x4d990d
mov edx, dword [esp + 0xc]
mov edx, dword [edx + ecx*4]
test edx, edx
jns 0x4d8488
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.007c8760
add esp, 4
test eax, eax
jne 0x4d99b1
mov eax, dword [esp + 0x1c]
jmp 0x4d8488
mov al, 2
jmp 0x4d87e0
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 0x4d98f3
mov ecx, dword [ecx + 0x84]
mov esi, dword [esp + 8]
mov ecx, dword [ecx + eax*4]
test ecx, ecx
js 0x4d886f
mov dword [esp + 0x4c], ecx
mov dword [esp + 0x48], 5
lea ecx, [esp + 0x28]
lea edx, [esp + 0x48]
push edi
call fcn.004d9ba0
add esp, 4
cmp dword [esp + 0x28], 0
mov ebx, dword [esp + 0x2c]
jne 0x4d8399
mov ecx, dword [esp]
cmp edi, esi
jb 0x4d8427
jmp 0x4d8899
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.007c8760
add esp, 4
mov esi, dword [esp + 8]
test eax, eax
je 0x4d8486
jmp 0x4d90b3
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.007c9a60
add esp, 0xc
jmp 0x4d8811
cmp esi, dword [esp + 0x18]
jae 0x4d892c
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 0x4d990d
mov edx, dword [esi + 0x78]
mov edx, dword [edx + ecx*4]
test edx, edx
js 0x4d978a
test edx, 0x8000000
jne 0x4d8984
test edx, 0x20000000
je 0x4d896e
movzx eax, byte [0x94bfc5]
xor ecx, ecx
mov edx, 0xc
call fcn.0071ee80
mov ecx, dword [esp + 8]
test eax, eax
je 0x4d9ab3
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 0x4d90d8
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 0x4d99df
mov edx, dword [esi + 0x78]
mov edx, dword [edx + ecx*4]
test edx, edx
js 0x4d97d6
test edx, 0x8000000
jne 0x4d89a9
xor esi, esi
jmp 0x4d9325
mov ecx, dword [ebp + 8]
mov edx, edi
call fcn.004d9c70
jmp 0x4d96ae
mov eax, dword [esp + 0x40]
xor edi, edi
mov esi, 1
cmp dword [eax + 0x15c], 1
jne 0x4d92bf
mov eax, dword [esp + 8]
mov dword [esp + 0x18], eax
jmp 0x4d9325
mov eax, dword [esp + 0x40]
xor edi, edi
mov esi, 1
cmp dword [eax + 0x15c], 1
je 0x4d9325
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 0x4d99e9
mov ecx, dword [ecx + 0x90]
mov eax, dword [ecx + edx*8 + 4]
test eax, eax
je 0x4d98ff
mov ecx, dword [ecx + edx*8]
test byte [ecx + 8], 2
je 0x4d9325
cmp eax, 0xd
jb 0x4d9a67
add eax, 0xfffffff3
cmp eax, 3
ja 0x4d9322
jmp 0x4d9a78
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.007c8760
add esp, 4
test eax, eax
je 0x4d95d0
movzx eax, byte [0x94bfc5]
xor ecx, ecx
mov edx, 0xc
call fcn.0071ee80
test eax, eax
je 0x4d9ab3
mov ebx, dword [esp + 8]
mov byte [eax], 1
jmp 0x4d7a12
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.007c8760
add esp, 4
test eax, eax
je 0x4d96ce
movzx eax, byte [0x94bfc5]
xor ecx, ecx
mov edx, 0xc
call fcn.0071ee80
test eax, eax
je 0x4d9ab3
mov byte [eax], 1
jmp 0x4d7a12
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 0x4d98f3
mov ecx, dword [esi + 0x84]
mov ebx, dword [esp + 0x20]
mov ecx, dword [ecx + eax*4]
test ecx, ecx
js 0x4d96ed
mov dword [esp + 0x4c], ecx
mov dword [esp + 0x48], 5
lea ecx, [esp + 0x28]
lea edx, [esp + 0x48]
push edi
call fcn.004d9ba0
add esp, 4
cmp dword [esp + 0x28], 0
mov eax, dword [esp + 0x2c]
je 0x4d8b20
mov ecx, dword [esp + 0x14]
mov edx, 2
mov dword [ecx + 4], eax
mov dword [ecx], edx
jmp 0x4d96c6
mov dword [esp + 4], eax
cmp dword [esi + 0xb0], 1
jne 0x4d8b47
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 0x4d90e6
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 0x4d8bae
mov dword [esp + 4], ecx
mov ecx, dword [esp]
mov ebx, dword [esp + 0x20]
inc edi
cmp edi, dword [esp + 8]
jae 0x4d90ee
cmp dword [esp + 4], 0x7ffffff
jbe 0x4d8c2d
cmp dword [esi + 0xb0], 0
je 0x4d9a1b
cmp edi, ebx
mov dword [esi + 0xb8], edi
jae 0x4d99a3
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 0x4d990d
mov edx, dword [esi + 0x78]
mov ecx, dword [edx + ecx*4]
test ecx, ecx
js 0x4d8f94
mov esi, ecx
mov eax, dword [esp + 8]
mov ecx, dword [esp]
mov edx, dword [esp + 0xc]
cmp esi, 0x7ffffff
ja 0x4d8d27
mov dword [esp + 4], esi
mov esi, dword [ebp + 8]
jmp 0x4d8ba3
cmp edi, dword [esp + 8]
jae 0x4d8ba3
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 0x4d8d00
lea eax, [edi + 3]
cmp eax, dword [esp + 8]
mov dword [esp + 0x18], eax
jae 0x4d8b98
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 0x4d8cf2
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 0x4d8cf9
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 0x4d8d08
add edi, 4
mov dword [esp + 4], esi
mov esi, dword [ebp + 8]
mov edx, dword [esp + 0x10]
cmp edi, dword [esp + 8]
jb 0x4d8c45
jmp 0x4d8b9c
mov ebx, dword [esp + 0x20]
inc edi
jmp 0x4d8d10
mov dword [esp + 4], esi
add edi, 2
mov ebx, dword [esp + 0x20]
mov esi, ecx
jmp 0x4d8d14
mov ebx, dword [esp + 0x20]
mov edi, dword [esp + 0x18]
mov dword [esp + 4], ecx
test esi, esi
js 0x4d8f45
mov eax, dword [esp + 8]
mov ecx, dword [esp]
mov edx, dword [esp + 0xc]
test esi, 0x10000000
mov dword [esp + 4], esi
je 0x4d8fc2
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 0x4d9238
mov ecx, dword [esp + 0x88]
cmp ecx, edi
jbe 0x4d8ff7
mov eax, ecx
cmp dword [esp + 0x1c], 0
mov ecx, dword [esp]
mov edi, eax
je 0x4d8ba4
mov eax, dword [esp + 8]
mov dword [esp + 0x78], edi
cmp ebx, eax
mov dword [esp + 0x7c], eax
jb 0x4d9ac2
cmp dword [esp + 0x80], edi
jb 0x4d9ac2
mov ecx, dword [esp + 0x60]
lea eax, [edi - 1]
cmp ebx, eax
jbe 0x4d8ed8
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 0x4d8edc
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 0x4d8edc
mov esi, dword [ebp + 8]
mov dword [esp + 0x48], 4
mov byte [esp + 0x4c], al
jmp 0x4d8f19
mov al, 2
jmp 0x4d8eeb
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 0x4d98f3
mov ecx, dword [esi + 0x84]
mov ecx, dword [ecx + eax*4]
test ecx, ecx
js 0x4d8fff
mov dword [esp + 0x4c], ecx
mov dword [esp + 0x48], 5
lea ecx, [esp + 0x28]
lea edx, [esp + 0x48]
push edi
call fcn.004d9ba0
add esp, 4
cmp dword [esp + 0x28], 0
mov eax, dword [esp + 0x2c]
mov dword [esp + 4], eax
jne 0x4d94c7
mov ecx, dword [esp]
jmp 0x4d8ba4
mov ecx, dword [ebp + 8]
cmp dword [ecx + 0xb0], 0
je 0x4d9a1b
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 0x4d990d
mov eax, dword [esp + 0x10]
mov eax, dword [eax + ecx*4]
test eax, eax
js 0x4d9089
mov esi, eax
jmp 0x4d8c0a
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.007c8760
add esp, 4
test eax, eax
jne 0x4d90b3
mov esi, edx
jmp 0x4d8c0a
test esi, 0x8000000
mov esi, dword [ebp + 8]
je 0x4d9917
mov eax, dword [esp + 0x44]
mov dword [esp + 0x68], 1
mov dword [esp + 0x70], 0
cmp dword [eax + 0x15c], 1
jne 0x4d9026
mov dword [esp + 0x64], edi
jmp 0x4d8ba3
mov ecx, dword [esp]
jmp 0x4d8ba3
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.007c9a60
add esp, 0xc
jmp 0x4d8f19
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 0x4d9a2f
mov ecx, dword [esi + 0x90]
mov edx, dword [ecx + eax*8 + 4]
test edx, edx
je 0x4d98ff
mov eax, dword [ecx + eax*8]
test byte [eax + 8], 2
je 0x4d907d
cmp edx, 0xd
jb 0x4d9ac8
add edx, 0xfffffff3
cmp edx, 3
jbe 0x4d9ad7
mov eax, dword [eax + 0x15]
mov dword [esp + 0x70], eax
mov ecx, dword [esp]
mov dword [esp + 0x64], edi
jmp 0x4d8ba3
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.007c8760
add esp, 4
test eax, eax
je 0x4d8fbb
movzx eax, byte [0x94bfc5]
xor ecx, ecx
mov edx, 0xc
call fcn.0071ee80
test eax, eax
je 0x4d9ab3
mov ecx, dword [esp + 0x14]
mov byte [eax], 1
mov dword [eax + 4], edi
mov dword [ecx + 4], eax
mov dword [ecx], 2
jmp 0x4d96c6
mov dword [esp + 0x68], 0
mov eax, dword [esp + 8]
cmp eax, ebx
jae 0x4d914b
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 0x4d990d
mov edx, dword [esi + 0x78]
mov edx, dword [edx + ecx*4]
test edx, edx
js 0x4d9846
test edx, 0x8000000
jne 0x4d920a
test edx, 0x20000000
jne 0x4d79ed
jmp 0x4d956d
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 0x4d99df
mov edx, dword [esi + 0x78]
mov edx, dword [edx + ecx*4]
test edx, edx
js 0x4d9872
test edx, 0x8000000
je 0x4d956d
mov eax, dword [esp + 0x44]
mov dword [esp + 0x68], 1
mov dword [esp + 0x70], 0
cmp dword [eax + 0x15c], 1
je 0x4d9569
mov eax, dword [esp]
and edx, 0x7ffffff
movzx ecx, byte [eax + 0x284]
mov eax, dword [esi + 0x94]
shr edx, cl
cmp edx, eax
jae 0x4d99e9
mov ecx, dword [esi + 0x90]
mov eax, dword [ecx + edx*8 + 4]
test eax, eax
je 0x4d98ff
mov ecx, dword [ecx + edx*8]
test byte [ecx + 8], 2
je 0x4d9569
cmp eax, 0xd
jb 0x4d9a67
add eax, 0xfffffff3
cmp eax, 3
ja 0x4d955a
jmp 0x4d9a78
mov eax, dword [esp + 0x44]
mov dword [esp + 0x68], 1
mov dword [esp + 0x70], 0
cmp dword [eax + 0x15c], 1
jne 0x4d94fe
mov eax, dword [esp + 8]
mov dword [esp + 0x64], eax
jmp 0x4d956d
mov edx, dword [esp + 8]
mov ecx, esi
call fcn.004d9c70
jmp 0x4d959c
test ebx, 0x8000000
jne 0x4d95b1
test ebx, 0x40000000
jne 0x4d928f
test ebx, 0x20000000
je 0x4d9b60
mov ecx, dword [ebp + 8]
mov edx, eax
mov esi, eax
call fcn.004d9c70
mov edx, dword [esp + 0x18]
cmp esi, edx
jae 0x4d9a3b
mov eax, dword [esp + 4]
mov edx, esi
movzx ecx, byte [eax + esi]
jmp 0x4d81ae
mov ecx, dword [ebp + 8]
mov edx, eax
call fcn.004d9c70
mov eax, dword [esp + 0x14]
mov dword [eax], 0
jmp 0x4d96c6
mov ecx, dword [ebp + 8]
mov edx, esi
call fcn.004d9c70
mov ecx, dword [esp + 0x14]
xor eax, eax
mov dword [ecx], eax
jmp 0x4d96c6
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 0x4d99e9
mov ecx, dword [ecx + 0x90]
mov eax, dword [ecx + edx*8 + 4]
test eax, eax
je 0x4d98ff
mov ecx, dword [ecx + edx*8]
mov edx, dword [esp + 8]
test byte [ecx + 8], 2
mov dword [esp + 0x18], edx
je 0x4d9325
cmp eax, 0xd
jb 0x4d9a67
mov edx, dword [esp + 8]
add eax, 0xfffffff3
cmp eax, 3
mov dword [esp + 0x18], edx
jbe 0x4d9a78
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 0x4d9a53
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 0x4d96c6
mov edi, edx
test edi, 0x8000000
je 0x4d7224
mov ecx, dword [esp + 0x18]
xor esi, esi
mov eax, 1
cmp dword [ecx + 0x15c], 1
jne 0x4d939b
mov ecx, dword [esp + 8]
mov dword [esp + 0x10], ecx
jmp 0x4d9480
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 0x4d9997
mov ecx, dword [ecx + 0x90]
mov edx, dword [ecx + edi*8 + 4]
test edx, edx
je 0x4d98ff
mov ecx, dword [ecx + edi*8]
mov edi, dword [esp + 8]
test byte [ecx + 8], 2
mov dword [esp + 0x10], edi
je 0x4d9480
cmp edx, 0xd
jb 0x4d9ac8
mov eax, dword [esp + 8]
add edx, 0xfffffff3
cmp edx, 3
mov dword [esp + 0x10], eax
ja 0x4d9478
jmp 0x4d9ad7
mov edi, edx
test edi, 0x8000000
je 0x4d757f
mov ecx, dword [esp + 0x18]
xor esi, esi
mov eax, 1
cmp dword [ecx + 0x15c], 1
je 0x4d9480
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 0x4d9997
mov ecx, dword [ecx + 0x90]
mov edx, dword [ecx + edi*8 + 4]
test edx, edx
je 0x4d98ff
mov ecx, dword [ecx + edi*8]
test byte [ecx + 8], 2
je 0x4d9480
cmp edx, 0xd
jb 0x4d9ac8
add edx, 0xfffffff3
cmp edx, 3
jbe 0x4d9ad7
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 0x4d9a53
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 0x4d96c6
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 4]
jmp 0x4d7ebb
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.007c9a60
add esp, 0xc
jmp 0x4d837d
mov eax, dword [esp]
and edx, 0x7ffffff
movzx ecx, byte [eax + 0x284]
mov eax, dword [esi + 0x94]
shr edx, cl
cmp edx, eax
jae 0x4d99e9
mov ecx, dword [esi + 0x90]
mov eax, dword [ecx + edx*8 + 4]
test eax, eax
je 0x4d98ff
mov ecx, dword [ecx + edx*8]
mov edx, dword [esp + 8]
test byte [ecx + 8], 2
mov dword [esp + 0x64], edx
je 0x4d956d
cmp eax, 0xd
jb 0x4d9a67
mov ebx, dword [esp + 8]
add eax, 0xfffffff3
cmp eax, 3
jbe 0x4d9a78
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 0x4d9a53
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 0x4d96be
mov ecx, dword [esp + 0x40]
mov dword [esp + 0x1c], eax
xor eax, eax
cmp dword [ecx + 0x15c], 1
jne 0x4d9714
mov esi, dword [ebp + 8]
jmp 0x4d9764
mov edi, edx
test edi, 0x8000000
je 0x4d79de
mov eax, dword [esp + 0x20]
mov esi, dword [ebp + 8]
mov dword [esp + 0x24], 1
cmp dword [eax + 0x15c], 1
jne 0x4d9608
mov eax, dword [esp + 8]
mov dword [esp + 0x40], 0
mov dword [esp + 0x44], eax
jmp 0x4d967f
mov eax, dword [esp]
mov edx, dword [esi + 0x94]
and edi, 0x7ffffff
movzx ecx, byte [eax + 0x284]
shr edi, cl
cmp edi, edx
jae 0x4d9997
mov eax, dword [esi + 0x90]
mov dword [esp + 0x40], 0
mov edx, dword [eax + edi*8 + 4]
test edx, edx
je 0x4d98ff
mov eax, dword [eax + edi*8]
mov ecx, dword [esp + 8]
test byte [eax + 8], 2
mov dword [esp + 0x44], ecx
je 0x4d967f
cmp edx, 0xd
jb 0x4d9ac8
mov ebx, dword [esp + 8]
add edx, 0xfffffff3
cmp edx, 3
jbe 0x4d9ad7
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 0x4d9a53
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 0x4d7a7e
jmp 0x4d967f
mov edx, eax
push 0x84eba0
call fcn.007c1be0
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.007c9a60
add esp, 0xc
jmp 0x4d8af1
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 0x4d9a47
mov ecx, dword [esi + 0x90]
mov edx, dword [ecx + ebx*8 + 4]
test edx, edx
je 0x4d98ff
mov ecx, dword [ecx + ebx*8]
test byte [ecx + 8], 2
je 0x4d9764
cmp edx, 0xd
jb 0x4d9ac8
add edx, 0xfffffff3
cmp edx, 3
jbe 0x4d9ad7
mov eax, dword [ecx + 0x15]
mov ecx, dword [esi + 0xb4]
cmp dword [esi + 0xb0], 0
mov dword [esi + 0xb0], 0
je 0x4d9a53
mov ebx, dword [esp + 0x1c]
jmp 0x4d8253
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.007c8760
add esp, 4
test eax, eax
je 0x4d88e0
movzx eax, byte [0x94bfc5]
xor ecx, ecx
mov edx, 0xc
call fcn.0071ee80
mov ecx, dword [esp + 8]
test eax, eax
je 0x4d9ab3
mov byte [eax], 1
jmp 0x4d891e
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.007c8760
add esp, 4
test eax, eax
je 0x4d8966
movzx eax, byte [0x94bfc5]
xor ecx, ecx
mov edx, 0xc
call fcn.0071ee80
test eax, eax
je 0x4d9ab3
mov edx, dword [esp + 0x18]
mov ecx, dword [esp + 0x14]
mov byte [eax], 1
mov dword [eax + 4], edx
jmp 0x4d90d8
mov edx, dword [esp + 0x10]
mov ecx, edi
push 0x84f114
call fcn.007c1be0
mov edx, dword [esp + 0x1c]
mov ecx, edi
push 0x84f114
call fcn.007c1be0
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.007c8760
add esp, 4
test eax, eax
jne 0x4d8a43
jmp 0x4d912e
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.007c8760
add esp, 4
test eax, eax
jne 0x4d8a8d
jmp 0x4d9184
movzx eax, byte [0x94bfc5]
xor ecx, ecx
mov edx, 0xc
call fcn.0071ee80
test eax, eax
je 0x4d9ab3
mov ecx, dword [esp + 0xc]
mov byte [eax], 1
mov dword [eax + 4], ecx
mov ecx, dword [esp + 0x14]
jmp 0x4d90d8
movzx eax, byte [0x94bfc5]
xor ecx, ecx
mov edx, 0xc
call fcn.0071ee80
test eax, eax
je 0x4d9ab3
mov ecx, dword [esp + 0x14]
mov byte [eax], 1
mov dword [eax + 4], esi
jmp 0x4d90d8
mov ecx, eax
push 0x84eecc
call fcn.007c1be0
xor ecx, ecx
xor edx, edx
push 0x851760
call fcn.007c1be0
push 0x84eba0
call fcn.007c1be0
test dword [esp + 4], 0x40000000
jne 0x4d9988
test dword [esp + 4], 0x20000000
je 0x4d9b60
mov ecx, dword [ebp + 8]
mov edx, edi
mov esi, edi
call fcn.004d9c70
cmp edi, dword [esp + 0x20]
jae 0x4d9af2
mov eax, dword [esp + 0xc]
movzx ecx, byte [eax + edi]
jmp 0x4d81ac
mov ecx, edi
mov edx, eax
push 0x84eedc
call fcn.007c1be0
mov edx, esi
push 0x84eba0
call fcn.007c1be0
mov edx, eax
push 0x84ebb0
call fcn.007c1be0
mov edx, dword [esp + 0x18]
mov ecx, edi
push 0x84f114
call fcn.007c1be0
mov ecx, dword [ebp + 8]
mov edx, edi
call fcn.004d9c70
jmp 0x4d959c
mov ecx, edi
push 0x84eedc
call fcn.007c1be0
mov ecx, edi
mov edx, ebx
push 0x84f114
call fcn.007c1be0
movzx eax, byte [0x94bfc5]
xor ecx, ecx
mov edx, 0xc
call fcn.0071ee80
test eax, eax
je 0x4d9ab3
mov ecx, dword [esp + 0x1c]
mov byte [eax], 1
mov dword [eax + 4], ecx
mov ecx, dword [esp + 0x14]
jmp 0x4d90d8
push 0x84ebb0
call fcn.007c1be0
mov ecx, edx
mov edx, eax
push 0x84eedc
call fcn.007c1be0
mov ecx, eax
push 0x84f180
call fcn.007c1be0
mov ecx, esi
push 0x84eedc
call fcn.007c1be0
mov ecx, edi
push 0x84f180
call fcn.007c1be0
mov ecx, str.no_in_progress_search_to_update
mov edx, 0x1f
push 0x84ec44
call fcn.007c2000
mov ecx, eax
push 0x84eedc
call fcn.007c1be0
mov ecx, esi
push 0x84f180
call fcn.007c1be0
mov ecx, ebx
push 0x84eedc
call fcn.007c1be0
mov ecx, str.no_in_progress_search_to_finish
mov edx, 0x1f
push 0x84ec74
call fcn.007c2000
mov ecx, 0xd
mov edx, eax
push 0x851790
call fcn.007c1b80
mov ecx, 4
mov edx, eax
push 0x8516a4
call fcn.007c1c40
mov dword [esp + 0x28], edx
mov dword [esp + 0x2c], 0
lea eax, [esp + 0x28]
mov ecx, 0x93b384
mov edx, 0x2b
push 0x84eeec
push 0x84df38
push eax
call fcn.007c1f60
mov ecx, 4
mov edx, 0xc
call fcn.007c1490
mov dword [esp + 0x74], ebx
jmp 0x4d9b0a
mov ecx, 0xd
push 0x851790
call fcn.007c1b80
mov ecx, 4
push 0x8516a4
call fcn.007c1c40
mov eax, dword [esp + 0x18]
jmp 0x4d9b06
mov dword [esp + 0x74], ecx
jmp 0x4d9b0a
mov edx, dword [esp + 0x20]
mov ecx, edi
push 0x84f180
call fcn.007c1be0
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], 0x8a81e4
mov dword [esp + 0x2c], 2
mov dword [esp + 0x38], 0
mov dword [esp + 0x30], ecx
mov dword [esp + 0x48], eax
mov dword [esp + 0x4c], 0x418b90
mov dword [esp + 0x50], edx
lea ecx, [esp + 0x28]
mov edx, 0x8519f0
mov dword [esp + 0x54], 0x4631b0
mov dword [esp + 0x34], 2
call fcn.007c1b50
lea eax, [esp + 0x58]
lea ecx, [esp + 0x28]
mov edx, 0x84f170
mov dword [esp + 0x28], 0x84f168
mov dword [esp + 0x2c], 1
mov dword [esp + 0x38], 0
mov dword [esp + 0x30], eax
mov dword [esp + 0x34], 0
call fcn.007c1b50
int3