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

Disassembly:
sub esp, 0x30
mov eax, dword [esp + 0x34]
push ebx
push ebp
push esi
mov dword [esp + 0x24], 8
push edi
mov ebx, dword [eax + 0x40]
mov edi, dword [eax + 0x20]
mov edx, dword [eax + 0xc0]
mov esi, dword [eax + 0x60]
mov ecx, dword [eax + 0xe0]
mov ebp, edi
or ebp, ebx
or ebp, esi
mov dword [esp + 0x2c], ebx
or ebp, dword [eax + 0x80]
mov dword [esp + 0x30], edx
mov edx, dword [eax + 0xa0]
mov ebx, dword [esp + 0x30]
or ebp, edx
or ebp, ebx
or ebp, ecx
jne 0x520c1b
mov ecx, dword [eax]
shl ecx, 2
mov dword [eax], ecx
mov dword [eax + 0x20], ecx
mov dword [eax + 0x40], ecx
mov dword [eax + 0x60], ecx
mov dword [eax + 0x80], ecx
mov dword [eax + 0xa0], ecx
mov dword [eax + 0xc0], ecx
mov dword [eax + 0xe0], ecx
jmp 0x520db6
mov ebp, dword [esp + 0x2c]
add ebx, ebp
mov ebp, dword [esp + 0x30]
imul ebx, ebx, 0x1151
imul ebp, ebp, 0x3b21
mov dword [esp + 0x10], ebx
sub ebx, ebp
mov dword [esp + 0x24], ebx
mov ebx, dword [esp + 0x2c]
mov ebp, dword [esp + 0x10]
imul ebx, ebx, 0x187e
add ebx, ebp
mov ebp, dword [eax + 0x80]
mov dword [esp + 0x30], ebx
mov ebx, dword [eax]
add ebp, ebx
shl ebp, 0xd
mov dword [esp + 0x2c], ebp
sub ebx, dword [eax + 0x80]
mov ebp, dword [esp + 0x30]
shl ebx, 0xd
mov dword [esp + 0x20], ebx
mov ebx, dword [esp + 0x2c]
add ebp, ebx
mov dword [esp + 0x38], ebp
sub ebx, dword [esp + 0x30]
mov ebp, dword [esp + 0x24]
mov dword [esp + 0x2c], ebx
mov ebx, dword [esp + 0x20]
add ebx, ebp
mov dword [esp + 0x34], ebx
mov ebx, dword [esp + 0x20]
sub ebx, ebp
mov dword [esp + 0x30], ebx
lea ebx, [ecx + edi]
mov dword [esp + 0x10], ebx
lea ebx, [edx + esi]
mov dword [esp + 0x14], ebx
lea ebp, [edx + edi]
imul edi, edi, 0x300b
imul edx, edx, 0x41b3
mov dword [esp + 0x1c], ebp
lea ebx, [ecx + esi]
imul ecx, ecx, 0x98e
imul esi, esi, 0x6254
add ebp, ebx
imul ebx, ebx, 0x3ec5
imul ebp, ebp, 0x25a1
mov dword [esp + 0x20], ebp
mov ebp, dword [esp + 0x10]
imul ebp, ebp, 0xffffe333
mov dword [esp + 0x10], ebp
mov ebp, dword [esp + 0x14]
imul ebp, ebp, 0xffffadfd
mov dword [esp + 0x14], ebp
mov ebp, dword [esp + 0x20]
sub ebp, ebx
mov ebx, dword [esp + 0x1c]
imul ebx, ebx, 0xc7c
mov dword [esp + 0x18], ebp
mov ebp, dword [esp + 0x20]
add esi, dword [esp + 0x18]
sub ebp, ebx
mov ebx, dword [esp + 0x10]
add esi, dword [esp + 0x14]
add edi, ebp
add ecx, ebx
add ecx, dword [esp + 0x18]
add edi, ebx
mov ebx, dword [esp + 0x38]
add edx, ebp
add edx, dword [esp + 0x14]
lea ebp, [ebx + edi + 0x400]
sub ebx, edi
sar ebp, 0xb
add ebx, 0x400
sar ebx, 0xb
mov dword [eax], ebp
mov dword [eax + 0xe0], ebx
mov edi, dword [esp + 0x34]
lea ebx, [edi + esi + 0x400]
sub edi, esi
mov esi, dword [esp + 0x30]
add edi, 0x400
sar edi, 0xb
mov dword [eax + 0xc0], edi
lea edi, [esi + edx + 0x400]
sub esi, edx
mov edx, dword [esp + 0x2c]
add esi, 0x400
sar esi, 0xb
mov dword [eax + 0xa0], esi
lea esi, [edx + ecx + 0x400]
sub edx, ecx
sar ebx, 0xb
sar edi, 0xb
sar esi, 0xb
add edx, 0x400
sar edx, 0xb
mov dword [eax + 0x20], ebx
mov dword [eax + 0x40], edi
mov dword [eax + 0x60], esi
mov dword [eax + 0x80], edx
mov ecx, dword [esp + 0x28]
add eax, 4
dec ecx
mov dword [esp + 0x28], ecx
jne 0x520bb3
mov eax, dword [esp + 0x4c]
mov edi, dword [esp + 0x44]
lea ecx, [eax + eax]
mov eax, dword [esp + 0x48]
mov dword [esp + 0x30], edi
mov dword [esp + 0x3c], ecx
add eax, 2
mov dword [esp + 0x38], 8
lea ebx, [ebx]
mov ecx, dword [edi + 0x14]
mov ebp, dword [edi + 4]
mov ebx, dword [edi + 0xc]
mov edx, dword [edi + 0x1c]
mov esi, dword [edi + 0x18]
mov dword [esp + 0x28], ebp
mov dword [esp + 0x44], ecx
mov ecx, dword [edi + 8]
or ebp, ecx
or ebp, ebx
mov dword [esp + 0x34], ebx
or ebp, dword [esp + 0x44]
or ebp, esi
or ebp, edx
mov dword [esp + 0x24], edx
or ebp, dword [edi + 0x10]
jne 0x520e58
mov edx, dword [edi]
add edx, 0x10
sar edx, 5
movsx ecx, dx
add ecx, 0x100
mov word [eax - 2], cx
mov word [eax], cx
mov word [eax + 2], cx
mov word [eax + 4], cx
mov word [eax + 6], cx
mov word [eax + 8], cx
mov word [eax + 0xa], cx
mov word [eax + 0xc], cx
jmp 0x52114e
mov ebp, dword [edi + 0x10]
lea edx, [esi + ecx]
imul ecx, ecx, 0x187e
imul esi, esi, 0x3b21
imul edx, edx, 0x1151
add ecx, edx
mov ebx, edx
sub ebx, esi
mov esi, ecx
mov ecx, dword [edi]
lea edx, [ecx + ebp]
sub ecx, ebp
mov ebp, dword [esp + 0x28]
shl ecx, 0xd
shl edx, 0xd
mov edi, ecx
lea ecx, [edx + esi]
sub edx, esi
lea esi, [edi + ebx]
sub edi, ebx
mov ebx, dword [esp + 0x24]
add ebx, ebp
mov ebp, dword [esp + 0x44]
mov dword [esp + 0x10], ebx
mov ebx, dword [esp + 0x34]
add ebp, ebx
mov dword [esp + 0x14], ebp
mov ebp, dword [esp + 0x24]
add ebp, ebx
mov ebx, dword [esp + 0x44]
mov dword [esp + 0x18], ebp
mov ebp, dword [esp + 0x28]
add ebp, ebx
mov ebx, dword [esp + 0x18]
mov dword [esp + 0x1c], ebp
add ebp, ebx
imul ebx, ebx, 0x3ec5
imul ebp, ebp, 0x25a1
mov dword [esp + 0x20], ebp
mov ebp, dword [esp + 0x10]
imul ebp, ebp, 0xffffe333
mov dword [esp + 0x10], ebp
mov ebp, dword [esp + 0x14]
imul ebp, ebp, 0xffffadfd
mov dword [esp + 0x14], ebp
mov ebp, dword [esp + 0x20]
sub ebp, ebx
mov ebx, dword [esp + 0x1c]
imul ebx, ebx, 0xc7c
mov dword [esp + 0x18], ebp
mov ebp, dword [esp + 0x20]
sub ebp, ebx
mov ebx, dword [esp + 0x24]
imul ebx, ebx, 0x98e
mov dword [esp + 0x1c], ebp
add ebx, dword [esp + 0x10]
add ebx, dword [esp + 0x18]
mov ebp, dword [esp + 0x1c]
mov dword [esp + 0x2c], ebx
mov ebx, dword [esp + 0x44]
imul ebx, ebx, 0x41b3
add ebx, ebp
add ebx, dword [esp + 0x14]
mov ebp, dword [esp + 0x18]
mov dword [esp + 0x20], ebx
mov ebx, dword [esp + 0x34]
imul ebx, ebx, 0x6254
add ebx, ebp
add ebx, dword [esp + 0x14]
mov ebp, dword [esp + 0x1c]
mov dword [esp + 0x24], ebx
mov ebx, dword [esp + 0x28]
imul ebx, ebx, 0x300b
add ebx, ebp
add ebx, dword [esp + 0x10]
lea ebp, [ecx + ebx + 0x20000]
sub ecx, ebx
add ecx, 0x20000
sar ecx, 0x12
add ecx, 0x100
mov word [eax + 0xc], cx
mov ecx, dword [esp + 0x24]
lea ebx, [esi + ecx + 0x20000]
sub esi, ecx
mov ecx, dword [esp + 0x20]
add esi, 0x20000
sar esi, 0x12
add esi, 0x100
mov word [eax + 0xa], si
lea esi, [edi + ecx + 0x20000]
sar esi, 0x12
sub edi, ecx
mov ecx, dword [esp + 0x2c]
add esi, 0x100
mov word [eax + 2], si
lea esi, [edx + ecx + 0x20000]
sub edx, ecx
sar ebp, 0x12
sar ebx, 0x12
add edi, 0x20000
add edx, 0x20000
add ebp, 0x100
add ebx, 0x100
sar edi, 0x12
sar esi, 0x12
sar edx, 0x12
mov word [eax - 2], bp
mov word [eax], bx
mov ecx, dword [eax - 2]
add edi, 0x100
add esi, 0x100
add edx, 0x100
test ecx, 0xfe00fe00
mov word [eax + 8], di
mov word [eax + 4], si
mov word [eax + 6], dx
je 0x521066
test ch, 0xfe
je 0x521046
test ch, ch
jns 0x52103a
and ecx, 0xffff0000
jmp 0x521046
and ecx, 0xffff01ff
or ecx, 0x1ff
test ecx, 0xfe000000
je 0x521066
test ecx, ecx
jns 0x52105a
and ecx, 0xffff
jmp 0x521066
and ecx, 0xffff
or ecx, 0x1ff0000
mov dword [eax - 2], ecx
mov ecx, dword [eax + 2]
test ecx, 0xfe00fe00
je 0x5210b1
test ch, 0xfe
je 0x521091
test ch, ch
jns 0x521085
and ecx, 0xffff0000
jmp 0x521091
and ecx, 0xffff01ff
or ecx, 0x1ff
test ecx, 0xfe000000
je 0x5210b1
test ecx, ecx
jns 0x5210a5
and ecx, 0xffff
jmp 0x5210b1
and ecx, 0xffff
or ecx, 0x1ff0000
mov dword [eax + 2], ecx
mov ecx, dword [eax + 6]
test ecx, 0xfe00fe00
je 0x5210fc
test ch, 0xfe
je 0x5210dc
test ch, ch
jns 0x5210d0
and ecx, 0xffff0000
jmp 0x5210dc
and ecx, 0xffff01ff
or ecx, 0x1ff
test ecx, 0xfe000000
je 0x5210fc
test ecx, ecx
jns 0x5210f0
and ecx, 0xffff
jmp 0x5210fc
and ecx, 0xffff
or ecx, 0x1ff0000
mov dword [eax + 6], ecx
mov ecx, dword [eax + 0xa]
test ecx, 0xfe00fe00
je 0x521147
test ch, 0xfe
je 0x521127
test ch, ch
jns 0x52111b
and ecx, 0xffff0000
jmp 0x521127
and ecx, 0xffff01ff
or ecx, 0x1ff
test ecx, 0xfe000000
je 0x521147
test ecx, ecx
jns 0x52113b
and ecx, 0xffff
jmp 0x521147
and ecx, 0xffff
or ecx, 0x1ff0000
mov edi, dword [esp + 0x30]
mov dword [eax + 0xa], ecx
mov edx, dword [esp + 0x3c]
mov ecx, dword [esp + 0x38]
add edi, 0x20
add eax, edx
dec ecx
mov dword [esp + 0x30], edi
mov dword [esp + 0x38], ecx
jne 0x520df0
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x30
ret