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

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
sub esp, 0x44
mov esi, ecx
mov eax, dword [0x754040]
xor eax, ebp
mov dword [ebp - 0x10], eax
mov eax, dword [ecx + 0x24c]
mov dword [ebp - 0x50], 0
test eax, eax
jne 0x4c8cf8
mov eax, dword [esi]
add eax, 0xfffffff9
cmp eax, 3
ja case.default.0x4c806a
mov ecx, dword [esi + 4]
mov dword [ebp - 0x28], ecx
mov edi, dword [esi + 0x34]
lea ecx, [esi + 8]
mov dword [ebp - 0x38], ecx
mov dword [ebp - 0x1c], esi
jmp dword [eax*4 + 0x6f1a24]
mov ecx, eax
mov edx, dword [ebp - 0x38]
lea eax, [ebp - 0x14]
push eax
call fcn.004c8e60
add esp, 4
test eax, eax
je 0x4c8c49
mov eax, dword [ebp - 0x14]
jmp 0x4c80bb
mov esi, eax
mov eax, dword [ebp - 0x38]
mov edx, dword [eax]
mov eax, esi
shr edx, cl
movzx esi, dl
lea eax, [eax + esi*4]
movzx ebx, byte [eax]
cmp ebx, 9
jae 0x4c8cd1
mov esi, dword [ebp - 0x1c]
movzx edx, bl
add edx, ecx
mov dword [esi + 0xc], edx
movzx eax, word [eax + 2]
mov edi, dword [ebp - 0x24]
mov ecx, dword [esi + 0x60]
mov byte [ecx + edi], al
mov eax, dword [esi + 0xc0]
dec eax
mov dword [esi + 0xc0], eax
inc edi
cmp edi, dword [esi + 0x40]
je 0x4c89f8
dec dword [ebp - 0x28]
je 0x4c8333
mov dword [ebp - 0x24], edi
test eax, eax
je 0x4c8c74
mov dword [ebp - 0x14], 0xffffffff
mov ecx, dword [esi + 0xc]
mov eax, dword [esi + 0x100]
lea edx, [ecx - 0x12]
cmp edx, 0xf
jae 0x4c808f
mov ebx, dword [esi + 0x14]
dec ebx
mov edi, ecx
cmp ebx, 0xffffffff
je 0x4c8071
mov ecx, dword [esi + 8]
mov edx, dword [ebp - 0x1c]
mov esi, dword [edx + 0x10]
mov edx, ecx
shr edx, 8
mov dword [ebp - 0x20], eax
mov eax, dword [ebp - 0x1c]
mov dword [eax + 8], edx
movzx edx, byte [esi]
shld edx, ecx, 0x18
mov eax, dword [ebp - 0x1c]
mov dword [eax + 8], edx
lea ecx, [edi - 8]
mov eax, dword [ebp - 0x1c]
mov dword [eax + 0xc], ecx
mov eax, dword [ebp - 0x1c]
mov dword [eax + 0x14], ebx
inc esi
mov eax, dword [ebp - 0x1c]
mov dword [eax + 0x10], esi
mov eax, dword [ebp - 0x20]
mov esi, dword [ebp - 0x1c]
dec ebx
add edi, 0xffffffe6
cmp edi, 0xf
mov edi, ecx
jae 0x4c8098
jmp 0x4c810d
mov ecx, eax
mov edx, dword [ebp - 0x38]
lea eax, [ebp - 0x14]
push eax
call fcn.004c8e60
add esp, 4
test eax, eax
je 0x4c8c49
mov cl, byte [ebp - 0x14]
mov edi, dword [ebp - 0x24]
jmp 0x4c8219
add ebx, 8
mov dword [esi + 0xc], ebx
shr edx, 8
and edx, dword [ecx*4 + 0x6f4330]
and edx, 0x7f
lea ecx, [eax + edx*4]
movzx eax, word [eax + 2]
lea eax, [ecx + eax*4]
mov cl, byte [eax]
jmp 0x4c820b
mov eax, dword [esi + 0xc0]
jmp 0x4c80e4
sub dword [esi + 0xb8], edi
mov dword [ebp - 0x28], edi
mov edi, dword [ebp - 0x24]
mov dword [esi], 8
cmp dword [esi + 0xb0], 0
jne 0x4c81ac
mov eax, dword [esi + 0x44]
lea ecx, [edi - 1]
and ecx, eax
lea edx, [edi - 2]
and edx, eax
mov eax, dword [esi + 0x60]
mov cl, byte [eax + ecx]
mov bh, byte [eax + edx]
mov eax, dword [esi + 0xc0]
jmp 0x4c8242
mov ecx, eax
mov eax, dword [ebp - 0x38]
mov edx, dword [eax]
mov eax, ecx
mov ecx, ebx
shr edx, cl
movzx ecx, dl
lea eax, [eax + ecx*4]
movzx ecx, byte [eax]
cmp ecx, 9
jae 0x4c818b
mov edi, dword [ebp - 0x24]
movzx ecx, cl
add ecx, ebx
mov dword [esi + 0xc], ecx
mov cl, byte [eax + 2]
mov eax, dword [esi + 0x60]
mov byte [eax + edi], cl
mov eax, dword [esi + 0xc0]
dec eax
mov dword [esi + 0xc0], eax
inc edi
cmp edi, dword [esi + 0x40]
je 0x4c89f8
mov bh, byte [ebp - 0x20]
dec dword [ebp - 0x28]
je 0x4c8333
mov dword [ebp - 0x24], edi
test eax, eax
je 0x4c8c50
mov byte [ebp - 0x20], cl
movzx eax, cl
movzx ecx, bh
mov edx, dword [esi + 0x6c]
mov cl, byte [edx + ecx + 0x100]
or cl, byte [edx + eax]
mov eax, dword [esi + 0x70]
movzx ecx, cl
mov edx, dword [esi + 0x78]
movzx eax, byte [eax + ecx]
mov eax, dword [edx + eax*4]
mov dword [ebp - 0x14], 0xffffffff
mov ebx, dword [esi + 0xc]
lea ecx, [ebx - 0x12]
cmp ecx, 0xf
jae 0x4c81f0
mov edi, dword [esi + 0x14]
dec edi
mov ecx, ebx
cmp edi, 0xffffffff
je 0x4c8167
mov ebx, dword [esi + 8]
mov edx, dword [ebp - 0x1c]
mov esi, dword [edx + 0x10]
mov edx, ebx
shr edx, 8
mov dword [ebp - 0x2c], eax
mov eax, dword [ebp - 0x1c]
mov dword [eax + 8], edx
movzx edx, byte [esi]
shld edx, ebx, 0x18
mov eax, dword [ebp - 0x1c]
mov dword [eax + 8], edx
lea ebx, [ecx - 8]
mov eax, dword [ebp - 0x1c]
mov dword [eax + 0xc], ebx
mov eax, dword [ebp - 0x1c]
mov dword [eax + 0x14], edi
inc esi
mov eax, dword [ebp - 0x1c]
mov dword [eax + 0x10], esi
mov eax, dword [ebp - 0x2c]
mov esi, dword [ebp - 0x1c]
dec edi
add ecx, 0xffffffe6
cmp ecx, 0xf
mov ecx, ebx
jae 0x4c81f9
jmp 0x4c828f
lea eax, [ebp - 0x14]
mov ecx, dword [ebp - 0x20]
mov edx, dword [ebp - 0x38]
push eax
call fcn.004c8e60
add esp, 4
test eax, eax
je 0x4c8c2a
mov ebx, dword [ebp - 0x14]
mov esi, dword [ebp - 0x1c]
jmp 0x4c8419
sete al
movzx eax, al
mov dword [esi + 0xb4], eax
mov eax, dword [esi + 0x48]
dec eax
mov dword [esi + 0x48], eax
and eax, 3
mov eax, dword [esi + eax*4 + 0x4c]
mov dword [esi + 0x10c], eax
jmp 0x4c8492
mov dword [ebp - 0x28], 0
cmp dword [esi + 0xb8], 0
jle 0x4c86a6
mov dword [esi], 9
cmp dword [esi + 0x10c], 0
mov dword [ebp - 0x24], edi
jns 0x4c830e
cmp dword [esi + 0xc8], 0
je 0x4c8c3a
xor eax, eax
dec eax
mov dword [ebp - 0x14], eax
mov dword [ebp - 0x18], eax
mov eax, dword [esi + 0x98]
movzx ecx, byte [esi + 0x104]
mov edx, esi
mov eax, dword [eax + ecx*4]
mov dword [ebp - 0x20], eax
mov eax, dword [esi + 8]
mov esi, dword [esi + 0xc]
mov ecx, dword [edx + 0x10]
mov dword [ebp - 0x40], ecx
mov ecx, dword [edx + 0x14]
mov dword [ebp - 0x3c], ecx
lea ecx, [esi - 0x12]
mov dword [ebp - 0x2c], eax
mov edx, eax
mov dword [ebp - 0x48], esi
mov eax, esi
cmp ecx, 0xe
ja 0x4c83f1
mov eax, dword [ebp - 0x40]
lea edi, [eax + 1]
mov eax, dword [ebp - 0x3c]
lea ebx, [eax - 1]
mov edx, dword [ebp - 0x2c]
mov ecx, dword [ebp - 0x48]
mov esi, dword [ebp - 0x1c]
cmp ebx, 0xffffffff
je 0x4c82e9
mov eax, edx
shr eax, 8
mov dword [esi + 8], eax
movzx eax, byte [edi - 1]
shrd edx, eax, 8
mov dword [esi + 8], edx
lea eax, [ecx - 8]
mov dword [esi + 0xc], eax
mov dword [esi + 0x14], ebx
mov dword [esi + 0x10], edi
inc edi
dec ebx
add ecx, 0xffffffe6
cmp ecx, 0xf
mov ecx, eax
jb 0x4c83bd
mov ecx, eax
shr edx, cl
movzx ecx, dl
mov esi, dword [ebp - 0x20]
lea ecx, [esi + ecx*4]
movzx ebx, byte [ecx]
cmp ebx, 9
jae 0x4c8971
mov esi, dword [ebp - 0x1c]
movzx edx, bl
add edx, eax
mov dword [esi + 0xc], edx
movzx ebx, word [ecx + 2]
mov ecx, dword [esi + 0xc8]
lea eax, [ecx - 1]
mov dword [esi + 0xc8], eax
mov dword [esi + 0xb4], 0
cmp ebx, 0xf
jbe 0x4c874d
movzx edx, byte [esi + ebx + 0x270]
xor eax, eax
test edx, edx
je 0x4c847a
mov dword [ebp - 0x20], ecx
cmp dl, 0x18
ja 0x4c8bc0
mov ecx, dword [esi + 0xc]
mov edi, 0x20
sub edi, ecx
cmp edi, edx
jb 0x4c86de
mov eax, dword [ebp - 0x38]
mov eax, dword [eax]
shr eax, cl
and eax, dword [edx*4 + 0x6f4350]
add ecx, edx
mov dword [esi + 0xc], ecx
mov cl, byte [esi + 0xf0]
shl eax, cl
add eax, dword [esi + ebx*4 + 0x490]
mov dword [esi + 0x10c], eax
mov edi, dword [ebp - 0x24]
mov ecx, dword [esi + 0x38]
mov ebx, dword [esi + 0x3c]
cmp ebx, ecx
je 0x4c84a6
cmp edi, ecx
cmovl ecx, edi
mov dword [esi + 0x3c], ecx
mov ebx, ecx
mov edx, dword [esi + 0x108]
mov ecx, eax
sub ecx, ebx
mov dword [ebp - 0x28], edx
jg 0x4c8577
mov ecx, edi
sub ecx, eax
and ecx, dword [esi + 0x44]
mov edx, dword [ebp - 0x1c]
mov esi, dword [edx + 0x48]
mov edx, dword [ebp - 0x1c]
mov edx, dword [edx + 0x60]
mov dword [ebp - 0x20], edx
mov edi, esi
and edi, 3
mov ebx, dword [ebp - 0x1c]
mov dword [ebx + edi*4 + 0x4c], eax
mov ebx, dword [ebp - 0x24]
mov edi, dword [ebp - 0x28]
lea edx, [edi + ebx]
inc esi
mov eax, dword [ebp - 0x1c]
mov dword [eax + 0x48], esi
mov esi, dword [ebp - 0x1c]
mov eax, edi
mov edi, edx
mov edx, dword [ebp - 0x20]
sub dword [esi + 0xb8], eax
add eax, ecx
movups xmm0, xmmword [edx + ecx]
movups xmmword [edx + ebx], xmm0
cmp eax, ebx
setg bl
cmp edi, ecx
setg bh
test bl, bh
jne 0x4c87cd
mov esi, dword [esi + 0x40]
cmp edi, esi
jge 0x4c89f0
cmp eax, esi
jge 0x4c89f0
cmp dword [ebp - 0x28], 0x11
mov esi, dword [ebp - 0x1c]
jge 0x4c8548
cmp dword [esi + 0xb8], 0
jle 0x4c86b8
mov dword [ebp - 0x24], edi
jmp 0x4c8806
mov ebx, dword [ebp - 0x24]
add ebx, edx
add ecx, edx
mov eax, dword [ebp - 0x28]
cmp eax, 0x21
jae 0x4c8561
movups xmm0, xmmword [ecx + 0x10]
movups xmmword [ebx + 0x10], xmm0
jmp 0x4c8533
add ebx, 0x10
add ecx, 0x10
add eax, 0xfffffff0
push eax
push ecx
push ebx
call fcn.00553570
add esp, 0xc
jmp 0x4c8533
cmp eax, 0x7ffffffc
jg 0x4c8cb3
mov edx, dword [ebp - 0x50]
sub edx, ecx
mov edi, dword [ebp - 0x28]
jge 0x4c8a72
lea ecx, [edi - 4]
cmp ecx, 0x1b
ja 0x4c8c9f
mov edx, dword [esi + 0x248]
xor ecx, ecx
cmp dword [edx + 0x7c], 0
mov dword [ebp - 0x3c], edx
jne 0x4c8d42
movzx ecx, cl
mov edi, dword [edx + ecx*4 + 0xc4]
mov dword [ebp - 0x44], ecx
mov ecx, dword [edx + ecx*4 + 0x1c4]
mov dword [ebp - 0x20], ecx
mov edx, edi
mov edi, dword [ebp - 0x28]
movzx ecx, byte [edx + edi]
not ebx
sub eax, dword [ebp - 0x50]
add eax, ebx
mov ebx, dword [ecx*4 + 0x6f4350]
and ebx, eax
imul ebx, edi
add ebx, dword [edx + edi*4 + 0x20]
mov dword [ebp - 0x48], ebx
mov ebx, edi
mov edi, esi
mov esi, dword [esi + 0xb4]
add dword [edi + 0x48], esi
mov edi, eax
sar edi, cl
mov esi, dword [ebp - 0x20]
mov esi, dword [esi + 0xc]
mov dword [ebp - 0x2c], edi
cmp edi, esi
jge 0x4c8b25
cmp byte [edx + ebx], 0
je 0x4c8b25
mov ecx, dword [ebp - 0x20]
mov edi, edx
mov eax, dword [ebp - 0x28]
cmp byte [edi + eax], 0
mov esi, dword [ebp - 0x1c]
mov ebx, 0xfffffff4
je 0x4c86ca
mov eax, dword [edi + 0xa4]
test eax, eax
je 0x4c8cbd
mov ebx, dword [ebp - 0x2c]
cmp ebx, dword [ecx + 0xc]
mov edi, dword [ebp - 0x28]
jge 0x4c8ca9
add eax, dword [ebp - 0x48]
movsx edx, word [ecx + 0x18]
mov dword [ebp - 0x40], ecx
mov ecx, dword [esi + 0x60]
add ecx, dword [ebp - 0x24]
cmp ebx, edx
je 0x4c8697
push ebx
push dword [ebp - 0x40]
push edi
push eax
push ecx
call fcn.0054b4d0
add esp, 0x14
test eax, eax
mov ebx, 0xfffffff5
je 0x4c8d12
sub dword [esi + 0xb8], eax
mov edi, dword [ebp - 0x24]
add edi, eax
cmp edi, dword [esi + 0x40]
jl 0x4c8533
jmp 0x4c8c94
push edi
push eax
push ecx
call fcn.00553570
add esp, 0xc
mov eax, edi
jmp 0x4c867e
mov dword [esi], 0xe
xor ebx, ebx
inc ebx
mov dword [ebp - 0x28], 0
jmp 0x4c86c1
mov dword [esi], 0xe
xor ebx, ebx
inc ebx
mov dword [esi + 0x34], edi
mov eax, dword [ebp - 0x28]
mov dword [esi + 4], eax
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.00550b46
mov eax, ebx
add esp, 0x44
pop esi
pop edi
pop ebx
pop ebp
ret
mov eax, dword [esi + 0x14]
dec eax
mov dword [ebp - 0x44], eax
mov dword [ebp - 0x34], ebx
cmp dword [ebp - 0x44], 0xffffffff
je 0x4c8c06
mov ebx, dword [esi + 8]
mov eax, dword [ebp - 0x1c]
mov eax, dword [eax + 0x10]
mov dword [ebp - 0x30], eax
mov eax, ebx
shr eax, 8
mov esi, dword [ebp - 0x1c]
mov dword [esi + 8], eax
mov eax, dword [ebp - 0x30]
movzx eax, byte [eax]
shld eax, ebx, 0x18
mov esi, dword [ebp - 0x1c]
mov dword [esi + 8], eax
add ecx, 0xfffffff8
mov esi, dword [ebp - 0x1c]
mov dword [esi + 0xc], ecx
mov esi, dword [ebp - 0x1c]
mov ebx, dword [ebp - 0x44]
mov dword [esi + 0x14], ebx
inc dword [ebp - 0x30]
mov esi, dword [ebp - 0x1c]
mov ebx, dword [ebp - 0x30]
mov dword [esi + 0x10], ebx
mov esi, dword [ebp - 0x1c]
dec dword [ebp - 0x44]
add edi, 8
cmp edi, edx
mov ebx, dword [ebp - 0x34]
jae 0x4c846c
jmp 0x4c86e8
mov dword [esi + 0x10c], ebx
cmp ebx, 3
jbe 0x4c87a0
lea ecx, [ebx - 0xa]
lea edx, [ebx - 4]
cmp ebx, 0xa
mov esi, 3
mov eax, 0xa
cmovb eax, esi
mov esi, dword [ebp - 0x1c]
cmovb ecx, edx
shl ecx, 2
mov edx, 0x605142
shr edx, cl
and edx, 7
add eax, dword [esi + 0x48]
and eax, 3
mov eax, dword [esi + eax*4 + 0x4c]
lea ecx, [edx + eax]
add ecx, 0xfffffffd
test ecx, ecx
mov eax, SysReAllocString
cmovg eax, ecx
jmp 0x4c8489
mov eax, ebx
not eax
xor edx, edx
inc edx
mov ecx, ebx
shr edx, cl
mov dword [esi + 0xb4], edx
mov ecx, dword [esi + 0x48]
add eax, ecx
and eax, 3
mov eax, dword [esi + eax*4 + 0x4c]
mov dword [esi + 0x10c], eax
sub ecx, edx
mov dword [esi + 0x48], ecx
jmp 0x4c848f
mov edi, dword [ebp - 0x24]
mov eax, dword [esi + 0x40]
mov ecx, dword [ebp - 0x28]
mov ebx, ecx
test ecx, ecx
jle 0x4c87fd
mov ecx, edi
sub ecx, dword [esi + 0x10c]
mov edx, dword [esi + 0x60]
and ecx, dword [esi + 0x44]
mov cl, byte [edx + ecx]
mov byte [edx + edi], cl
inc edi
lea ecx, [ebx - 1]
cmp eax, edi
jne 0x4c87d6
jmp 0x4c8d03
dec ebx
mov dword [ebp - 0x28], ebx
jmp 0x4c8533
mov dword [esi], 7
cmp dword [esi + 0xc4], 0
je 0x4c8d26
mov dword [ebp - 0x14], 0xffffffff
mov edx, dword [esi + 8]
mov eax, dword [esi + 0xc]
mov ecx, dword [esi + 0x10]
mov dword [ebp - 0x3c], ecx
mov ecx, dword [esi + 0x14]
mov dword [ebp - 0x44], ecx
mov ecx, dword [esi + 0x68]
mov dword [ebp - 0x20], ecx
lea ecx, [eax - 0x12]
mov dword [ebp - 0x48], edx
mov dword [ebp - 0x40], eax
cmp ecx, 0xe
ja 0x4c888c
mov eax, dword [ebp - 0x3c]
lea edi, [eax + 1]
mov eax, dword [ebp - 0x44]
lea ebx, [eax - 1]
mov edx, dword [ebp - 0x48]
mov ecx, dword [ebp - 0x40]
cmp ebx, 0xffffffff
je 0x4c8d83
mov eax, edx
shr eax, 8
mov dword [esi + 8], eax
movzx eax, byte [edi - 1]
shrd edx, eax, 8
mov dword [esi + 8], edx
lea eax, [ecx - 8]
mov dword [esi + 0xc], eax
mov dword [esi + 0x14], ebx
mov dword [esi + 0x10], edi
inc edi
dec ebx
add ecx, 0xffffffe6
cmp ecx, 0xf
mov ecx, eax
jb 0x4c8858
mov ecx, eax
shr edx, cl
movzx ecx, dl
mov edi, dword [ebp - 0x20]
lea ecx, [edi + ecx*4]
movzx ebx, byte [ecx]
cmp ebx, 9
jae 0x4c89cc
movzx edx, bl
add edx, eax
mov dword [esi + 0xc], edx
movzx eax, word [ecx + 2]
mov dword [ebp - 0x14], eax
movzx ecx, byte [eax*8 + 0x6f0372]
movzx ebx, byte [eax*8 + 0x6f0373]
movsx edx, byte [eax*8 + 0x6f0374]
mov dword [ebp - 0x2c], edx
movzx edi, byte [eax*8 + 0x6f0375]
movzx edx, word [eax*8 + 0x6f0376]
mov dword [ebp - 0x28], edx
movzx eax, word [eax*8 + 0x6f0378]
mov dword [ebp - 0x20], eax
mov eax, dword [ebp - 0x2c]
mov dword [esi + 0x10c], eax
mov dword [esi + 0xb4], edi
mov eax, dword [esi + 0x74]
mov al, byte [eax + edi]
mov byte [esi + 0x104], al
xor eax, eax
mov edi, 0
test ecx, ecx
jne 0x4c8998
test ebx, ebx
jne 0x4c8942
add eax, dword [ebp - 0x20]
mov dword [esi + 0x108], eax
dec dword [esi + 0xc4]
add edi, dword [ebp - 0x28]
jne 0x4c81b7
mov dword [ebp - 0x28], 0
mov edi, dword [ebp - 0x24]
jmp case.0x4c806a.9
mov eax, ebx
mov ecx, dword [esi + 0xc]
mov ebx, 0x20
sub ebx, ecx
mov dword [ebp - 0x2c], eax
cmp ebx, eax
jb 0x4c8da8
mov eax, dword [ebp - 0x38]
mov eax, dword [eax]
shr eax, cl
mov ebx, dword [ebp - 0x2c]
and eax, dword [ebx*4 + 0x6f4350]
add ecx, ebx
mov dword [esi + 0xc], ecx
jmp 0x4c891b
add eax, 8
mov esi, dword [ebp - 0x1c]
mov dword [esi + 0xc], eax
shr edx, 8
and edx, dword [ebx*4 + 0x6f4330]
and edx, 0x7f
lea edx, [ecx + edx*4]
movzx ecx, word [ecx + 2]
lea ecx, [edx + ecx*4]
mov bl, byte [ecx]
jmp 0x4c840d
mov edx, ecx
mov dword [ebp - 0x2c], ebx
mov ecx, dword [esi + 0xc]
mov edi, 0x20
sub edi, ecx
cmp edi, edx
mov ebx, edx
jb 0x4c8e02
mov edi, dword [ebp - 0x38]
mov edi, dword [edi]
shr edi, cl
and edi, dword [ebx*4 + 0x6f4350]
add ecx, ebx
mov dword [esi + 0xc], ecx
mov ebx, dword [ebp - 0x2c]
jmp 0x4c8917
add eax, 8
mov dword [esi + 0xc], eax
shr edx, 8
and edx, dword [ebx*4 + 0x6f4330]
and edx, 0x7f
lea edx, [ecx + edx*4]
movzx ecx, word [ecx + 2]
lea ecx, [edx + ecx*4]
mov bl, byte [ecx]
jmp 0x4c88a5
mov esi, dword [ebp - 0x1c]
jmp 0x4c87cd
mov dword [esi], 0xd
dec dword [ebp - 0x28]
jmp 0x4c86be
mov eax, dword [edi + 4]
mov dword [ebp - 0x2c], eax
lea esi, [eax - 1]
xor ecx, ecx
dec ecx
mov dword [ebp - 0x20], ecx
mov eax, dword [ebp - 0x20]
mov ecx, eax
add cl, 9
mov ebx, esi
sar ebx, cl
inc eax
mov dword [ebp - 0x20], eax
test ebx, ebx
jne 0x4c8a15
mov ecx, dword [ebp - 0x20]
mov dword [edi + 0x98], ecx
cmp dword [ebp - 0x2c], 0
jle 0x4c8a86
xor eax, eax
inc eax
mov ecx, dword [ebp - 0x20]
shl eax, cl
mov dword [ebp - 0x2c], eax
xor ebx, ebx
xor eax, eax
dec ebx
mov ecx, ebx
inc ebx
cmp dword [edi + ecx*4 + 0x60], eax
jl 0x4c8a48
mov esi, eax
mov ecx, dword [ebp - 0x20]
sar esi, cl
mov byte [edi + esi + 0x9c], bl
add eax, dword [ebp - 0x2c]
cmp eax, dword [edi + 4]
jl 0x4c8a47
mov eax, dword [edi + 0x98]
mov dword [ebp - 0x20], eax
jmp 0x4c8a86
mov edi, dword [esi + 0x24c]
mov ecx, dword [edi + 0x98]
mov dword [ebp - 0x20], ecx
cmp ecx, 0xffffffff
je 0x4c8a06
mov eax, edx
mov ecx, dword [ebp - 0x20]
sar eax, cl
movzx eax, byte [edi + eax + 0x9c]
dec eax
mov ecx, eax
inc eax
cmp dword [edi + ecx*4 + 0x60], edx
jle 0x4c8a96
mov ecx, dword [ebp - 0x28]
add ecx, edx
cmp dword [edi + 4], ecx
jl 0x4c8b08
mov esi, dword [ebp - 0x1c]
mov ebx, dword [esi + 0x48]
mov dword [ebp - 0x2c], ebx
and ebx, 3
mov dword [ebp - 0x20], ebx
mov ebx, dword [esi + 0x10c]
mov ecx, dword [ebp - 0x20]
mov dword [esi + ecx*4 + 0x4c], ebx
mov ecx, dword [ebp - 0x2c]
inc ecx
mov dword [esi + 0x48], ecx
mov ecx, dword [ebp - 0x28]
sub dword [esi + 0xb8], ecx
mov dword [edi + 8], eax
sub edx, dword [edi + eax*4 + 0x58]
mov dword [edi + 0xc], edx
mov dword [edi + 0x10], ecx
mov dword [edi + 0x14], 0
mov ecx, esi
mov edi, dword [ebp - 0x24]
mov edx, edi
call fcn.0067fa90
add edi, eax
mov eax, edi
cmp edi, dword [esi + 0x40]
jge 0x4c8b12
mov edi, eax
mov esi, dword [ebp - 0x1c]
jmp 0x4c8533
mov ebx, 0xffffffee
jmp 0x4c86ca
mov esi, dword [ebp - 0x1c]
mov dword [esi], 0xf
xor ebx, ebx
inc ebx
mov edi, eax
jmp 0x4c86c1
mov dword [ebp - 0x34], edx
mov edi, dword [ebp - 0x3c]
movzx edi, byte [edi + 0xc0]
mov dword [ebp - 0x30], edi
cmp edi, 2
jae 0x4c8b45
mov ecx, dword [ebp - 0x20]
mov edi, dword [ebp - 0x34]
jmp 0x4c861c
xor edi, edi
inc edi
shl edi, cl
and edi, 0xfffffffe
imul esi, edi
sub eax, esi
xor edx, edx
jmp 0x4c8b64
mov esi, eax
mov ecx, edx
inc ecx
mov eax, esi
mov edx, ecx
cmp dword [ebp - 0x30], ecx
je 0x4c8b3a
cmp dword [ebp - 0x44], edx
je 0x4c8b56
mov ecx, dword [ebp - 0x3c]
mov edi, dword [ecx + edx*4 + 0xc4]
mov ecx, dword [ebp - 0x28]
movzx ecx, byte [edi + ecx]
test ecx, ecx
je 0x4c8b56
mov esi, dword [ebp - 0x3c]
mov esi, dword [esi + edx*4 + 0x1c4]
xor ebx, ebx
inc ebx
shl ebx, cl
and ebx, 0xfffffffe
mov dword [ebp - 0x40], esi
imul ebx, dword [esi + 0xc]
mov esi, eax
sub esi, ebx
jge 0x4c8b58
mov edx, dword [ecx*4 + 0x6f4350]
and edx, eax
sar eax, cl
mov ecx, dword [ebp - 0x28]
imul edx, ecx
add edx, dword [edi + ecx*4 + 0x20]
mov dword [ebp - 0x48], edx
mov dword [ebp - 0x2c], eax
mov ecx, dword [ebp - 0x40]
jmp 0x4c861c
lea eax, [ebp - 0x18]
push eax
push edx
push dword [ebp - 0x38]
call fcn.00698790
add esp, 0xc
test eax, eax
je 0x4c8bf9
mov eax, dword [ebp - 0x18]
mov esi, dword [ebp - 0x1c]
jmp 0x4c847a
mov eax, dword [ebp - 0x1c]
mov ecx, dword [ebp - 0x48]
mov dword [eax + 8], ecx
mov ecx, dword [ebp - 0x40]
mov dword [eax + 0xc], ecx
mov ecx, dword [ebp - 0x3c]
mov dword [eax + 0x10], ecx
mov ecx, dword [ebp - 0x44]
jmp 0x4c8c27
mov eax, dword [ebp - 0x1c]
mov eax, dword [eax + 0xc8]
inc eax
mov dword [ebp - 0x20], eax
mov eax, dword [ebp - 0x1c]
mov ecx, dword [ebp - 0x20]
mov dword [eax + 0xc8], ecx
mov ecx, dword [ebp - 0x2c]
mov dword [eax + 8], ecx
mov ecx, dword [ebp - 0x48]
mov dword [eax + 0xc], ecx
mov ecx, dword [ebp - 0x40]
mov dword [eax + 0x10], ecx
mov ecx, dword [ebp - 0x3c]
mov dword [eax + 0x14], ecx
mov ebx, 2
mov esi, dword [ebp - 0x1c]
mov edi, dword [ebp - 0x24]
jmp 0x4c86c1
mov ecx, esi
call fcn.006801e0
test eax, eax
jne 0x4c8366
mov ebx, 2
jmp 0x4c8c32
mov bl, cl
mov ecx, esi
call fcn.0067fe90
test eax, eax
je 0x4c8c2a
mov esi, dword [ebp - 0x1c]
cmp dword [esi + 0xb0], 0
mov ecx, ebx
je 0x4c824d
jmp 0x4c81c0
mov ecx, esi
call fcn.0067fe90
test eax, eax
je 0x4c8c2a
mov esi, dword [ebp - 0x1c]
cmp dword [esi + 0xb0], 0
jne 0x4c80ef
jmp 0x4c81c0
mov dword [esi], 0xf
jmp 0x4c86be
mov ebx, 0xfffffff4
jmp 0x4c86ca
mov ebx, 0xfffffff5
jmp 0x4c86ca
mov ebx, 0xfffffff0
jmp 0x4c86ca
mov ebx, 0xffffffed
jmp 0x4c86ca
mov ebx, 0xffffffe1
jmp 0x4c86ca
add ecx, 8
mov esi, dword [ebp - 0x1c]
mov dword [esi + 0xc], ecx
shr edx, 8
and edx, dword [ebx*4 + 0x6f4330]
and edx, 0x7f
lea edx, [eax + edx*4]
movzx eax, word [eax + 2]
lea eax, [edx + eax*4]
mov bl, byte [eax]
jmp 0x4c80af
mov eax, dword [eax + 4]
mov dword [ebp - 0x50], eax
jmp 0x4c804a
mov dword [esi], 0x10
dec ebx
mov dword [ebp - 0x28], ebx
jmp 0x4c86be
xor eax, eax
cmp dword [esi + 0x10c], 0x79
jge 0x4c867e
jmp 0x4c86ca
mov ecx, esi
call fcn.0067fb80
test eax, eax
mov edi, dword [ebp - 0x24]
jne 0x4c8806
mov ebx, 2
jmp 0x4c86c1
mov ecx, dword [esi + 0x44]
mov esi, dword [ebp - 0x24]
lea edx, [esi - 2]
and edx, ecx
dec esi
and esi, ecx
mov ecx, dword [ebp - 0x1c]
mov ecx, dword [ecx + 0x60]
movzx edx, byte [ecx + edx]
movzx ecx, byte [ecx + esi]
mov esi, dword [ebp - 0x1c]
mov esi, dword [esi + 0x6c]
mov dl, byte [esi + edx + 0x100]
or dl, byte [esi + ecx]
mov esi, dword [ebp - 0x1c]
movzx ecx, dl
mov edx, dword [ebp - 0x3c]
mov cl, byte [edx + ecx + 0x80]
jmp 0x4c85b1
lea eax, [ebp - 0x14]
mov ecx, dword [ebp - 0x20]
mov edx, dword [ebp - 0x38]
push eax
call fcn.004c8e60
add esp, 4
test eax, eax
je 0x4c8c2a
mov eax, dword [ebp - 0x14]
mov esi, dword [ebp - 0x1c]
jmp 0x4c88b4
mov eax, dword [esi + 0x14]
dec eax
mov dword [ebp - 0x30], eax
mov esi, dword [ebp - 0x1c]
cmp dword [ebp - 0x30], 0xffffffff
je 0x4c8bdf
mov eax, dword [esi + 8]
mov dword [ebp - 0x34], eax
mov edx, dword [esi + 0x10]
mov dword [ebp - 0x4c], edx
mov eax, dword [ebp - 0x34]
shr eax, 8
mov dword [esi + 8], eax
movzx eax, byte [edx]
mov edx, dword [ebp - 0x34]
shld eax, edx, 0x18
mov dword [esi + 8], eax
add ecx, 0xfffffff8
mov dword [esi + 0xc], ecx
mov edx, dword [ebp - 0x30]
mov dword [esi + 0x14], edx
mov edx, dword [ebp - 0x4c]
inc edx
mov dword [esi + 0x10], edx
dec dword [ebp - 0x30]
add ebx, 8
cmp ebx, dword [ebp - 0x2c]
jae 0x4c895e
jmp 0x4c8db2
mov dword [ebp - 0x34], edi
mov esi, dword [esi + 0x14]
dec esi
mov dword [ebp - 0x30], esi
mov esi, dword [ebp - 0x1c]
mov dword [ebp - 0x4c], ebx
cmp dword [ebp - 0x30], 0xffffffff
je 0x4c8bdf
mov ebx, dword [esi + 8]
mov edx, dword [esi + 0x10]
mov edi, ebx
shr edi, 8
mov dword [esi + 8], edi
movzx edi, byte [edx]
shld edi, ebx, 0x18
mov dword [esi + 8], edi
add ecx, 0xfffffff8
mov dword [esi + 0xc], ecx
mov ebx, dword [ebp - 0x30]
mov dword [esi + 0x14], ebx
inc edx
mov dword [esi + 0x10], edx
dec ebx
mov dword [ebp - 0x30], ebx
mov edx, dword [ebp - 0x34]
add edx, 8
mov ebx, dword [ebp - 0x4c]
mov dword [ebp - 0x34], edx
cmp edx, ebx
jae 0x4c89b6
jmp 0x4c8e0f