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

Disassembly:
sub esp, 0x28
mov eax, dword [esp + 0x2c]
push ebx
push ebp
push esi
mov ecx, dword [eax + 0x74]
mov edx, dword [eax + 0x7c]
mov ebp, dword [eax + 0x68]
mov esi, dword [eax]
mov ebx, dword [eax + 4]
mov dword [esp + 0x14], ecx
mov ecx, dword [eax + 0x78]
mov dword [esp + 0x1c], edx
push edi
mov edi, dword [eax + 8]
lea ecx, [ecx + edx*4]
mov dword [esp + 0x10], ebp
add ecx, 0xc
mov dword [esp + 0x28], 0
mov dword [esp + 0x14], ecx
mov edx, 1
mov ecx, dword [esp + 0x40]
shl edx, cl
mov ecx, edx
sar ecx, 1
or ecx, edx
test dword [eax + 0x80], 0xfffffffc
mov dword [esp + 0x1c], ecx
jbe 0x4c828c
mov ecx, dword [esp + 0x20]
mov ebp, dword [esp + 0x18]
lea ecx, [ecx + ecx*2]
shl ecx, 2
mov dword [esp + 0x30], ecx
mov ecx, dword [esp + 0x14]
xor edx, edx
mov dword [esp + 0x2c], edx
cmp dword [esp + 0x20], edx
jbe 0x4c825d
mov ebp, dword [ecx]
mov dword [esp + 0x40], ebp
test ebp, ebp
je 0x4c823c
test ebp, 0x200010
jne 0x4c78b7
mov edx, ebp
and edx, 0x1ef
je 0x4c78b7
mov ecx, dword [eax + 0x6c]
movzx ecx, byte [ecx + edx]
add ecx, 7
mov edx, dword [eax + ecx*4]
lea ecx, [eax + ecx*4]
mov dword [esp + 0x10], ecx
mov ecx, esi
shr ecx, 0x10
mov ebp, dword [edx]
sub ebx, ebp
cmp ecx, ebp
jae 0x4c764c
cmp ebx, ebp
mov ebx, ebp
jae 0x4c75df
mov ebp, dword [edx + 4]
mov ecx, dword [edx + 8]
jmp 0x4c75f2
xor ecx, ecx
cmp dword [edx + 4], ecx
sete cl
mov dword [esp + 0x24], ecx
mov ecx, dword [edx + 0xc]
mov ebp, dword [esp + 0x24]
mov edx, dword [esp + 0x10]
mov dword [edx], ecx
test edi, edi
jne 0x4c763a
mov ecx, dword [eax + 0x10]
movzx edx, byte [ecx + 1]
lea edi, [ecx + 1]
cmp byte [ecx], 0xff
jne 0x4c762d
cmp edx, 0x8f
jbe 0x4c761e
add esi, 0xff00
inc dword [eax + 0xc]
jmp 0x4c7635
shl edx, 9
mov dword [eax + 0x10], edi
add esi, edx
mov edi, 7
jmp 0x4c763a
shl edx, 8
mov dword [eax + 0x10], edi
add esi, edx
mov edi, 8
add ebx, ebx
add esi, esi
dec edi
cmp ebx, 0x8000
jb 0x4c75f8
jmp 0x4c76d4
mov ecx, ebp
shl ecx, 0x10
sub esi, ecx
test ebx, 0x8000
jne 0x4c76d1
cmp ebx, ebp
jae 0x4c7674
xor ecx, ecx
cmp dword [edx + 4], ecx
sete cl
mov dword [esp + 0x24], ecx
mov ecx, dword [edx + 0xc]
mov ebp, dword [esp + 0x24]
jmp 0x4c767a
mov ebp, dword [edx + 4]
mov ecx, dword [edx + 8]
mov edx, dword [esp + 0x10]
mov dword [edx], ecx
test edi, edi
jne 0x4c76c2
mov ecx, dword [eax + 0x10]
movzx edx, byte [ecx + 1]
lea edi, [ecx + 1]
cmp byte [ecx], 0xff
jne 0x4c76b5
cmp edx, 0x8f
jbe 0x4c76a6
add esi, 0xff00
inc dword [eax + 0xc]
jmp 0x4c76bd
shl edx, 9
mov dword [eax + 0x10], edi
add esi, edx
mov edi, 7
jmp 0x4c76c2
shl edx, 8
mov dword [eax + 0x10], edi
add esi, edx
mov edi, 8
add ebx, ebx
add esi, esi
dec edi
cmp ebx, 0x8000
jb 0x4c7680
jmp 0x4c76d4
mov ebp, dword [edx + 4]
test ebp, ebp
mov ebp, dword [esp + 0x40]
je 0x4c78ad
mov ecx, dword [esp + 0x14]
mov edx, dword [ecx - 4]
mov ecx, dword [ecx + 4]
shr edx, 2
and ecx, 0x80000
and edx, 0x20000
or edx, ecx
mov ecx, ebp
and ecx, 0x400000
shr edx, 1
or edx, ecx
mov ecx, ebp
and ecx, 0x40000
shr edx, 2
or edx, ecx
and ebp, 0xaa
shr edx, 0xe
or edx, ebp
movzx ecx, byte [edx + 0x54b288]
mov dword [esp + 0x34], ecx
movzx ecx, byte [edx + 0x54b188]
add ecx, 7
mov edx, dword [eax + ecx*4]
lea ecx, [eax + ecx*4]
mov dword [esp + 0x10], ecx
mov ecx, esi
shr ecx, 0x10
mov ebp, dword [edx]
sub ebx, ebp
cmp ecx, ebp
jae 0x4c77ca
cmp ebx, ebp
mov ebx, ebp
jae 0x4c775d
mov ebp, dword [edx + 4]
mov ecx, dword [edx + 8]
jmp 0x4c7770
xor ecx, ecx
cmp dword [edx + 4], ecx
sete cl
mov dword [esp + 0x24], ecx
mov ecx, dword [edx + 0xc]
mov ebp, dword [esp + 0x24]
mov edx, dword [esp + 0x10]
mov dword [edx], ecx
test edi, edi
jne 0x4c77b8
mov ecx, dword [eax + 0x10]
movzx edx, byte [ecx + 1]
lea edi, [ecx + 1]
cmp byte [ecx], 0xff
jne 0x4c77ab
cmp edx, 0x8f
jbe 0x4c779c
add esi, 0xff00
inc dword [eax + 0xc]
jmp 0x4c77b3
shl edx, 9
mov dword [eax + 0x10], edi
add esi, edx
mov edi, 7
jmp 0x4c77b8
shl edx, 8
mov dword [eax + 0x10], edi
add esi, edx
mov edi, 8
add ebx, ebx
add esi, esi
dec edi
cmp ebx, 0x8000
jb 0x4c7776
jmp 0x4c7854
mov ecx, ebp
shl ecx, 0x10
sub esi, ecx
test ebx, 0x8000
jne 0x4c7851
cmp ebx, ebp
jae 0x4c77f2
xor ecx, ecx
cmp dword [edx + 4], ecx
sete cl
mov dword [esp + 0x24], ecx
mov ecx, dword [edx + 0xc]
mov ebp, dword [esp + 0x24]
jmp 0x4c77f8
mov ebp, dword [edx + 4]
mov ecx, dword [edx + 8]
mov edx, dword [esp + 0x10]
mov dword [edx], ecx
mov edi, edi
test edi, edi
jne 0x4c7842
mov ecx, dword [eax + 0x10]
movzx edx, byte [ecx + 1]
lea edi, [ecx + 1]
cmp byte [ecx], 0xff
jne 0x4c7835
cmp edx, 0x8f
jbe 0x4c7826
add esi, 0xff00
inc dword [eax + 0xc]
jmp 0x4c783d
shl edx, 9
mov dword [eax + 0x10], edi
add esi, edx
mov edi, 7
jmp 0x4c7842
shl edx, 8
mov dword [eax + 0x10], edi
add esi, edx
mov edi, 8
add ebx, ebx
add esi, esi
dec edi
cmp ebx, 0x8000
jb 0x4c7800
jmp 0x4c7854
mov ebp, dword [edx + 4]
xor ebp, dword [esp + 0x34]
mov ecx, dword [esp + 0x1c]
mov dword [esp + 0x24], ebp
je 0x4c7864
neg ecx
mov edx, dword [esp + 0x18]
mov dword [edx], ecx
mov ecx, ebp
mov edx, dword [esp + 0x14]
mov ebp, dword [esp + 0x40]
shl ecx, 0x13
or ecx, 0x10
or dword [edx - 4], 0x20
or ebp, ecx
or dword [edx + 4], 8
mov ecx, dword [eax + 0x7c]
lea ecx, [ecx*4 + 8]
sub edx, ecx
mov ecx, dword [esp + 0x24]
shl ecx, 0x1f
or ecx, 0x10000
or dword [edx], ecx
or dword [edx - 4], 0x20000
or dword [edx + 4], 0x8000
or ebp, 0x200000
mov dword [esp + 0x40], ebp
test ebp, 0x1000080
jne 0x4c7bdc
test ebp, 0xf78
je 0x4c7bdc
mov ecx, dword [eax + 0x6c]
mov edx, ebp
shr edx, 3
and edx, 0x1ef
movzx ecx, byte [edx + ecx]
add ecx, 7
mov edx, dword [eax + ecx*4]
lea ecx, [eax + ecx*4]
mov dword [esp + 0x10], ecx
mov ecx, esi
shr ecx, 0x10
mov ebp, dword [edx]
sub ebx, ebp
cmp ecx, ebp
jae 0x4c797a
cmp ebx, ebp
mov ebx, ebp
jae 0x4c790d
mov ebp, dword [edx + 4]
mov ecx, dword [edx + 8]
jmp 0x4c7920
xor ecx, ecx
cmp dword [edx + 4], ecx
sete cl
mov dword [esp + 0x24], ecx
mov ecx, dword [edx + 0xc]
mov ebp, dword [esp + 0x24]
mov edx, dword [esp + 0x10]
mov dword [edx], ecx
test edi, edi
jne 0x4c7968
mov ecx, dword [eax + 0x10]
movzx edx, byte [ecx + 1]
lea edi, [ecx + 1]
cmp byte [ecx], 0xff
jne 0x4c795b
cmp edx, 0x8f
jbe 0x4c794c
add esi, 0xff00
inc dword [eax + 0xc]
jmp 0x4c7963
shl edx, 9
mov dword [eax + 0x10], edi
add esi, edx
mov edi, 7
jmp 0x4c7968
shl edx, 8
mov dword [eax + 0x10], edi
add esi, edx
mov edi, 8
add ebx, ebx
add esi, esi
dec edi
cmp ebx, 0x8000
jb 0x4c7926
jmp 0x4c7a04
mov ecx, ebp
shl ecx, 0x10
sub esi, ecx
test ebx, 0x8000
jne 0x4c7a01
cmp ebx, ebp
jae 0x4c79a2
xor ecx, ecx
cmp dword [edx + 4], ecx
sete cl
mov dword [esp + 0x24], ecx
mov ecx, dword [edx + 0xc]
mov ebp, dword [esp + 0x24]
jmp 0x4c79a8
mov ebp, dword [edx + 4]
mov ecx, dword [edx + 8]
mov edx, dword [esp + 0x10]
mov dword [edx], ecx
mov edi, edi
test edi, edi
jne 0x4c79f2
mov ecx, dword [eax + 0x10]
movzx edx, byte [ecx + 1]
lea edi, [ecx + 1]
cmp byte [ecx], 0xff
jne 0x4c79e5
cmp edx, 0x8f
jbe 0x4c79d6
add esi, 0xff00
inc dword [eax + 0xc]
jmp 0x4c79ed
shl edx, 9
mov dword [eax + 0x10], edi
add esi, edx
mov edi, 7
jmp 0x4c79f2
shl edx, 8
mov dword [eax + 0x10], edi
add esi, edx
mov edi, 8
add ebx, ebx
add esi, esi
dec edi
cmp ebx, 0x8000
jb 0x4c79b0
jmp 0x4c7a04
mov ebp, dword [edx + 4]
test ebp, ebp
mov ebp, dword [esp + 0x40]
je 0x4c7bd2
mov ecx, dword [esp + 0x14]
mov edx, dword [ecx - 4]
mov ecx, dword [ecx + 4]
shr edx, 2
and ecx, 0x400000
and edx, 0x100000
or edx, ecx
mov ecx, ebp
and ecx, 0x2000000
shr edx, 1
or edx, ecx
mov ecx, ebp
and ecx, 0x80000
shr edx, 4
or edx, ecx
and ebp, 0x550
shr edx, 0xc
or edx, ebp
shr edx, 3
movzx ecx, byte [edx + 0x54b288]
mov dword [esp + 0x34], ecx
movzx ecx, byte [edx + 0x54b188]
add ecx, 7
mov edx, dword [eax + ecx*4]
lea ecx, [eax + ecx*4]
mov dword [esp + 0x10], ecx
mov ecx, esi
shr ecx, 0x10
mov ebp, dword [edx]
sub ebx, ebp
cmp ecx, ebp
jae 0x4c7b08
cmp ebx, ebp
mov ebx, ebp
jae 0x4c7a94
mov ecx, dword [edx + 4]
mov dword [esp + 0x24], ecx
mov ecx, dword [edx + 8]
jmp 0x4c7aa3
xor ecx, ecx
cmp dword [edx + 4], ecx
sete cl
mov dword [esp + 0x24], ecx
mov ecx, dword [edx + 0xc]
mov edx, dword [esp + 0x10]
mov dword [edx], ecx
lea esp, [esp]
test edi, edi
jne 0x4c7af2
mov ecx, dword [eax + 0x10]
movzx edx, byte [ecx + 1]
lea edi, [ecx + 1]
cmp byte [ecx], 0xff
jne 0x4c7ae5
cmp edx, 0x8f
jbe 0x4c7ad6
add esi, 0xff00
inc dword [eax + 0xc]
jmp 0x4c7aed
shl edx, 9
mov dword [eax + 0x10], edi
add esi, edx
mov edi, 7
jmp 0x4c7af2
shl edx, 8
mov dword [eax + 0x10], edi
add esi, edx
mov edi, 8
add ebx, ebx
add esi, esi
dec edi
cmp ebx, 0x8000
jb 0x4c7ab0
mov ecx, dword [esp + 0x24]
jmp 0x4c7b98
mov ecx, ebp
shl ecx, 0x10
sub esi, ecx
test ebx, 0x8000
jne 0x4c7b95
cmp ebx, ebp
jae 0x4c7b2c
xor ecx, ecx
cmp dword [edx + 4], ecx
sete cl
mov dword [esp + 0x24], ecx
mov ecx, dword [edx + 0xc]
jmp 0x4c7b36
mov ecx, dword [edx + 4]
mov dword [esp + 0x24], ecx
mov ecx, dword [edx + 8]
mov edx, dword [esp + 0x10]
mov dword [edx], ecx
lea esp, [esp]
test edi, edi
jne 0x4c7b82
mov ecx, dword [eax + 0x10]
movzx edx, byte [ecx + 1]
lea edi, [ecx + 1]
cmp byte [ecx], 0xff
jne 0x4c7b75
cmp edx, 0x8f
jbe 0x4c7b66
add esi, 0xff00
inc dword [eax + 0xc]
jmp 0x4c7b7d
shl edx, 9
mov dword [eax + 0x10], edi
add esi, edx
mov edi, 7
jmp 0x4c7b82
shl edx, 8
mov dword [eax + 0x10], edi
add esi, edx
mov edi, 8
add ebx, ebx
add esi, esi
dec edi
cmp ebx, 0x8000
jb 0x4c7b40
mov ecx, dword [esp + 0x24]
jmp 0x4c7b98
mov ecx, dword [edx + 4]
xor ecx, dword [esp + 0x34]
mov edx, dword [esp + 0x1c]
je 0x4c7ba4
neg edx
mov ebp, dword [esp + 0x18]
mov eax, dword [esp + 0x20]
shl ecx, 0x16
or ecx, 0x80
mov dword [ebp + eax*4], edx
mov edx, dword [esp + 0x14]
mov ebp, dword [esp + 0x40]
mov eax, dword [esp + 0x3c]
or ebp, ecx
or dword [edx - 4], 0x100
or dword [edx + 4], 0x40
or ebp, 0x1000000
mov dword [esp + 0x40], ebp
test ebp, 0x8000400
jne 0x4c7ef0
test ebp, 0x7bc0
je 0x4c7ef0
mov ecx, dword [eax + 0x6c]
mov edx, ebp
shr edx, 6
and edx, 0x1ef
movzx ecx, byte [edx + ecx]
add ecx, 7
mov edx, dword [eax + ecx*4]
lea ecx, [eax + ecx*4]
mov dword [esp + 0x10], ecx
mov ecx, esi
shr ecx, 0x10
mov ebp, dword [edx]
sub ebx, ebp
cmp ecx, ebp
jae 0x4c7c9b
cmp ebx, ebp
mov ebx, ebp
jae 0x4c7c2e
mov ebp, dword [edx + 4]
mov ecx, dword [edx + 8]
jmp 0x4c7c41
xor ecx, ecx
cmp dword [edx + 4], ecx
sete cl
mov dword [esp + 0x24], ecx
mov ecx, dword [edx + 0xc]
mov ebp, dword [esp + 0x24]
mov edx, dword [esp + 0x10]
mov dword [edx], ecx
test edi, edi
jne 0x4c7c89
mov ecx, dword [eax + 0x10]
movzx edx, byte [ecx + 1]
lea edi, [ecx + 1]
cmp byte [ecx], 0xff
jne 0x4c7c7c
cmp edx, 0x8f
jbe 0x4c7c6d
add esi, 0xff00
inc dword [eax + 0xc]
jmp 0x4c7c84
shl edx, 9
mov dword [eax + 0x10], edi
add esi, edx
mov edi, 7
jmp 0x4c7c89
shl edx, 8
mov dword [eax + 0x10], edi
add esi, edx
mov edi, 8
add ebx, ebx
add esi, esi
dec edi
cmp ebx, 0x8000
jb 0x4c7c47
jmp 0x4c7d24
mov ecx, ebp
shl ecx, 0x10
sub esi, ecx
test ebx, 0x8000
jne 0x4c7d21
cmp ebx, ebp
jae 0x4c7cc3
xor ecx, ecx
cmp dword [edx + 4], ecx
sete cl
mov dword [esp + 0x24], ecx
mov ecx, dword [edx + 0xc]
mov ebp, dword [esp + 0x24]
jmp 0x4c7cc9
mov ebp, dword [edx + 4]
mov ecx, dword [edx + 8]
mov edx, dword [esp + 0x10]
mov dword [edx], ecx
nop
test edi, edi
jne 0x4c7d12
mov ecx, dword [eax + 0x10]
movzx edx, byte [ecx + 1]
lea edi, [ecx + 1]
cmp byte [ecx], 0xff
jne 0x4c7d05
cmp edx, 0x8f
jbe 0x4c7cf6
add esi, 0xff00
inc dword [eax + 0xc]
jmp 0x4c7d0d
shl edx, 9
mov dword [eax + 0x10], edi
add esi, edx
mov edi, 7
jmp 0x4c7d12
shl edx, 8
mov dword [eax + 0x10], edi
add esi, edx
mov edi, 8
add ebx, ebx
add esi, esi
dec edi
cmp ebx, 0x8000
jb 0x4c7cd0
jmp 0x4c7d24
mov ebp, dword [edx + 4]
test ebp, ebp
mov ebp, dword [esp + 0x40]
je 0x4c7ee6
mov ecx, dword [esp + 0x14]
mov edx, dword [ecx - 4]
mov ecx, dword [ecx + 4]
shr edx, 2
and ecx, 0x2000000
and edx, 0x800000
or edx, ecx
mov ecx, ebp
and ecx, 0x10000000
shr edx, 1
or edx, ecx
mov ecx, ebp
and ecx, 0x400000
shr edx, 4
or edx, ecx
and ebp, 0x2a80
shr edx, 0xc
or edx, ebp
shr edx, 6
movzx ecx, byte [edx + 0x54b288]
mov dword [esp + 0x34], ecx
movzx ecx, byte [edx + 0x54b188]
add ecx, 7
mov edx, dword [eax + ecx*4]
lea ecx, [eax + ecx*4]
mov dword [esp + 0x10], ecx
mov ecx, esi
shr ecx, 0x10
mov ebp, dword [edx]
sub ebx, ebp
cmp ecx, ebp
jae 0x4c7e1d
cmp ebx, ebp
mov ebx, ebp
jae 0x4c7db0
mov ecx, dword [edx + 4]
mov dword [esp + 0x24], ecx
mov ecx, dword [edx + 8]
jmp 0x4c7dbf
xor ecx, ecx
cmp dword [edx + 4], ecx
sete cl
mov dword [esp + 0x24], ecx
mov ecx, dword [edx + 0xc]
mov edx, dword [esp + 0x10]
mov dword [edx], ecx
test edi, edi
jne 0x4c7e07
mov ecx, dword [eax + 0x10]
movzx edx, byte [ecx + 1]
lea edi, [ecx + 1]
cmp byte [ecx], 0xff
jne 0x4c7dfa
cmp edx, 0x8f
jbe 0x4c7deb
add esi, 0xff00
inc dword [eax + 0xc]
jmp 0x4c7e02
shl edx, 9
mov dword [eax + 0x10], edi
add esi, edx
mov edi, 7
jmp 0x4c7e07
shl edx, 8
mov dword [eax + 0x10], edi
add esi, edx
mov edi, 8
add ebx, ebx
add esi, esi
dec edi
cmp ebx, 0x8000
jb 0x4c7dc5
mov ecx, dword [esp + 0x24]
jmp 0x4c7ea9
mov ecx, ebp
shl ecx, 0x10
sub esi, ecx
test ebx, 0x8000
jne 0x4c7ea6
cmp ebx, ebp
jae 0x4c7e41
xor ecx, ecx
cmp dword [edx + 4], ecx
sete cl
mov dword [esp + 0x24], ecx
mov ecx, dword [edx + 0xc]
jmp 0x4c7e4b
mov ecx, dword [edx + 4]
mov dword [esp + 0x24], ecx
mov ecx, dword [edx + 8]
mov edx, dword [esp + 0x10]
mov dword [edx], ecx
test edi, edi
jne 0x4c7e93
mov ecx, dword [eax + 0x10]
movzx edx, byte [ecx + 1]
lea edi, [ecx + 1]
cmp byte [ecx], 0xff
jne 0x4c7e86
cmp edx, 0x8f
jbe 0x4c7e77
add esi, 0xff00
inc dword [eax + 0xc]
jmp 0x4c7e8e
shl edx, 9
mov dword [eax + 0x10], edi
add esi, edx
mov edi, 7
jmp 0x4c7e93
shl edx, 8
mov dword [eax + 0x10], edi
add esi, edx
mov edi, 8
add ebx, ebx
add esi, esi
dec edi
cmp ebx, 0x8000
jb 0x4c7e51
mov ecx, dword [esp + 0x24]
jmp 0x4c7ea9
mov ecx, dword [edx + 4]
xor ecx, dword [esp + 0x34]
mov edx, dword [esp + 0x1c]
je 0x4c7eb5
neg edx
mov ebp, dword [esp + 0x18]
mov eax, dword [esp + 0x20]
shl ecx, 0x19
or ecx, 0x400
mov dword [ebp + eax*8], edx
mov edx, dword [esp + 0x14]
mov ebp, dword [esp + 0x40]
mov eax, dword [esp + 0x3c]
or ebp, ecx
or dword [edx - 4], 0x800
or dword [edx + 4], 0x200
or ebp, 0x8000000
mov dword [esp + 0x40], ebp
test ebp, 0x40002000
jne 0x4c8232
test ebp, 0x3de00
je 0x4c8232
mov ecx, dword [eax + 0x6c]
mov edx, ebp
shr edx, 9
and edx, 0x1ef
movzx ecx, byte [edx + ecx]
add ecx, 7
mov edx, dword [eax + ecx*4]
lea ecx, [eax + ecx*4]
mov dword [esp + 0x10], ecx
mov ecx, esi
shr ecx, 0x10
mov ebp, dword [edx]
sub ebx, ebp
cmp ecx, ebp
jae 0x4c7fb4
cmp ebx, ebp
mov ebx, ebp
jae 0x4c7f46
mov ebp, dword [edx + 4]
mov ecx, dword [edx + 8]
jmp 0x4c7f59
xor ecx, ecx
cmp dword [edx + 4], ecx
sete cl
mov dword [esp + 0x24], ecx
mov ecx, dword [edx + 0xc]
mov ebp, dword [esp + 0x24]
mov edx, dword [esp + 0x10]
mov dword [edx], ecx
nop
test edi, edi
jne 0x4c7fa2
mov ecx, dword [eax + 0x10]
movzx edx, byte [ecx + 1]
lea edi, [ecx + 1]
cmp byte [ecx], 0xff
jne 0x4c7f95
cmp edx, 0x8f
jbe 0x4c7f86
add esi, 0xff00
inc dword [eax + 0xc]
jmp 0x4c7f9d
shl edx, 9
mov dword [eax + 0x10], edi
add esi, edx
mov edi, 7
jmp 0x4c7fa2
shl edx, 8
mov dword [eax + 0x10], edi
add esi, edx
mov edi, 8
add ebx, ebx
add esi, esi
dec edi
cmp ebx, 0x8000
jb 0x4c7f60
jmp 0x4c803c
mov ecx, ebp
shl ecx, 0x10
sub esi, ecx
test ebx, 0x8000
jne 0x4c8039
cmp ebx, ebp
jae 0x4c7fdc
xor ecx, ecx
cmp dword [edx + 4], ecx
sete cl
mov dword [esp + 0x24], ecx
mov ecx, dword [edx + 0xc]
mov ebp, dword [esp + 0x24]
jmp 0x4c7fe2
mov ebp, dword [edx + 4]
mov ecx, dword [edx + 8]
mov edx, dword [esp + 0x10]
mov dword [edx], ecx
test edi, edi
jne 0x4c802a
mov ecx, dword [eax + 0x10]
movzx edx, byte [ecx + 1]
lea edi, [ecx + 1]
cmp byte [ecx], 0xff
jne 0x4c801d
cmp edx, 0x8f
jbe 0x4c800e
add esi, 0xff00
inc dword [eax + 0xc]
jmp 0x4c8025
shl edx, 9
mov dword [eax + 0x10], edi
add esi, edx
mov edi, 7
jmp 0x4c802a
shl edx, 8
mov dword [eax + 0x10], edi
add esi, edx
mov edi, 8
add ebx, ebx
add esi, esi
dec edi
cmp ebx, 0x8000
jb 0x4c7fe8
jmp 0x4c803c
mov ebp, dword [edx + 4]
test ebp, ebp
mov ebp, dword [esp + 0x40]
je 0x4c822c
mov ecx, dword [esp + 0x14]
mov edx, dword [ecx - 4]
mov ecx, dword [ecx + 4]
shr edx, 2
and ecx, 0x10000000
and edx, 0x4000000
or edx, ecx
mov ecx, ebp
and ecx, 0x81ffffff
shr edx, 1
or edx, ecx
mov ecx, ebp
and ecx, 0x2000000
shr edx, 4
or edx, ecx
and ebp, 0x15400
shr edx, 0xc
or edx, ebp
shr edx, 9
movzx ecx, byte [edx + 0x54b288]
mov dword [esp + 0x34], ecx
movzx ecx, byte [edx + 0x54b188]
add ecx, 7
mov edx, dword [eax + ecx*4]
lea ecx, [eax + ecx*4]
mov dword [esp + 0x10], ecx
mov ecx, esi
shr ecx, 0x10
mov ebp, dword [edx]
sub ebx, ebp
cmp ecx, ebp
jae 0x4c8139
cmp ebx, ebp
mov ebx, ebp
jae 0x4c80cc
mov ecx, dword [edx + 4]
mov dword [esp + 0x24], ecx
mov ecx, dword [edx + 8]
jmp 0x4c80db
xor ecx, ecx
cmp dword [edx + 4], ecx
sete cl
mov dword [esp + 0x24], ecx
mov ecx, dword [edx + 0xc]
mov edx, dword [esp + 0x10]
mov dword [edx], ecx
test edi, edi
jne 0x4c8123
mov ecx, dword [eax + 0x10]
movzx edx, byte [ecx + 1]
lea edi, [ecx + 1]
cmp byte [ecx], 0xff
jne 0x4c8116
cmp edx, 0x8f
jbe 0x4c8107
add esi, 0xff00
inc dword [eax + 0xc]
jmp 0x4c811e
shl edx, 9
mov dword [eax + 0x10], edi
add esi, edx
mov edi, 7
jmp 0x4c8123
shl edx, 8
mov dword [eax + 0x10], edi
add esi, edx
mov edi, 8
add ebx, ebx
add esi, esi
dec edi
cmp ebx, 0x8000
jb 0x4c80e1
mov edx, dword [esp + 0x24]
jmp 0x4c81c9
mov ecx, ebp
shl ecx, 0x10
sub esi, ecx
test ebx, 0x8000
jne 0x4c81c6
cmp ebx, ebp
jae 0x4c8161
xor ecx, ecx
cmp dword [edx + 4], ecx
sete cl
mov dword [esp + 0x24], ecx
mov ecx, dword [edx + 0xc]
jmp 0x4c816b
mov ecx, dword [edx + 4]
mov dword [esp + 0x24], ecx
mov ecx, dword [edx + 8]
mov edx, dword [esp + 0x10]
mov dword [edx], ecx
test edi, edi
jne 0x4c81b3
mov ecx, dword [eax + 0x10]
movzx edx, byte [ecx + 1]
lea edi, [ecx + 1]
cmp byte [ecx], 0xff
jne 0x4c81a6
cmp edx, 0x8f
jbe 0x4c8197
add esi, 0xff00
inc dword [eax + 0xc]
jmp 0x4c81ae
shl edx, 9
mov dword [eax + 0x10], edi
add esi, edx
mov edi, 7
jmp 0x4c81b3
shl edx, 8
mov dword [eax + 0x10], edi
add esi, edx
mov edi, 8
add ebx, ebx
add esi, esi
dec edi
cmp ebx, 0x8000
jb 0x4c8171
mov edx, dword [esp + 0x24]
jmp 0x4c81c9
mov edx, dword [edx + 4]
xor edx, dword [esp + 0x34]
mov ecx, dword [esp + 0x1c]
je 0x4c81d5
neg ecx
mov ebp, dword [esp + 0x30]
mov eax, dword [esp + 0x18]
mov dword [eax + ebp], ecx
mov ecx, dword [esp + 0x14]
mov ebp, dword [esp + 0x40]
mov eax, dword [esp + 0x3c]
or dword [ecx - 4], 0x4000
mov ecx, edx
shl ecx, 0x1c
or ecx, 0x2000
shl edx, 0x12
or ebp, ecx
or edx, 2
mov ecx, dword [esp + 0x14]
or dword [ecx + 4], 0x1000
mov ecx, dword [eax + 0x7c]
mov eax, dword [esp + 0x14]
or dword [eax + ecx*4 + 8], edx
mov edx, eax
mov eax, dword [esp + 0x3c]
or dword [edx + ecx*4 + 4], 4
or dword [edx + ecx*4 + 0xc], 1
or ebp, 0x40000000
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 0x2c]
mov dword [ecx], ebp
mov ebp, dword [esp + 0x18]
inc edx
add ebp, 4
mov dword [esp + 0x2c], edx
add ecx, 4
mov dword [esp + 0x18], ebp
mov dword [esp + 0x14], ecx
cmp edx, dword [esp + 0x20]
jb 0x4c7588
mov edx, dword [esp + 0x28]
add ecx, 8
add ebp, dword [esp + 0x30]
add edx, 4
mov dword [esp + 0x14], ecx
mov ecx, dword [eax + 0x80]
and ecx, 0xfffffffc
mov dword [esp + 0x28], edx
mov dword [esp + 0x18], ebp
cmp edx, ecx
jb 0x4c7574
mov ebp, dword [esp + 0x10]
mov dword [eax], esi
mov esi, dword [esp + 0x28]
mov dword [eax + 0x68], ebp
mov dword [eax + 4], ebx
mov dword [eax + 8], edi
mov edx, dword [eax + 0x80]
cmp esi, edx
jae 0x4c86e2
mov ecx, dword [esp + 0x20]
test ecx, ecx
je 0x4c86e2
mov edi, dword [esp + 0x14]
mov ebx, ecx
mov dword [esp + 0x30], ebx
nop
xor ebp, ebp
mov ecx, edx
mov dword [esp + 0x40], ebp
sub ecx, esi
je 0x4c86cb
mov ecx, dword [eax + 0x7c]
mov edx, 0x200010
mov esi, dword [edi]
add ecx, 2
mov dword [esp + 0x3c], ecx
lea ecx, [ebp*2]
add ecx, ebp
shl edx, cl
test esi, edx
jne 0x4c86ac
mov edx, 0x1ef
shl edx, cl
test esi, edx
je 0x4c86ac
shr esi, cl
mov ecx, dword [eax + 0x6c]
and esi, 0x1ef
mov edi, dword [eax]
movzx ecx, byte [esi + ecx]
add ecx, 7
lea ecx, [eax + ecx*4]
mov dword [eax + 0x68], ecx
mov ecx, dword [ecx]
mov edx, dword [eax + 0x68]
mov ecx, dword [ecx]
sub dword [eax + 4], ecx
mov ecx, dword [edx]
mov esi, dword [ecx]
mov ecx, edi
shr ecx, 0x10
cmp ecx, esi
jae 0x4c83bd
cmp dword [eax + 4], esi
mov dword [eax + 4], esi
mov ecx, dword [edx]
jae 0x4c834a
mov ebx, dword [ecx + 4]
mov ecx, dword [ecx + 8]
jmp 0x4c8355
xor ebx, ebx
cmp dword [ecx + 4], ebx
mov ecx, dword [ecx + 0xc]
sete bl
mov dword [edx], ecx
mov esi, dword [eax + 4]
mov ecx, dword [eax + 8]
lea ecx, [ecx]
test ecx, ecx
jne 0x4c83a5
mov ecx, dword [eax + 0x10]
movzx edx, byte [ecx + 1]
lea edi, [ecx + 1]
cmp byte [ecx], 0xff
jne 0x4c8395
cmp edx, 0x8f
jbe 0x4c8386
add dword [eax], 0xff00
inc dword [eax + 0xc]
jmp 0x4c839d
shl edx, 9
mov ecx, 7
add dword [eax], edx
mov dword [eax + 0x10], edi
jmp 0x4c83a2
shl edx, 8
add dword [eax], edx
mov dword [eax + 0x10], edi
mov ecx, 8
mov dword [eax + 8], ecx
shl dword [eax], 1
add esi, esi
dec ecx
mov dword [eax + 4], esi
mov dword [eax + 8], ecx
cmp esi, 0x8000
jb 0x4c8360
jmp 0x4c8451
shl esi, 0x10
sub edi, esi
mov esi, dword [eax + 4]
mov dword [eax], edi
mov ecx, dword [edx]
test esi, 0x8000
jne 0x4c844e
cmp esi, dword [ecx]
jae 0x4c83e6
xor ebx, ebx
cmp dword [ecx + 4], ebx
mov ecx, dword [ecx + 0xc]
sete bl
jmp 0x4c83ec
mov ebx, dword [ecx + 4]
mov ecx, dword [ecx + 8]
mov dword [edx], ecx
mov esi, dword [eax + 4]
mov ecx, dword [eax + 8]
test ecx, ecx
jne 0x4c8439
mov ecx, dword [eax + 0x10]
movzx edx, byte [ecx + 1]
lea edi, [ecx + 1]
cmp byte [ecx], 0xff
jne 0x4c8429
cmp edx, 0x8f
jbe 0x4c841a
add dword [eax], 0xff00
inc dword [eax + 0xc]
jmp 0x4c8431
shl edx, 9
mov ecx, 7
add dword [eax], edx
mov dword [eax + 0x10], edi
jmp 0x4c8436
shl edx, 8
add dword [eax], edx
mov dword [eax + 0x10], edi
mov ecx, 8
mov dword [eax + 8], ecx
shl dword [eax], 1
add esi, esi
dec ecx
mov dword [eax + 4], esi
mov dword [eax + 8], ecx
cmp esi, 0x8000
jb 0x4c83f4
jmp 0x4c8451
mov ebx, dword [ecx + 4]
test ebx, ebx
je 0x4c8694
mov edx, dword [esp + 0x14]
lea ebx, [ebp*2]
add ebx, ebp
mov esi, dword [edx + 4]
mov edi, dword [edx]
lea ecx, [ebx + 0x11]
mov edx, dword [edx - 4]
shr esi, cl
lea ecx, [ebx + 0x13]
shr edx, cl
and esi, 4
and edx, 1
mov ecx, ebx
or esi, edx
mov edx, edi
shr edx, cl
and edx, 0xaa
or esi, edx
test ebp, ebp
jne 0x4c849e
mov ecx, edi
shr ecx, 0xe
and ecx, 0x10
or esi, ecx
jmp 0x4c84ad
lea ecx, [ebp + 4]
mov edx, edi
lea ecx, [ecx + ecx*2]
shr edx, cl
and edx, 0x10
or esi, edx
lea ecx, [ebx + 0x10]
shr edi, cl
and edi, 0x40
or edi, esi
movzx ecx, byte [edi + 0x54b188]
movzx ebp, byte [edi + 0x54b288]
add ecx, 7
mov edi, dword [eax]
lea edx, [eax + ecx*4]
mov dword [eax + 0x68], edx
mov ecx, dword [edx]
mov ecx, dword [ecx]
sub dword [eax + 4], ecx
mov ecx, dword [edx]
mov esi, dword [ecx]
mov ecx, edi
shr ecx, 0x10
cmp ecx, esi
jae 0x4c856d
cmp dword [eax + 4], esi
mov dword [eax + 4], esi
mov ecx, dword [edx]
jae 0x4c84fa
mov ebx, dword [ecx + 4]
mov ecx, dword [ecx + 8]
jmp 0x4c8505
xor ebx, ebx
cmp dword [ecx + 4], ebx
mov ecx, dword [ecx + 0xc]
sete bl
mov dword [edx], ecx
mov esi, dword [eax + 4]
mov ecx, dword [eax + 8]
lea ecx, [ecx]
test ecx, ecx
jne 0x4c8555
mov ecx, dword [eax + 0x10]
movzx edx, byte [ecx + 1]
lea edi, [ecx + 1]
cmp byte [ecx], 0xff
jne 0x4c8545
cmp edx, 0x8f
jbe 0x4c8536
add dword [eax], 0xff00
inc dword [eax + 0xc]
jmp 0x4c854d
shl edx, 9
mov ecx, 7
add dword [eax], edx
mov dword [eax + 0x10], edi
jmp 0x4c8552
shl edx, 8
add dword [eax], edx
mov dword [eax + 0x10], edi
mov ecx, 8
mov dword [eax + 8], ecx
shl dword [eax], 1
add esi, esi
dec ecx
mov dword [eax + 4], esi
mov dword [eax + 8], ecx
cmp esi, 0x8000
jb 0x4c8510
jmp 0x4c8601
shl esi, 0x10
sub edi, esi
mov esi, dword [eax + 4]
mov dword [eax], edi
mov ecx, dword [edx]
test esi, 0x8000
jne 0x4c85fe
cmp esi, dword [ecx]
jae 0x4c8596
xor ebx, ebx
cmp dword [ecx + 4], ebx
mov ecx, dword [ecx + 0xc]
sete bl
jmp 0x4c859c
mov ebx, dword [ecx + 4]
mov ecx, dword [ecx + 8]
mov dword [edx], ecx
mov esi, dword [eax + 4]
mov ecx, dword [eax + 8]
test ecx, ecx
jne 0x4c85e9
mov ecx, dword [eax + 0x10]
movzx edx, byte [ecx + 1]
lea edi, [ecx + 1]
cmp byte [ecx], 0xff
jne 0x4c85d9
cmp edx, 0x8f
jbe 0x4c85ca
add dword [eax], 0xff00
inc dword [eax + 0xc]
jmp 0x4c85e1
shl edx, 9
mov ecx, 7
add dword [eax], edx
mov dword [eax + 0x10], edi
jmp 0x4c85e6
shl edx, 8
add dword [eax], edx
mov dword [eax + 0x10], edi
mov ecx, 8
mov dword [eax + 8], ecx
shl dword [eax], 1
add esi, esi
dec ecx
mov dword [eax + 4], esi
mov dword [eax + 8], ecx
cmp esi, 0x8000
jb 0x4c85a4
jmp 0x4c8601
mov ebx, dword [ecx + 4]
xor ebx, ebp
mov edx, dword [esp + 0x1c]
je 0x4c860b
neg edx
mov ebp, dword [esp + 0x40]
mov ecx, ebp
imul ecx, dword [esp + 0x20]
mov esi, dword [esp + 0x18]
mov edi, dword [esp + 0x14]
mov dword [esi + ecx*4], edx
lea esi, [ebp*2]
add esi, ebp
mov edx, 0x20
mov ecx, esi
shl edx, cl
or dword [edi - 4], edx
mov edx, ebx
shl edx, 0x13
or edx, 0x10
shl edx, cl
or dword [edi], edx
mov edx, 8
shl edx, cl
or dword [edi + 4], edx
test ebp, ebp
jne 0x4c8676
mov ecx, dword [esp + 0x3c]
mov edx, edi
shl ecx, 2
sub edx, ecx
shl ebx, 0x1f
or ebx, 0x10000
or dword [edx], ebx
or dword [edx - 4], 0x20000
or dword [edx + 4], 0x8000
jmp 0x4c86a1
cmp ebp, 3
jne 0x4c86a1
mov ecx, dword [esp + 0x3c]
shl ebx, 0x12
or ebx, 2
or dword [edi + ecx*4], ebx
or dword [edi + ecx*4 - 4], 4
or dword [edi + ecx*4 + 4], 1
jmp 0x4c86a1
mov edi, dword [esp + 0x14]
lea esi, [ebp*2]
add esi, ebp
mov edx, 0x200000
mov ecx, esi
shl edx, cl
or dword [edi], edx
mov edx, dword [eax + 0x80]
inc ebp
mov esi, dword [esp + 0x28]
mov ecx, edx
sub ecx, esi
mov dword [esp + 0x40], ebp
cmp ebp, ecx
jb 0x4c82d0
mov ebx, dword [esp + 0x30]
add dword [esp + 0x18], 4
add edi, 4
dec ebx
mov dword [esp + 0x14], edi
mov dword [esp + 0x30], ebx
jne 0x4c82c0
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x28
ret