Function at 0x4d09b0
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 0x4d173c
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 0x4d170d
mov ebp, dword [ecx]
mov dword [esp + 0x40], ebp
test ebp, ebp
je 0x4d16ec
test ebp, 0x200010
jne 0x4d0d67
mov edx, ebp
and edx, 0x1ef
je 0x4d0d67
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 0x4d0afc
cmp ebx, ebp
mov ebx, ebp
jae 0x4d0a8f
mov ebp, dword [edx + 4]
mov ecx, dword [edx + 8]
jmp 0x4d0aa2
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 0x4d0aea
mov ecx, dword [eax + 0x10]
movzx edx, byte [ecx + 1]
lea edi, [ecx + 1]
cmp byte [ecx], 0xff
jne 0x4d0add
cmp edx, 0x8f
jbe 0x4d0ace
add esi, 0xff00
inc dword [eax + 0xc]
jmp 0x4d0ae5
shl edx, 9
mov dword [eax + 0x10], edi
add esi, edx
mov edi, 7
jmp 0x4d0aea
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 0x4d0aa8
jmp 0x4d0b84
mov ecx, ebp
shl ecx, 0x10
sub esi, ecx
test ebx, 0x8000
jne 0x4d0b81
cmp ebx, ebp
jae 0x4d0b24
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 0x4d0b2a
mov ebp, dword [edx + 4]
mov ecx, dword [edx + 8]
mov edx, dword [esp + 0x10]
mov dword [edx], ecx
test edi, edi
jne 0x4d0b72
mov ecx, dword [eax + 0x10]
movzx edx, byte [ecx + 1]
lea edi, [ecx + 1]
cmp byte [ecx], 0xff
jne 0x4d0b65
cmp edx, 0x8f
jbe 0x4d0b56
add esi, 0xff00
inc dword [eax + 0xc]
jmp 0x4d0b6d
shl edx, 9
mov dword [eax + 0x10], edi
add esi, edx
mov edi, 7
jmp 0x4d0b72
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 0x4d0b30
jmp 0x4d0b84
mov ebp, dword [edx + 4]
test ebp, ebp
mov ebp, dword [esp + 0x40]
je 0x4d0d5d
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 + 0x555250]
mov dword [esp + 0x34], ecx
movzx ecx, byte [edx + 0x555150]
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 0x4d0c7a
cmp ebx, ebp
mov ebx, ebp
jae 0x4d0c0d
mov ebp, dword [edx + 4]
mov ecx, dword [edx + 8]
jmp 0x4d0c20
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 0x4d0c68
mov ecx, dword [eax + 0x10]
movzx edx, byte [ecx + 1]
lea edi, [ecx + 1]
cmp byte [ecx], 0xff
jne 0x4d0c5b
cmp edx, 0x8f
jbe 0x4d0c4c
add esi, 0xff00
inc dword [eax + 0xc]
jmp 0x4d0c63
shl edx, 9
mov dword [eax + 0x10], edi
add esi, edx
mov edi, 7
jmp 0x4d0c68
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 0x4d0c26
jmp 0x4d0d04
mov ecx, ebp
shl ecx, 0x10
sub esi, ecx
test ebx, 0x8000
jne 0x4d0d01
cmp ebx, ebp
jae 0x4d0ca2
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 0x4d0ca8
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 0x4d0cf2
mov ecx, dword [eax + 0x10]
movzx edx, byte [ecx + 1]
lea edi, [ecx + 1]
cmp byte [ecx], 0xff
jne 0x4d0ce5
cmp edx, 0x8f
jbe 0x4d0cd6
add esi, 0xff00
inc dword [eax + 0xc]
jmp 0x4d0ced
shl edx, 9
mov dword [eax + 0x10], edi
add esi, edx
mov edi, 7
jmp 0x4d0cf2
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 0x4d0cb0
jmp 0x4d0d04
mov ebp, dword [edx + 4]
xor ebp, dword [esp + 0x34]
mov ecx, dword [esp + 0x1c]
mov dword [esp + 0x24], ebp
je 0x4d0d14
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 0x4d108c
test ebp, 0xf78
je 0x4d108c
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 0x4d0e2a
cmp ebx, ebp
mov ebx, ebp
jae 0x4d0dbd
mov ebp, dword [edx + 4]
mov ecx, dword [edx + 8]
jmp 0x4d0dd0
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 0x4d0e18
mov ecx, dword [eax + 0x10]
movzx edx, byte [ecx + 1]
lea edi, [ecx + 1]
cmp byte [ecx], 0xff
jne 0x4d0e0b
cmp edx, 0x8f
jbe 0x4d0dfc
add esi, 0xff00
inc dword [eax + 0xc]
jmp 0x4d0e13
shl edx, 9
mov dword [eax + 0x10], edi
add esi, edx
mov edi, 7
jmp 0x4d0e18
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 0x4d0dd6
jmp 0x4d0eb4
mov ecx, ebp
shl ecx, 0x10
sub esi, ecx
test ebx, 0x8000
jne 0x4d0eb1
cmp ebx, ebp
jae 0x4d0e52
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 0x4d0e58
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 0x4d0ea2
mov ecx, dword [eax + 0x10]
movzx edx, byte [ecx + 1]
lea edi, [ecx + 1]
cmp byte [ecx], 0xff
jne 0x4d0e95
cmp edx, 0x8f
jbe 0x4d0e86
add esi, 0xff00
inc dword [eax + 0xc]
jmp 0x4d0e9d
shl edx, 9
mov dword [eax + 0x10], edi
add esi, edx
mov edi, 7
jmp 0x4d0ea2
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 0x4d0e60
jmp 0x4d0eb4
mov ebp, dword [edx + 4]
test ebp, ebp
mov ebp, dword [esp + 0x40]
je 0x4d1082
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 + 0x555250]
mov dword [esp + 0x34], ecx
movzx ecx, byte [edx + 0x555150]
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 0x4d0fb8
cmp ebx, ebp
mov ebx, ebp
jae 0x4d0f44
mov ecx, dword [edx + 4]
mov dword [esp + 0x24], ecx
mov ecx, dword [edx + 8]
jmp 0x4d0f53
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 0x4d0fa2
mov ecx, dword [eax + 0x10]
movzx edx, byte [ecx + 1]
lea edi, [ecx + 1]
cmp byte [ecx], 0xff
jne 0x4d0f95
cmp edx, 0x8f
jbe 0x4d0f86
add esi, 0xff00
inc dword [eax + 0xc]
jmp 0x4d0f9d
shl edx, 9
mov dword [eax + 0x10], edi
add esi, edx
mov edi, 7
jmp 0x4d0fa2
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 0x4d0f60
mov ecx, dword [esp + 0x24]
jmp 0x4d1048
mov ecx, ebp
shl ecx, 0x10
sub esi, ecx
test ebx, 0x8000
jne 0x4d1045
cmp ebx, ebp
jae 0x4d0fdc
xor ecx, ecx
cmp dword [edx + 4], ecx
sete cl
mov dword [esp + 0x24], ecx
mov ecx, dword [edx + 0xc]
jmp 0x4d0fe6
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 0x4d1032
mov ecx, dword [eax + 0x10]
movzx edx, byte [ecx + 1]
lea edi, [ecx + 1]
cmp byte [ecx], 0xff
jne 0x4d1025
cmp edx, 0x8f
jbe 0x4d1016
add esi, 0xff00
inc dword [eax + 0xc]
jmp 0x4d102d
shl edx, 9
mov dword [eax + 0x10], edi
add esi, edx
mov edi, 7
jmp 0x4d1032
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 0x4d0ff0
mov ecx, dword [esp + 0x24]
jmp 0x4d1048
mov ecx, dword [edx + 4]
xor ecx, dword [esp + 0x34]
mov edx, dword [esp + 0x1c]
je 0x4d1054
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 0x4d13a0
test ebp, 0x7bc0
je 0x4d13a0
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 0x4d114b
cmp ebx, ebp
mov ebx, ebp
jae 0x4d10de
mov ebp, dword [edx + 4]
mov ecx, dword [edx + 8]
jmp 0x4d10f1
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 0x4d1139
mov ecx, dword [eax + 0x10]
movzx edx, byte [ecx + 1]
lea edi, [ecx + 1]
cmp byte [ecx], 0xff
jne 0x4d112c
cmp edx, 0x8f
jbe 0x4d111d
add esi, 0xff00
inc dword [eax + 0xc]
jmp 0x4d1134
shl edx, 9
mov dword [eax + 0x10], edi
add esi, edx
mov edi, 7
jmp 0x4d1139
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 0x4d10f7
jmp 0x4d11d4
mov ecx, ebp
shl ecx, 0x10
sub esi, ecx
test ebx, 0x8000
jne 0x4d11d1
cmp ebx, ebp
jae 0x4d1173
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 0x4d1179
mov ebp, dword [edx + 4]
mov ecx, dword [edx + 8]
mov edx, dword [esp + 0x10]
mov dword [edx], ecx
nop
test edi, edi
jne 0x4d11c2
mov ecx, dword [eax + 0x10]
movzx edx, byte [ecx + 1]
lea edi, [ecx + 1]
cmp byte [ecx], 0xff
jne 0x4d11b5
cmp edx, 0x8f
jbe 0x4d11a6
add esi, 0xff00
inc dword [eax + 0xc]
jmp 0x4d11bd
shl edx, 9
mov dword [eax + 0x10], edi
add esi, edx
mov edi, 7
jmp 0x4d11c2
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 0x4d1180
jmp 0x4d11d4
mov ebp, dword [edx + 4]
test ebp, ebp
mov ebp, dword [esp + 0x40]
je 0x4d1396
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 + 0x555250]
mov dword [esp + 0x34], ecx
movzx ecx, byte [edx + 0x555150]
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 0x4d12cd
cmp ebx, ebp
mov ebx, ebp
jae 0x4d1260
mov ecx, dword [edx + 4]
mov dword [esp + 0x24], ecx
mov ecx, dword [edx + 8]
jmp 0x4d126f
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 0x4d12b7
mov ecx, dword [eax + 0x10]
movzx edx, byte [ecx + 1]
lea edi, [ecx + 1]
cmp byte [ecx], 0xff
jne 0x4d12aa
cmp edx, 0x8f
jbe 0x4d129b
add esi, 0xff00
inc dword [eax + 0xc]
jmp 0x4d12b2
shl edx, 9
mov dword [eax + 0x10], edi
add esi, edx
mov edi, 7
jmp 0x4d12b7
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 0x4d1275
mov ecx, dword [esp + 0x24]
jmp 0x4d1359
mov ecx, ebp
shl ecx, 0x10
sub esi, ecx
test ebx, 0x8000
jne 0x4d1356
cmp ebx, ebp
jae 0x4d12f1
xor ecx, ecx
cmp dword [edx + 4], ecx
sete cl
mov dword [esp + 0x24], ecx
mov ecx, dword [edx + 0xc]
jmp 0x4d12fb
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 0x4d1343
mov ecx, dword [eax + 0x10]
movzx edx, byte [ecx + 1]
lea edi, [ecx + 1]
cmp byte [ecx], 0xff
jne 0x4d1336
cmp edx, 0x8f
jbe 0x4d1327
add esi, 0xff00
inc dword [eax + 0xc]
jmp 0x4d133e
shl edx, 9
mov dword [eax + 0x10], edi
add esi, edx
mov edi, 7
jmp 0x4d1343
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 0x4d1301
mov ecx, dword [esp + 0x24]
jmp 0x4d1359
mov ecx, dword [edx + 4]
xor ecx, dword [esp + 0x34]
mov edx, dword [esp + 0x1c]
je 0x4d1365
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 0x4d16e2
test ebp, 0x3de00
je 0x4d16e2
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 0x4d1464
cmp ebx, ebp
mov ebx, ebp
jae 0x4d13f6
mov ebp, dword [edx + 4]
mov ecx, dword [edx + 8]
jmp 0x4d1409
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 0x4d1452
mov ecx, dword [eax + 0x10]
movzx edx, byte [ecx + 1]
lea edi, [ecx + 1]
cmp byte [ecx], 0xff
jne 0x4d1445
cmp edx, 0x8f
jbe 0x4d1436
add esi, 0xff00
inc dword [eax + 0xc]
jmp 0x4d144d
shl edx, 9
mov dword [eax + 0x10], edi
add esi, edx
mov edi, 7
jmp 0x4d1452
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 0x4d1410
jmp 0x4d14ec
mov ecx, ebp
shl ecx, 0x10
sub esi, ecx
test ebx, 0x8000
jne 0x4d14e9
cmp ebx, ebp
jae 0x4d148c
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 0x4d1492
mov ebp, dword [edx + 4]
mov ecx, dword [edx + 8]
mov edx, dword [esp + 0x10]
mov dword [edx], ecx
test edi, edi
jne 0x4d14da
mov ecx, dword [eax + 0x10]
movzx edx, byte [ecx + 1]
lea edi, [ecx + 1]
cmp byte [ecx], 0xff
jne 0x4d14cd
cmp edx, 0x8f
jbe 0x4d14be
add esi, 0xff00
inc dword [eax + 0xc]
jmp 0x4d14d5
shl edx, 9
mov dword [eax + 0x10], edi
add esi, edx
mov edi, 7
jmp 0x4d14da
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 0x4d1498
jmp 0x4d14ec
mov ebp, dword [edx + 4]
test ebp, ebp
mov ebp, dword [esp + 0x40]
je 0x4d16dc
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 + 0x555250]
mov dword [esp + 0x34], ecx
movzx ecx, byte [edx + 0x555150]
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 0x4d15e9
cmp ebx, ebp
mov ebx, ebp
jae 0x4d157c
mov ecx, dword [edx + 4]
mov dword [esp + 0x24], ecx
mov ecx, dword [edx + 8]
jmp 0x4d158b
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 0x4d15d3
mov ecx, dword [eax + 0x10]
movzx edx, byte [ecx + 1]
lea edi, [ecx + 1]
cmp byte [ecx], 0xff
jne 0x4d15c6
cmp edx, 0x8f
jbe 0x4d15b7
add esi, 0xff00
inc dword [eax + 0xc]
jmp 0x4d15ce
shl edx, 9
mov dword [eax + 0x10], edi
add esi, edx
mov edi, 7
jmp 0x4d15d3
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 0x4d1591
mov edx, dword [esp + 0x24]
jmp 0x4d1679
mov ecx, ebp
shl ecx, 0x10
sub esi, ecx
test ebx, 0x8000
jne 0x4d1676
cmp ebx, ebp
jae 0x4d1611
xor ecx, ecx
cmp dword [edx + 4], ecx
sete cl
mov dword [esp + 0x24], ecx
mov ecx, dword [edx + 0xc]
jmp 0x4d161b
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 0x4d1663
mov ecx, dword [eax + 0x10]
movzx edx, byte [ecx + 1]
lea edi, [ecx + 1]
cmp byte [ecx], 0xff
jne 0x4d1656
cmp edx, 0x8f
jbe 0x4d1647
add esi, 0xff00
inc dword [eax + 0xc]
jmp 0x4d165e
shl edx, 9
mov dword [eax + 0x10], edi
add esi, edx
mov edi, 7
jmp 0x4d1663
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 0x4d1621
mov edx, dword [esp + 0x24]
jmp 0x4d1679
mov edx, dword [edx + 4]
xor edx, dword [esp + 0x34]
mov ecx, dword [esp + 0x1c]
je 0x4d1685
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 0x4d0a38
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 0x4d0a24
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 0x4d1b92
mov ecx, dword [esp + 0x20]
test ecx, ecx
je 0x4d1b92
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 0x4d1b7b
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 0x4d1b5c
mov edx, 0x1ef
shl edx, cl
test esi, edx
je 0x4d1b5c
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 0x4d186d
cmp dword [eax + 4], esi
mov dword [eax + 4], esi
mov ecx, dword [edx]
jae 0x4d17fa
mov ebx, dword [ecx + 4]
mov ecx, dword [ecx + 8]
jmp 0x4d1805
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 0x4d1855
mov ecx, dword [eax + 0x10]
movzx edx, byte [ecx + 1]
lea edi, [ecx + 1]
cmp byte [ecx], 0xff
jne 0x4d1845
cmp edx, 0x8f
jbe 0x4d1836
add dword [eax], 0xff00
inc dword [eax + 0xc]
jmp 0x4d184d
shl edx, 9
mov ecx, 7
add dword [eax], edx
mov dword [eax + 0x10], edi
jmp 0x4d1852
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 0x4d1810
jmp 0x4d1901
shl esi, 0x10
sub edi, esi
mov esi, dword [eax + 4]
mov dword [eax], edi
mov ecx, dword [edx]
test esi, 0x8000
jne 0x4d18fe
cmp esi, dword [ecx]
jae 0x4d1896
xor ebx, ebx
cmp dword [ecx + 4], ebx
mov ecx, dword [ecx + 0xc]
sete bl
jmp 0x4d189c
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 0x4d18e9
mov ecx, dword [eax + 0x10]
movzx edx, byte [ecx + 1]
lea edi, [ecx + 1]
cmp byte [ecx], 0xff
jne 0x4d18d9
cmp edx, 0x8f
jbe 0x4d18ca
add dword [eax], 0xff00
inc dword [eax + 0xc]
jmp 0x4d18e1
shl edx, 9
mov ecx, 7
add dword [eax], edx
mov dword [eax + 0x10], edi
jmp 0x4d18e6
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 0x4d18a4
jmp 0x4d1901
mov ebx, dword [ecx + 4]
test ebx, ebx
je 0x4d1b44
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 0x4d194e
mov ecx, edi
shr ecx, 0xe
and ecx, 0x10
or esi, ecx
jmp 0x4d195d
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 + 0x555150]
movzx ebp, byte [edi + 0x555250]
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 0x4d1a1d
cmp dword [eax + 4], esi
mov dword [eax + 4], esi
mov ecx, dword [edx]
jae 0x4d19aa
mov ebx, dword [ecx + 4]
mov ecx, dword [ecx + 8]
jmp 0x4d19b5
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 0x4d1a05
mov ecx, dword [eax + 0x10]
movzx edx, byte [ecx + 1]
lea edi, [ecx + 1]
cmp byte [ecx], 0xff
jne 0x4d19f5
cmp edx, 0x8f
jbe 0x4d19e6
add dword [eax], 0xff00
inc dword [eax + 0xc]
jmp 0x4d19fd
shl edx, 9
mov ecx, 7
add dword [eax], edx
mov dword [eax + 0x10], edi
jmp 0x4d1a02
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 0x4d19c0
jmp 0x4d1ab1
shl esi, 0x10
sub edi, esi
mov esi, dword [eax + 4]
mov dword [eax], edi
mov ecx, dword [edx]
test esi, 0x8000
jne 0x4d1aae
cmp esi, dword [ecx]
jae 0x4d1a46
xor ebx, ebx
cmp dword [ecx + 4], ebx
mov ecx, dword [ecx + 0xc]
sete bl
jmp 0x4d1a4c
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 0x4d1a99
mov ecx, dword [eax + 0x10]
movzx edx, byte [ecx + 1]
lea edi, [ecx + 1]
cmp byte [ecx], 0xff
jne 0x4d1a89
cmp edx, 0x8f
jbe 0x4d1a7a
add dword [eax], 0xff00
inc dword [eax + 0xc]
jmp 0x4d1a91
shl edx, 9
mov ecx, 7
add dword [eax], edx
mov dword [eax + 0x10], edi
jmp 0x4d1a96
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 0x4d1a54
jmp 0x4d1ab1
mov ebx, dword [ecx + 4]
xor ebx, ebp
mov edx, dword [esp + 0x1c]
je 0x4d1abb
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 0x4d1b26
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 0x4d1b51
cmp ebp, 3
jne 0x4d1b51
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 0x4d1b51
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 0x4d1780
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 0x4d1770
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x28
ret