Function at 0x4c70c0
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 0x4c7e18
mov ecx, dword [esp + 0x20]
mov edx, dword [esp + 0x14]
mov ebp, dword [esp + 0x18]
lea ecx, [ecx + ecx*2]
shl ecx, 2
mov dword [esp + 0x30], ecx
jmp 0x4c7140
mov eax, dword [esp + 0x3c]
xor ecx, ecx
mov dword [esp + 0x2c], ecx
cmp dword [esp + 0x20], ecx
jbe 0x4c7ded
mov ebp, dword [edx]
mov dword [esp + 0x40], ebp
test ebp, ebp
je 0x4c7dcc
test ebp, 0x200010
jne 0x4c745d
mov edx, ebp
and edx, 0x1ef
je 0x4c745d
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 0x4c7218
cmp ebx, ebp
mov ebx, ebp
jae 0x4c71ab
mov ebp, dword [edx + 4]
mov ecx, dword [edx + 8]
jmp 0x4c71be
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 0x4c7206
mov ecx, dword [eax + 0x10]
movzx edx, byte [ecx + 1]
lea edi, [ecx + 1]
cmp byte [ecx], 0xff
jne 0x4c71f9
cmp edx, 0x8f
jbe 0x4c71ea
add esi, 0xff00
inc dword [eax + 0xc]
jmp 0x4c7201
shl edx, 9
mov dword [eax + 0x10], edi
add esi, edx
mov edi, 7
jmp 0x4c7206
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 0x4c71c4
jmp 0x4c72a4
mov ecx, ebp
shl ecx, 0x10
sub esi, ecx
test ebx, 0x8000
jne 0x4c72a1
cmp ebx, ebp
jae 0x4c7240
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 0x4c7246
mov ebp, dword [edx + 4]
mov ecx, dword [edx + 8]
mov edx, dword [esp + 0x10]
mov dword [edx], ecx
lea esp, [esp]
test edi, edi
jne 0x4c7292
mov ecx, dword [eax + 0x10]
movzx edx, byte [ecx + 1]
lea edi, [ecx + 1]
cmp byte [ecx], 0xff
jne 0x4c7285
cmp edx, 0x8f
jbe 0x4c7276
add esi, 0xff00
inc dword [eax + 0xc]
jmp 0x4c728d
shl edx, 9
mov dword [eax + 0x10], edi
add esi, edx
mov edi, 7
jmp 0x4c7292
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 0x4c7250
jmp 0x4c72a4
mov ebp, dword [edx + 4]
test ebp, ebp
mov ebp, dword [esp + 0x40]
je 0x4c7453
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 + 0x549288]
mov dword [esp + 0x34], ecx
movzx ecx, byte [edx + 0x549188]
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 0x4c739a
cmp ebx, ebp
mov ebx, ebp
jae 0x4c732d
mov ecx, dword [edx + 4]
mov dword [esp + 0x24], ecx
mov ecx, dword [edx + 8]
jmp 0x4c733c
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 0x4c7384
mov ecx, dword [eax + 0x10]
movzx edx, byte [ecx + 1]
lea edi, [ecx + 1]
cmp byte [ecx], 0xff
jne 0x4c7377
cmp edx, 0x8f
jbe 0x4c7368
add esi, 0xff00
inc dword [eax + 0xc]
jmp 0x4c737f
shl edx, 9
mov dword [eax + 0x10], edi
add esi, edx
mov edi, 7
jmp 0x4c7384
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 0x4c7342
mov ecx, dword [esp + 0x24]
jmp 0x4c7428
mov ecx, ebp
shl ecx, 0x10
sub esi, ecx
test ebx, 0x8000
jne 0x4c7425
cmp ebx, ebp
jae 0x4c73be
xor ecx, ecx
cmp dword [edx + 4], ecx
sete cl
mov dword [esp + 0x24], ecx
mov ecx, dword [edx + 0xc]
jmp 0x4c73c8
mov ecx, dword [edx + 4]
mov dword [esp + 0x24], ecx
mov ecx, dword [edx + 8]
mov edx, dword [esp + 0x10]
mov dword [edx], ecx
mov edi, edi
test edi, edi
jne 0x4c7412
mov ecx, dword [eax + 0x10]
movzx edx, byte [ecx + 1]
lea edi, [ecx + 1]
cmp byte [ecx], 0xff
jne 0x4c7405
cmp edx, 0x8f
jbe 0x4c73f6
add esi, 0xff00
inc dword [eax + 0xc]
jmp 0x4c740d
shl edx, 9
mov dword [eax + 0x10], edi
add esi, edx
mov edi, 7
jmp 0x4c7412
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 0x4c73d0
mov ecx, dword [esp + 0x24]
jmp 0x4c7428
mov ecx, dword [edx + 4]
xor ecx, dword [esp + 0x34]
mov edx, dword [esp + 0x1c]
je 0x4c7434
neg edx
mov ebp, dword [esp + 0x18]
shl ecx, 0x13
or ecx, 0x10
mov dword [ebp], edx
mov edx, dword [esp + 0x14]
mov ebp, dword [esp + 0x40]
or ebp, ecx
or dword [edx - 4], 0x20
or dword [edx + 4], 8
or ebp, 0x200000
mov dword [esp + 0x40], ebp
test ebp, 0x1000080
jne 0x4c776d
test ebp, 0xf78
je 0x4c776d
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 0x4c751c
cmp ebx, ebp
mov ebx, ebp
jae 0x4c74af
mov ebp, dword [edx + 4]
mov ecx, dword [edx + 8]
jmp 0x4c74c2
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 0x4c750a
mov ecx, dword [eax + 0x10]
movzx edx, byte [ecx + 1]
lea edi, [ecx + 1]
cmp byte [ecx], 0xff
jne 0x4c74fd
cmp edx, 0x8f
jbe 0x4c74ee
add esi, 0xff00
inc dword [eax + 0xc]
jmp 0x4c7505
shl edx, 9
mov dword [eax + 0x10], edi
add esi, edx
mov edi, 7
jmp 0x4c750a
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 0x4c74c8
jmp 0x4c75a4
mov ecx, ebp
shl ecx, 0x10
sub esi, ecx
test ebx, 0x8000
jne 0x4c75a1
cmp ebx, ebp
jae 0x4c7544
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 0x4c754a
mov ebp, dword [edx + 4]
mov ecx, dword [edx + 8]
mov edx, dword [esp + 0x10]
mov dword [edx], ecx
test edi, edi
jne 0x4c7592
mov ecx, dword [eax + 0x10]
movzx edx, byte [ecx + 1]
lea edi, [ecx + 1]
cmp byte [ecx], 0xff
jne 0x4c7585
cmp edx, 0x8f
jbe 0x4c7576
add esi, 0xff00
inc dword [eax + 0xc]
jmp 0x4c758d
shl edx, 9
mov dword [eax + 0x10], edi
add esi, edx
mov edi, 7
jmp 0x4c7592
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 0x4c7550
jmp 0x4c75a4
mov ebp, dword [edx + 4]
test ebp, ebp
mov ebp, dword [esp + 0x40]
je 0x4c7763
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 + 0x549288]
mov dword [esp + 0x34], ecx
movzx ecx, byte [edx + 0x549188]
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 0x4c769d
cmp ebx, ebp
mov ebx, ebp
jae 0x4c7630
mov ecx, dword [edx + 4]
mov dword [esp + 0x24], ecx
mov ecx, dword [edx + 8]
jmp 0x4c763f
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 0x4c7687
mov ecx, dword [eax + 0x10]
movzx edx, byte [ecx + 1]
lea edi, [ecx + 1]
cmp byte [ecx], 0xff
jne 0x4c767a
cmp edx, 0x8f
jbe 0x4c766b
add esi, 0xff00
inc dword [eax + 0xc]
jmp 0x4c7682
shl edx, 9
mov dword [eax + 0x10], edi
add esi, edx
mov edi, 7
jmp 0x4c7687
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 0x4c7645
mov ecx, dword [esp + 0x24]
jmp 0x4c7729
mov ecx, ebp
shl ecx, 0x10
sub esi, ecx
test ebx, 0x8000
jne 0x4c7726
cmp ebx, ebp
jae 0x4c76c1
xor ecx, ecx
cmp dword [edx + 4], ecx
sete cl
mov dword [esp + 0x24], ecx
mov ecx, dword [edx + 0xc]
jmp 0x4c76cb
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 0x4c7713
mov ecx, dword [eax + 0x10]
movzx edx, byte [ecx + 1]
lea edi, [ecx + 1]
cmp byte [ecx], 0xff
jne 0x4c7706
cmp edx, 0x8f
jbe 0x4c76f7
add esi, 0xff00
inc dword [eax + 0xc]
jmp 0x4c770e
shl edx, 9
mov dword [eax + 0x10], edi
add esi, edx
mov edi, 7
jmp 0x4c7713
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 0x4c76d1
mov ecx, dword [esp + 0x24]
jmp 0x4c7729
mov ecx, dword [edx + 4]
xor ecx, dword [esp + 0x34]
mov edx, dword [esp + 0x1c]
je 0x4c7735
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 0x4c7a80
test ebp, 0x7bc0
je 0x4c7a80
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 0x4c782c
cmp ebx, ebp
mov ebx, ebp
jae 0x4c77bf
mov ebp, dword [edx + 4]
mov ecx, dword [edx + 8]
jmp 0x4c77d2
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 0x4c781a
mov ecx, dword [eax + 0x10]
movzx edx, byte [ecx + 1]
lea edi, [ecx + 1]
cmp byte [ecx], 0xff
jne 0x4c780d
cmp edx, 0x8f
jbe 0x4c77fe
add esi, 0xff00
inc dword [eax + 0xc]
jmp 0x4c7815
shl edx, 9
mov dword [eax + 0x10], edi
add esi, edx
mov edi, 7
jmp 0x4c781a
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 0x4c77d8
jmp 0x4c78b4
mov ecx, ebp
shl ecx, 0x10
sub esi, ecx
test ebx, 0x8000
jne 0x4c78b1
cmp ebx, ebp
jae 0x4c7854
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 0x4c785a
mov ebp, dword [edx + 4]
mov ecx, dword [edx + 8]
mov edx, dword [esp + 0x10]
mov dword [edx], ecx
test edi, edi
jne 0x4c78a2
mov ecx, dword [eax + 0x10]
movzx edx, byte [ecx + 1]
lea edi, [ecx + 1]
cmp byte [ecx], 0xff
jne 0x4c7895
cmp edx, 0x8f
jbe 0x4c7886
add esi, 0xff00
inc dword [eax + 0xc]
jmp 0x4c789d
shl edx, 9
mov dword [eax + 0x10], edi
add esi, edx
mov edi, 7
jmp 0x4c78a2
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 0x4c7860
jmp 0x4c78b4
mov ebp, dword [edx + 4]
test ebp, ebp
mov ebp, dword [esp + 0x40]
je 0x4c7a76
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 + 0x549288]
mov dword [esp + 0x34], ecx
movzx ecx, byte [edx + 0x549188]
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 0x4c79ad
cmp ebx, ebp
mov ebx, ebp
jae 0x4c7940
mov ecx, dword [edx + 4]
mov dword [esp + 0x24], ecx
mov ecx, dword [edx + 8]
jmp 0x4c794f
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 0x4c7997
mov ecx, dword [eax + 0x10]
movzx edx, byte [ecx + 1]
lea edi, [ecx + 1]
cmp byte [ecx], 0xff
jne 0x4c798a
cmp edx, 0x8f
jbe 0x4c797b
add esi, 0xff00
inc dword [eax + 0xc]
jmp 0x4c7992
shl edx, 9
mov dword [eax + 0x10], edi
add esi, edx
mov edi, 7
jmp 0x4c7997
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 0x4c7955
mov ecx, dword [esp + 0x24]
jmp 0x4c7a39
mov ecx, ebp
shl ecx, 0x10
sub esi, ecx
test ebx, 0x8000
jne 0x4c7a36
cmp ebx, ebp
jae 0x4c79d1
xor ecx, ecx
cmp dword [edx + 4], ecx
sete cl
mov dword [esp + 0x24], ecx
mov ecx, dword [edx + 0xc]
jmp 0x4c79db
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 0x4c7a23
mov ecx, dword [eax + 0x10]
movzx edx, byte [ecx + 1]
lea edi, [ecx + 1]
cmp byte [ecx], 0xff
jne 0x4c7a16
cmp edx, 0x8f
jbe 0x4c7a07
add esi, 0xff00
inc dword [eax + 0xc]
jmp 0x4c7a1e
shl edx, 9
mov dword [eax + 0x10], edi
add esi, edx
mov edi, 7
jmp 0x4c7a23
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 0x4c79e1
mov ecx, dword [esp + 0x24]
jmp 0x4c7a39
mov ecx, dword [edx + 4]
xor ecx, dword [esp + 0x34]
mov edx, dword [esp + 0x1c]
je 0x4c7a45
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 0x4c7dc2
test ebp, 0x3de00
je 0x4c7dc2
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 0x4c7b44
cmp ebx, ebp
mov ebx, ebp
jae 0x4c7ad6
mov ebp, dword [edx + 4]
mov ecx, dword [edx + 8]
jmp 0x4c7ae9
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 0x4c7b32
mov ecx, dword [eax + 0x10]
movzx edx, byte [ecx + 1]
lea edi, [ecx + 1]
cmp byte [ecx], 0xff
jne 0x4c7b25
cmp edx, 0x8f
jbe 0x4c7b16
add esi, 0xff00
inc dword [eax + 0xc]
jmp 0x4c7b2d
shl edx, 9
mov dword [eax + 0x10], edi
add esi, edx
mov edi, 7
jmp 0x4c7b32
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 0x4c7af0
jmp 0x4c7bcc
mov ecx, ebp
shl ecx, 0x10
sub esi, ecx
test ebx, 0x8000
jne 0x4c7bc9
cmp ebx, ebp
jae 0x4c7b6c
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 0x4c7b72
mov ebp, dword [edx + 4]
mov ecx, dword [edx + 8]
mov edx, dword [esp + 0x10]
mov dword [edx], ecx
test edi, edi
jne 0x4c7bba
mov ecx, dword [eax + 0x10]
movzx edx, byte [ecx + 1]
lea edi, [ecx + 1]
cmp byte [ecx], 0xff
jne 0x4c7bad
cmp edx, 0x8f
jbe 0x4c7b9e
add esi, 0xff00
inc dword [eax + 0xc]
jmp 0x4c7bb5
shl edx, 9
mov dword [eax + 0x10], edi
add esi, edx
mov edi, 7
jmp 0x4c7bba
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 0x4c7b78
jmp 0x4c7bcc
mov ebp, dword [edx + 4]
test ebp, ebp
mov ebp, dword [esp + 0x40]
je 0x4c7dbc
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 + 0x549288]
mov dword [esp + 0x34], ecx
movzx ecx, byte [edx + 0x549188]
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 0x4c7cc9
cmp ebx, ebp
mov ebx, ebp
jae 0x4c7c5c
mov ecx, dword [edx + 4]
mov dword [esp + 0x24], ecx
mov ecx, dword [edx + 8]
jmp 0x4c7c6b
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 0x4c7cb3
mov ecx, dword [eax + 0x10]
movzx edx, byte [ecx + 1]
lea edi, [ecx + 1]
cmp byte [ecx], 0xff
jne 0x4c7ca6
cmp edx, 0x8f
jbe 0x4c7c97
add esi, 0xff00
inc dword [eax + 0xc]
jmp 0x4c7cae
shl edx, 9
mov dword [eax + 0x10], edi
add esi, edx
mov edi, 7
jmp 0x4c7cb3
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 0x4c7c71
mov edx, dword [esp + 0x24]
jmp 0x4c7d59
mov ecx, ebp
shl ecx, 0x10
sub esi, ecx
test ebx, 0x8000
jne 0x4c7d56
cmp ebx, ebp
jae 0x4c7cf1
xor ecx, ecx
cmp dword [edx + 4], ecx
sete cl
mov dword [esp + 0x24], ecx
mov ecx, dword [edx + 0xc]
jmp 0x4c7cfb
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 0x4c7d43
mov ecx, dword [eax + 0x10]
movzx edx, byte [ecx + 1]
lea edi, [ecx + 1]
cmp byte [ecx], 0xff
jne 0x4c7d36
cmp edx, 0x8f
jbe 0x4c7d27
add esi, 0xff00
inc dword [eax + 0xc]
jmp 0x4c7d3e
shl edx, 9
mov dword [eax + 0x10], edi
add esi, edx
mov edi, 7
jmp 0x4c7d43
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 0x4c7d01
mov edx, dword [esp + 0x24]
jmp 0x4c7d59
mov edx, dword [edx + 4]
xor edx, dword [esp + 0x34]
mov ecx, dword [esp + 0x1c]
je 0x4c7d65
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 edx, dword [esp + 0x14]
mov ecx, dword [esp + 0x2c]
mov dword [edx], ebp
mov ebp, dword [esp + 0x18]
inc ecx
add ebp, 4
mov dword [esp + 0x2c], ecx
add edx, 4
mov dword [esp + 0x18], ebp
mov dword [esp + 0x14], edx
cmp ecx, dword [esp + 0x20]
jb 0x4c7154
mov ecx, dword [eax + 0x80]
add edx, 8
add dword [esp + 0x28], 4
and ecx, 0xfffffffc
add ebp, dword [esp + 0x30]
mov dword [esp + 0x18], ebp
mov dword [esp + 0x14], edx
cmp dword [esp + 0x28], ecx
jb 0x4c7140
mov ebp, dword [esp + 0x10]
mov dword [eax + 0x68], ebp
mov ebp, dword [esp + 0x28]
mov dword [eax], esi
mov dword [eax + 4], ebx
mov dword [eax + 8], edi
mov edx, dword [eax + 0x80]
cmp ebp, edx
jae 0x4c8242
mov ecx, dword [esp + 0x20]
test ecx, ecx
je 0x4c8242
mov esi, dword [esp + 0x14]
mov ebx, ecx
mov dword [esp + 0x40], ebx
jmp 0x4c7e50
xor edi, edi
mov ecx, edx
mov dword [esp + 0x3c], edi
sub ecx, ebp
je 0x4c822b
mov ecx, dword [eax + 0x7c]
lea ebp, [edi + edi*2]
mov esi, dword [esi]
add ecx, 2
mov dword [esp + 0x34], ecx
mov edx, 0x200010
mov ecx, ebp
shl edx, cl
test esi, edx
jne 0x4c8208
mov edx, 0x1ef
shl edx, cl
test esi, edx
je 0x4c8208
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 0x4c7f4d
cmp dword [eax + 4], esi
mov dword [eax + 4], esi
mov ecx, dword [edx]
jae 0x4c7ed6
mov ebx, dword [ecx + 4]
mov ecx, dword [ecx + 8]
jmp 0x4c7ee1
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 esp, [esp]
test ecx, ecx
jne 0x4c7f35
mov ecx, dword [eax + 0x10]
movzx edx, byte [ecx + 1]
lea edi, [ecx + 1]
cmp byte [ecx], 0xff
jne 0x4c7f25
cmp edx, 0x8f
jbe 0x4c7f16
add dword [eax], 0xff00
inc dword [eax + 0xc]
jmp 0x4c7f2d
shl edx, 9
mov ecx, 7
add dword [eax], edx
mov dword [eax + 0x10], edi
jmp 0x4c7f32
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 0x4c7ef0
jmp 0x4c7fdd
shl esi, 0x10
sub edi, esi
mov esi, dword [eax + 4]
mov dword [eax], edi
mov ecx, dword [edx]
test esi, 0x8000
jne 0x4c7fda
cmp esi, dword [ecx]
jae 0x4c7f72
xor ebx, ebx
cmp dword [ecx + 4], ebx
mov ecx, dword [ecx + 0xc]
sete bl
jmp 0x4c7f78
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 0x4c7fc5
mov ecx, dword [eax + 0x10]
movzx edx, byte [ecx + 1]
lea edi, [ecx + 1]
cmp byte [ecx], 0xff
jne 0x4c7fb5
cmp edx, 0x8f
jbe 0x4c7fa6
add dword [eax], 0xff00
inc dword [eax + 0xc]
jmp 0x4c7fbd
shl edx, 9
mov ecx, 7
add dword [eax], edx
mov dword [eax + 0x10], edi
jmp 0x4c7fc2
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 0x4c7f80
jmp 0x4c7fdd
mov ebx, dword [ecx + 4]
test ebx, ebx
je 0x4c81f3
mov edx, dword [esp + 0x14]
lea ecx, [ebp + 0x11]
mov esi, dword [edx + 4]
mov edi, dword [edx]
mov edx, dword [edx - 4]
shr esi, cl
lea ecx, [ebp + 0x13]
shr edx, cl
and esi, 4
and edx, 1
mov ecx, ebp
or esi, edx
mov edx, edi
shr edx, cl
mov ecx, dword [esp + 0x3c]
and edx, 0xaa
or esi, edx
test ecx, ecx
jne 0x4c8025
mov ecx, edi
shr ecx, 0xe
and ecx, 0x10
or esi, ecx
jmp 0x4c8034
lea ecx, [ecx + ecx*2]
mov edx, edi
add ecx, 0xc
shr edx, cl
and edx, 0x10
or esi, edx
lea ecx, [ebp + 0x10]
shr edi, cl
and edi, 0x40
or edi, esi
movzx ecx, byte [edi + 0x549188]
movzx ebp, byte [edi + 0x549288]
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 0x4c80f1
cmp dword [eax + 4], esi
mov dword [eax + 4], esi
mov ecx, dword [edx]
jae 0x4c8081
mov ebx, dword [ecx + 4]
mov ecx, dword [ecx + 8]
jmp 0x4c808c
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]
test ecx, ecx
jne 0x4c80d9
mov ecx, dword [eax + 0x10]
movzx edx, byte [ecx + 1]
lea edi, [ecx + 1]
cmp byte [ecx], 0xff
jne 0x4c80c9
cmp edx, 0x8f
jbe 0x4c80ba
add dword [eax], 0xff00
inc dword [eax + 0xc]
jmp 0x4c80d1
shl edx, 9
mov ecx, 7
add dword [eax], edx
mov dword [eax + 0x10], edi
jmp 0x4c80d6
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 0x4c8094
jmp 0x4c8185
shl esi, 0x10
sub edi, esi
mov esi, dword [eax + 4]
mov dword [eax], edi
mov ecx, dword [edx]
test esi, 0x8000
jne 0x4c8182
cmp esi, dword [ecx]
jae 0x4c811a
xor ebx, ebx
cmp dword [ecx + 4], ebx
mov ecx, dword [ecx + 0xc]
sete bl
jmp 0x4c8120
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 0x4c816d
mov ecx, dword [eax + 0x10]
movzx edx, byte [ecx + 1]
lea edi, [ecx + 1]
cmp byte [ecx], 0xff
jne 0x4c815d
cmp edx, 0x8f
jbe 0x4c814e
add dword [eax], 0xff00
inc dword [eax + 0xc]
jmp 0x4c8165
shl edx, 9
mov ecx, 7
add dword [eax], edx
mov dword [eax + 0x10], edi
jmp 0x4c816a
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 0x4c8128
jmp 0x4c8185
mov ebx, dword [ecx + 4]
xor ebx, ebp
mov edx, dword [esp + 0x1c]
je 0x4c818f
neg edx
mov edi, dword [esp + 0x3c]
mov ecx, edi
imul ecx, dword [esp + 0x20]
mov esi, dword [esp + 0x18]
lea ebp, [edi + edi*2]
mov dword [esi + ecx*4], edx
mov ecx, ebp
mov esi, dword [esp + 0x14]
mov edx, 0x20
shl edx, cl
or dword [esi - 4], edx
mov edx, ebx
shl edx, 0x13
or edx, 0x10
shl edx, cl
or dword [esi], edx
mov edx, 8
shl edx, cl
or dword [esi + 4], edx
cmp edi, 3
jne 0x4c81fb
mov ecx, dword [esp + 0x34]
mov edx, 0x200000
shl ebx, 0x12
or ebx, 2
or dword [esi + ecx*4], ebx
or dword [esi + ecx*4 - 4], 4
or dword [esi + ecx*4 + 4], 1
mov ecx, ebp
shl edx, cl
or dword [esi], edx
jmp 0x4c820c
mov edi, dword [esp + 0x3c]
mov esi, dword [esp + 0x14]
mov edx, 0x200000
mov ecx, ebp
shl edx, cl
or dword [esi], edx
jmp 0x4c820c
mov esi, dword [esp + 0x14]
mov edx, dword [eax + 0x80]
inc edi
mov ebp, dword [esp + 0x28]
mov ecx, edx
sub ecx, ebp
mov dword [esp + 0x3c], edi
cmp edi, ecx
jb 0x4c7e60
mov ebx, dword [esp + 0x40]
add dword [esp + 0x18], 4
add esi, 4
dec ebx
mov dword [esp + 0x14], esi
mov dword [esp + 0x40], ebx
jne 0x4c7e50
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x28
ret