Function at 0x4f6560
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 0x4f72ec
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 0x4f72bd
mov ebp, dword [ecx]
mov dword [esp + 0x40], ebp
test ebp, ebp
je 0x4f729c
test ebp, 0x200010
jne 0x4f6917
mov edx, ebp
and edx, 0x1ef
je 0x4f6917
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 0x4f66ac
cmp ebx, ebp
mov ebx, ebp
jae 0x4f663f
mov ebp, dword [edx + 4]
mov ecx, dword [edx + 8]
jmp 0x4f6652
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 0x4f669a
mov ecx, dword [eax + 0x10]
movzx edx, byte [ecx + 1]
lea edi, [ecx + 1]
cmp byte [ecx], 0xff
jne 0x4f668d
cmp edx, 0x8f
jbe 0x4f667e
add esi, 0xff00
inc dword [eax + 0xc]
jmp 0x4f6695
shl edx, 9
mov dword [eax + 0x10], edi
add esi, edx
mov edi, 7
jmp 0x4f669a
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 0x4f6658
jmp 0x4f6734
mov ecx, ebp
shl ecx, 0x10
sub esi, ecx
test ebx, 0x8000
jne 0x4f6731
cmp ebx, ebp
jae 0x4f66d4
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 0x4f66da
mov ebp, dword [edx + 4]
mov ecx, dword [edx + 8]
mov edx, dword [esp + 0x10]
mov dword [edx], ecx
test edi, edi
jne 0x4f6722
mov ecx, dword [eax + 0x10]
movzx edx, byte [ecx + 1]
lea edi, [ecx + 1]
cmp byte [ecx], 0xff
jne 0x4f6715
cmp edx, 0x8f
jbe 0x4f6706
add esi, 0xff00
inc dword [eax + 0xc]
jmp 0x4f671d
shl edx, 9
mov dword [eax + 0x10], edi
add esi, edx
mov edi, 7
jmp 0x4f6722
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 0x4f66e0
jmp 0x4f6734
mov ebp, dword [edx + 4]
test ebp, ebp
mov ebp, dword [esp + 0x40]
je 0x4f690d
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 + 0x57a2f8]
mov dword [esp + 0x34], ecx
movzx ecx, byte [edx + 0x57a1f8]
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 0x4f682a
cmp ebx, ebp
mov ebx, ebp
jae 0x4f67bd
mov ebp, dword [edx + 4]
mov ecx, dword [edx + 8]
jmp 0x4f67d0
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 0x4f6818
mov ecx, dword [eax + 0x10]
movzx edx, byte [ecx + 1]
lea edi, [ecx + 1]
cmp byte [ecx], 0xff
jne 0x4f680b
cmp edx, 0x8f
jbe 0x4f67fc
add esi, 0xff00
inc dword [eax + 0xc]
jmp 0x4f6813
shl edx, 9
mov dword [eax + 0x10], edi
add esi, edx
mov edi, 7
jmp 0x4f6818
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 0x4f67d6
jmp 0x4f68b4
mov ecx, ebp
shl ecx, 0x10
sub esi, ecx
test ebx, 0x8000
jne 0x4f68b1
cmp ebx, ebp
jae 0x4f6852
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 0x4f6858
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 0x4f68a2
mov ecx, dword [eax + 0x10]
movzx edx, byte [ecx + 1]
lea edi, [ecx + 1]
cmp byte [ecx], 0xff
jne 0x4f6895
cmp edx, 0x8f
jbe 0x4f6886
add esi, 0xff00
inc dword [eax + 0xc]
jmp 0x4f689d
shl edx, 9
mov dword [eax + 0x10], edi
add esi, edx
mov edi, 7
jmp 0x4f68a2
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 0x4f6860
jmp 0x4f68b4
mov ebp, dword [edx + 4]
xor ebp, dword [esp + 0x34]
mov ecx, dword [esp + 0x1c]
mov dword [esp + 0x24], ebp
je 0x4f68c4
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 0x4f6c3c
test ebp, 0xf78
je 0x4f6c3c
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 0x4f69da
cmp ebx, ebp
mov ebx, ebp
jae 0x4f696d
mov ebp, dword [edx + 4]
mov ecx, dword [edx + 8]
jmp 0x4f6980
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 0x4f69c8
mov ecx, dword [eax + 0x10]
movzx edx, byte [ecx + 1]
lea edi, [ecx + 1]
cmp byte [ecx], 0xff
jne 0x4f69bb
cmp edx, 0x8f
jbe 0x4f69ac
add esi, 0xff00
inc dword [eax + 0xc]
jmp 0x4f69c3
shl edx, 9
mov dword [eax + 0x10], edi
add esi, edx
mov edi, 7
jmp 0x4f69c8
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 0x4f6986
jmp 0x4f6a64
mov ecx, ebp
shl ecx, 0x10
sub esi, ecx
test ebx, 0x8000
jne 0x4f6a61
cmp ebx, ebp
jae 0x4f6a02
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 0x4f6a08
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 0x4f6a52
mov ecx, dword [eax + 0x10]
movzx edx, byte [ecx + 1]
lea edi, [ecx + 1]
cmp byte [ecx], 0xff
jne 0x4f6a45
cmp edx, 0x8f
jbe 0x4f6a36
add esi, 0xff00
inc dword [eax + 0xc]
jmp 0x4f6a4d
shl edx, 9
mov dword [eax + 0x10], edi
add esi, edx
mov edi, 7
jmp 0x4f6a52
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 0x4f6a10
jmp 0x4f6a64
mov ebp, dword [edx + 4]
test ebp, ebp
mov ebp, dword [esp + 0x40]
je 0x4f6c32
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 + 0x57a2f8]
mov dword [esp + 0x34], ecx
movzx ecx, byte [edx + 0x57a1f8]
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 0x4f6b68
cmp ebx, ebp
mov ebx, ebp
jae 0x4f6af4
mov ecx, dword [edx + 4]
mov dword [esp + 0x24], ecx
mov ecx, dword [edx + 8]
jmp 0x4f6b03
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 0x4f6b52
mov ecx, dword [eax + 0x10]
movzx edx, byte [ecx + 1]
lea edi, [ecx + 1]
cmp byte [ecx], 0xff
jne 0x4f6b45
cmp edx, 0x8f
jbe 0x4f6b36
add esi, 0xff00
inc dword [eax + 0xc]
jmp 0x4f6b4d
shl edx, 9
mov dword [eax + 0x10], edi
add esi, edx
mov edi, 7
jmp 0x4f6b52
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 0x4f6b10
mov ecx, dword [esp + 0x24]
jmp 0x4f6bf8
mov ecx, ebp
shl ecx, 0x10
sub esi, ecx
test ebx, 0x8000
jne 0x4f6bf5
cmp ebx, ebp
jae 0x4f6b8c
xor ecx, ecx
cmp dword [edx + 4], ecx
sete cl
mov dword [esp + 0x24], ecx
mov ecx, dword [edx + 0xc]
jmp 0x4f6b96
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 0x4f6be2
mov ecx, dword [eax + 0x10]
movzx edx, byte [ecx + 1]
lea edi, [ecx + 1]
cmp byte [ecx], 0xff
jne 0x4f6bd5
cmp edx, 0x8f
jbe 0x4f6bc6
add esi, 0xff00
inc dword [eax + 0xc]
jmp 0x4f6bdd
shl edx, 9
mov dword [eax + 0x10], edi
add esi, edx
mov edi, 7
jmp 0x4f6be2
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 0x4f6ba0
mov ecx, dword [esp + 0x24]
jmp 0x4f6bf8
mov ecx, dword [edx + 4]
xor ecx, dword [esp + 0x34]
mov edx, dword [esp + 0x1c]
je 0x4f6c04
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 0x4f6f50
test ebp, 0x7bc0
je 0x4f6f50
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 0x4f6cfb
cmp ebx, ebp
mov ebx, ebp
jae 0x4f6c8e
mov ebp, dword [edx + 4]
mov ecx, dword [edx + 8]
jmp 0x4f6ca1
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 0x4f6ce9
mov ecx, dword [eax + 0x10]
movzx edx, byte [ecx + 1]
lea edi, [ecx + 1]
cmp byte [ecx], 0xff
jne 0x4f6cdc
cmp edx, 0x8f
jbe 0x4f6ccd
add esi, 0xff00
inc dword [eax + 0xc]
jmp 0x4f6ce4
shl edx, 9
mov dword [eax + 0x10], edi
add esi, edx
mov edi, 7
jmp 0x4f6ce9
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 0x4f6ca7
jmp 0x4f6d84
mov ecx, ebp
shl ecx, 0x10
sub esi, ecx
test ebx, 0x8000
jne 0x4f6d81
cmp ebx, ebp
jae 0x4f6d23
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 0x4f6d29
mov ebp, dword [edx + 4]
mov ecx, dword [edx + 8]
mov edx, dword [esp + 0x10]
mov dword [edx], ecx
nop
test edi, edi
jne 0x4f6d72
mov ecx, dword [eax + 0x10]
movzx edx, byte [ecx + 1]
lea edi, [ecx + 1]
cmp byte [ecx], 0xff
jne 0x4f6d65
cmp edx, 0x8f
jbe 0x4f6d56
add esi, 0xff00
inc dword [eax + 0xc]
jmp 0x4f6d6d
shl edx, 9
mov dword [eax + 0x10], edi
add esi, edx
mov edi, 7
jmp 0x4f6d72
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 0x4f6d30
jmp 0x4f6d84
mov ebp, dword [edx + 4]
test ebp, ebp
mov ebp, dword [esp + 0x40]
je 0x4f6f46
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 + 0x57a2f8]
mov dword [esp + 0x34], ecx
movzx ecx, byte [edx + 0x57a1f8]
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 0x4f6e7d
cmp ebx, ebp
mov ebx, ebp
jae 0x4f6e10
mov ecx, dword [edx + 4]
mov dword [esp + 0x24], ecx
mov ecx, dword [edx + 8]
jmp 0x4f6e1f
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 0x4f6e67
mov ecx, dword [eax + 0x10]
movzx edx, byte [ecx + 1]
lea edi, [ecx + 1]
cmp byte [ecx], 0xff
jne 0x4f6e5a
cmp edx, 0x8f
jbe 0x4f6e4b
add esi, 0xff00
inc dword [eax + 0xc]
jmp 0x4f6e62
shl edx, 9
mov dword [eax + 0x10], edi
add esi, edx
mov edi, 7
jmp 0x4f6e67
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 0x4f6e25
mov ecx, dword [esp + 0x24]
jmp 0x4f6f09
mov ecx, ebp
shl ecx, 0x10
sub esi, ecx
test ebx, 0x8000
jne 0x4f6f06
cmp ebx, ebp
jae 0x4f6ea1
xor ecx, ecx
cmp dword [edx + 4], ecx
sete cl
mov dword [esp + 0x24], ecx
mov ecx, dword [edx + 0xc]
jmp 0x4f6eab
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 0x4f6ef3
mov ecx, dword [eax + 0x10]
movzx edx, byte [ecx + 1]
lea edi, [ecx + 1]
cmp byte [ecx], 0xff
jne 0x4f6ee6
cmp edx, 0x8f
jbe 0x4f6ed7
add esi, 0xff00
inc dword [eax + 0xc]
jmp 0x4f6eee
shl edx, 9
mov dword [eax + 0x10], edi
add esi, edx
mov edi, 7
jmp 0x4f6ef3
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 0x4f6eb1
mov ecx, dword [esp + 0x24]
jmp 0x4f6f09
mov ecx, dword [edx + 4]
xor ecx, dword [esp + 0x34]
mov edx, dword [esp + 0x1c]
je 0x4f6f15
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 0x4f7292
test ebp, 0x3de00
je 0x4f7292
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 0x4f7014
cmp ebx, ebp
mov ebx, ebp
jae 0x4f6fa6
mov ebp, dword [edx + 4]
mov ecx, dword [edx + 8]
jmp 0x4f6fb9
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 0x4f7002
mov ecx, dword [eax + 0x10]
movzx edx, byte [ecx + 1]
lea edi, [ecx + 1]
cmp byte [ecx], 0xff
jne 0x4f6ff5
cmp edx, 0x8f
jbe 0x4f6fe6
add esi, 0xff00
inc dword [eax + 0xc]
jmp 0x4f6ffd
shl edx, 9
mov dword [eax + 0x10], edi
add esi, edx
mov edi, 7
jmp 0x4f7002
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 0x4f6fc0
jmp 0x4f709c
mov ecx, ebp
shl ecx, 0x10
sub esi, ecx
test ebx, 0x8000
jne 0x4f7099
cmp ebx, ebp
jae 0x4f703c
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 0x4f7042
mov ebp, dword [edx + 4]
mov ecx, dword [edx + 8]
mov edx, dword [esp + 0x10]
mov dword [edx], ecx
test edi, edi
jne 0x4f708a
mov ecx, dword [eax + 0x10]
movzx edx, byte [ecx + 1]
lea edi, [ecx + 1]
cmp byte [ecx], 0xff
jne 0x4f707d
cmp edx, 0x8f
jbe 0x4f706e
add esi, 0xff00
inc dword [eax + 0xc]
jmp 0x4f7085
shl edx, 9
mov dword [eax + 0x10], edi
add esi, edx
mov edi, 7
jmp 0x4f708a
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 0x4f7048
jmp 0x4f709c
mov ebp, dword [edx + 4]
test ebp, ebp
mov ebp, dword [esp + 0x40]
je 0x4f728c
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 + 0x57a2f8]
mov dword [esp + 0x34], ecx
movzx ecx, byte [edx + 0x57a1f8]
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 0x4f7199
cmp ebx, ebp
mov ebx, ebp
jae 0x4f712c
mov ecx, dword [edx + 4]
mov dword [esp + 0x24], ecx
mov ecx, dword [edx + 8]
jmp 0x4f713b
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 0x4f7183
mov ecx, dword [eax + 0x10]
movzx edx, byte [ecx + 1]
lea edi, [ecx + 1]
cmp byte [ecx], 0xff
jne 0x4f7176
cmp edx, 0x8f
jbe 0x4f7167
add esi, 0xff00
inc dword [eax + 0xc]
jmp 0x4f717e
shl edx, 9
mov dword [eax + 0x10], edi
add esi, edx
mov edi, 7
jmp 0x4f7183
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 0x4f7141
mov edx, dword [esp + 0x24]
jmp 0x4f7229
mov ecx, ebp
shl ecx, 0x10
sub esi, ecx
test ebx, 0x8000
jne 0x4f7226
cmp ebx, ebp
jae 0x4f71c1
xor ecx, ecx
cmp dword [edx + 4], ecx
sete cl
mov dword [esp + 0x24], ecx
mov ecx, dword [edx + 0xc]
jmp 0x4f71cb
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 0x4f7213
mov ecx, dword [eax + 0x10]
movzx edx, byte [ecx + 1]
lea edi, [ecx + 1]
cmp byte [ecx], 0xff
jne 0x4f7206
cmp edx, 0x8f
jbe 0x4f71f7
add esi, 0xff00
inc dword [eax + 0xc]
jmp 0x4f720e
shl edx, 9
mov dword [eax + 0x10], edi
add esi, edx
mov edi, 7
jmp 0x4f7213
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 0x4f71d1
mov edx, dword [esp + 0x24]
jmp 0x4f7229
mov edx, dword [edx + 4]
xor edx, dword [esp + 0x34]
mov ecx, dword [esp + 0x1c]
je 0x4f7235
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 0x4f65e8
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 0x4f65d4
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 0x4f7742
mov ecx, dword [esp + 0x20]
test ecx, ecx
je 0x4f7742
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 0x4f772b
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 0x4f770c
mov edx, 0x1ef
shl edx, cl
test esi, edx
je 0x4f770c
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 0x4f741d
cmp dword [eax + 4], esi
mov dword [eax + 4], esi
mov ecx, dword [edx]
jae 0x4f73aa
mov ebx, dword [ecx + 4]
mov ecx, dword [ecx + 8]
jmp 0x4f73b5
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 0x4f7405
mov ecx, dword [eax + 0x10]
movzx edx, byte [ecx + 1]
lea edi, [ecx + 1]
cmp byte [ecx], 0xff
jne 0x4f73f5
cmp edx, 0x8f
jbe 0x4f73e6
add dword [eax], 0xff00
inc dword [eax + 0xc]
jmp 0x4f73fd
shl edx, 9
mov ecx, 7
add dword [eax], edx
mov dword [eax + 0x10], edi
jmp 0x4f7402
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 0x4f73c0
jmp 0x4f74b1
shl esi, 0x10
sub edi, esi
mov esi, dword [eax + 4]
mov dword [eax], edi
mov ecx, dword [edx]
test esi, 0x8000
jne 0x4f74ae
cmp esi, dword [ecx]
jae 0x4f7446
xor ebx, ebx
cmp dword [ecx + 4], ebx
mov ecx, dword [ecx + 0xc]
sete bl
jmp 0x4f744c
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 0x4f7499
mov ecx, dword [eax + 0x10]
movzx edx, byte [ecx + 1]
lea edi, [ecx + 1]
cmp byte [ecx], 0xff
jne 0x4f7489
cmp edx, 0x8f
jbe 0x4f747a
add dword [eax], 0xff00
inc dword [eax + 0xc]
jmp 0x4f7491
shl edx, 9
mov ecx, 7
add dword [eax], edx
mov dword [eax + 0x10], edi
jmp 0x4f7496
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 0x4f7454
jmp 0x4f74b1
mov ebx, dword [ecx + 4]
test ebx, ebx
je 0x4f76f4
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 0x4f74fe
mov ecx, edi
shr ecx, 0xe
and ecx, 0x10
or esi, ecx
jmp 0x4f750d
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 + 0x57a1f8]
movzx ebp, byte [edi + 0x57a2f8]
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 0x4f75cd
cmp dword [eax + 4], esi
mov dword [eax + 4], esi
mov ecx, dword [edx]
jae 0x4f755a
mov ebx, dword [ecx + 4]
mov ecx, dword [ecx + 8]
jmp 0x4f7565
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 0x4f75b5
mov ecx, dword [eax + 0x10]
movzx edx, byte [ecx + 1]
lea edi, [ecx + 1]
cmp byte [ecx], 0xff
jne 0x4f75a5
cmp edx, 0x8f
jbe 0x4f7596
add dword [eax], 0xff00
inc dword [eax + 0xc]
jmp 0x4f75ad
shl edx, 9
mov ecx, 7
add dword [eax], edx
mov dword [eax + 0x10], edi
jmp 0x4f75b2
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 0x4f7570
jmp 0x4f7661
shl esi, 0x10
sub edi, esi
mov esi, dword [eax + 4]
mov dword [eax], edi
mov ecx, dword [edx]
test esi, 0x8000
jne 0x4f765e
cmp esi, dword [ecx]
jae 0x4f75f6
xor ebx, ebx
cmp dword [ecx + 4], ebx
mov ecx, dword [ecx + 0xc]
sete bl
jmp 0x4f75fc
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 0x4f7649
mov ecx, dword [eax + 0x10]
movzx edx, byte [ecx + 1]
lea edi, [ecx + 1]
cmp byte [ecx], 0xff
jne 0x4f7639
cmp edx, 0x8f
jbe 0x4f762a
add dword [eax], 0xff00
inc dword [eax + 0xc]
jmp 0x4f7641
shl edx, 9
mov ecx, 7
add dword [eax], edx
mov dword [eax + 0x10], edi
jmp 0x4f7646
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 0x4f7604
jmp 0x4f7661
mov ebx, dword [ecx + 4]
xor ebx, ebp
mov edx, dword [esp + 0x1c]
je 0x4f766b
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 0x4f76d6
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 0x4f7701
cmp ebp, 3
jne 0x4f7701
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 0x4f7701
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 0x4f7330
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 0x4f7320
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x28
ret