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

Disassembly:
sub esp, 0x104
push ebx
push ebp
push esi
push edi
mov ecx, dword [esp + 0x13c]
mov eax, dword [ecx + 0x68]
mov dword [esp + 0x18], eax
mov edx, dword [ecx + 0x64]
mov eax, dword [ecx + 0x10]
and eax, 0xffffc000
mov dword [esp + 0x60], edx
cdq
and edx, 0x3fff
add eax, edx
mov ebx, eax
mov esi, dword [ecx + 0x18]
lea eax, [esi - 1]
or eax, 0x3fff
sar ebx, 0xe
inc eax
cdq
and edx, 0x3fff
add eax, edx
sar eax, 0xe
mov dword [esp + 0x38], eax
mov eax, dword [ecx + 0x14]
and eax, 0xffffc000
cdq
and edx, 0x3fff
add eax, edx
mov ebp, eax
mov edi, dword [ecx + 0x1c]
lea eax, [edi - 1]
or eax, 0x3fff
sar ebp, 0xe
inc eax
cdq
and edx, 0x3fff
add eax, edx
sar eax, 0xe
mov dword [esp + 0x30], eax
mov eax, dword [ecx + 0x4c]
dec eax
or eax, 0x3fff
inc eax
cdq
and edx, 0x3fff
add eax, edx
sar eax, 0xe
mov dword [esp + 0x44], eax
mov eax, dword [ecx + 0x10]
lea edx, [ebx + 1]
shl edx, 0xe
sub edx, eax
mov eax, dword [esp + 0x38]
shl eax, 0xe
sub esi, eax
add esi, 0x4000
mov dword [esp + 0xcc], esi
mov esi, dword [ecx + 0x14]
lea eax, [ebp + 1]
shl eax, 0xe
sub eax, esi
mov esi, dword [esp + 0x30]
shl esi, 0xe
sub edi, esi
mov esi, dword [esp + 0x30]
add edi, 0x4000
mov dword [esp + 0xa0], edi
mov edi, esi
sub edi, ebp
cmp edi, 2
mov dword [esp + 0x94], ebx
mov dword [esp + 0x4c], edx
jge 0x53bf6d
mov eax, dword [ecx + 0x1c]
sub eax, dword [ecx + 0x14]
mov edi, dword [esp + 0x38]
sub edi, ebx
cmp edi, 2
jge 0x53bf82
mov edx, dword [ecx + 0x18]
sub edx, dword [ecx + 0x10]
mov dword [esp + 0x4c], edx
cmp ebp, esi
mov edi, dword [ecx + 0x44]
mov dword [esp + 0x24], edi
mov dword [esp + 0x28], eax
mov dword [esp + 0x2c], ebp
jge 0x53c6e2
mov eax, dword [esp + 0x44]
dec eax
mov dword [esp + 0xb4], eax
jmp 0x53bfb0
mov edx, dword [esp + 0x4c]
jmp 0x53bfb0
mov eax, dword [ecx + 8]
imul eax, dword [esp + 0x2c]
mov ebp, dword [ecx + 4]
mov esi, dword [ecx + 0x40]
add eax, ebp
lea ebp, [ebx*4]
add eax, ebp
mov dword [esp + 0x34], eax
mov dword [esp + 0x1c], edx
mov eax, edi
cdq
and edx, 0x3fff
add eax, edx
mov edx, dword [esp + 0xb4]
sar eax, 0xe
cmp eax, edx
mov dword [esp + 0x20], esi
mov dword [esp + 0x14], 1
jl 0x53c00a
mov eax, dword [ecx + 0x4c]
dec eax
or eax, 0x3fff
sub eax, 0x3fff
mov dword [esp + 0x24], eax
mov edi, eax
mov eax, dword [esp + 0x30]
mov edx, dword [esp + 0x2c]
dec eax
cmp edx, eax
jne 0x53c01f
mov dword [esp + 0x14], 0
mov eax, edi
cdq
and edx, 0x3fff
add eax, edx
mov edx, edi
sar eax, 0xe
and edx, 0x80003fff
jns 0x53c03f
dec edx
or edx, 0xffffc000
inc edx
mov ebp, dword [ecx + 0x38]
imul ebp, eax
mov dword [esp + 0x10], edx
mov edx, dword [ecx + 0x34]
add ebp, edx
mov dword [esp + 0x68], ebp
mov ebp, dword [esp + 0x14]
add eax, ebp
imul eax, dword [ecx + 0x38]
add eax, edx
mov dword [esp + 0x6c], eax
cmp ebx, dword [esp + 0x38]
mov dword [esp + 0x44], ebx
jge 0x53c68d
jmp 0x53c080
mov esi, dword [esp + 0x20]
jmp 0x53c080
mov eax, dword [esp + 0x1c]
imul dword [esp + 0x18]
shrd eax, edx, 0xe
mov dword [esp + 0x50], eax
mov ecx, dword [esp + 0x50]
mov eax, esi
and eax, 0xffffc000
cdq
and edx, 0x3fff
add eax, edx
mov ebx, eax
sar ebx, 0xe
lea eax, [ecx + esi - 1]
or eax, 0x3fff
inc eax
cdq
and edx, 0x3fff
add eax, edx
sar eax, 0xe
mov edx, eax
shl edx, 0xe
mov ebp, ecx
sub ebp, edx
lea edx, [esi + ebp + 0x4000]
mov dword [esp + 0x5c], edx
lea edi, [ebx + 1]
shl edi, 0xe
mov edx, eax
sub edx, ebx
sub edi, esi
cmp edx, 2
mov dword [esp + 0x40], ecx
mov dword [esp + 0xa8], ebx
mov dword [esp + 0x90], edx
jge 0x53c0f8
mov edi, ecx
xor ecx, ecx
mov dword [esp + 0x70], ecx
mov dword [esp + 0x74], ecx
mov dword [esp + 0x78], ecx
mov dword [esp + 0x7c], ecx
mov dword [esp + 0x80], ecx
mov dword [esp + 0x84], ecx
dec eax
mov dword [esp + 0x88], ecx
mov dword [esp + 0x64], eax
mov dword [esp + 0x8c], ecx
mov dword [esp + 0x3c], ecx
lea eax, [esp + 0x74]
mov edx, dword [esp + ecx*4 + 0x68]
mov esi, dword [eax - 4]
lea ecx, [edx + ebx*4]
movzx edx, byte [ecx]
mov ebp, dword [eax]
imul edx, edi
add edx, esi
movzx esi, byte [ecx + 1]
imul esi, edi
add esi, ebp
mov ebp, dword [eax + 4]
mov dword [esp + 0x14], esi
mov dword [eax], esi
movzx esi, byte [ecx + 2]
movzx ecx, byte [ecx + 3]
imul esi, edi
imul ecx, edi
add ebp, esi
mov esi, dword [eax + 8]
add ecx, esi
lea esi, [ebx + 1]
cmp esi, dword [esp + 0x64]
mov dword [eax - 4], edx
mov dword [eax + 4], ebp
mov dword [eax + 8], ecx
jge 0x53c219
mov dword [esp + 0x58], edx
mov edx, dword [esp + 0x14]
mov dword [esp + 0x14], ecx
mov ecx, dword [esp + 0x3c]
mov dword [esp + 0x54], edx
mov edx, dword [esp + ecx*4 + 0x68]
lea ecx, [edx + esi*4]
mov edx, dword [esp + 0x64]
sub edx, esi
mov dword [esp + 0x48], ebp
add esi, edx
jmp 0x53c1b0
movzx ebx, byte [ecx]
mov ebp, dword [esp + 0x58]
shl ebx, 0xe
add ebp, ebx
movzx ebx, byte [ecx + 1]
mov dword [esp + 0x58], ebp
mov ebp, dword [esp + 0x54]
shl ebx, 0xe
add ebp, ebx
movzx ebx, byte [ecx + 2]
mov dword [esp + 0x54], ebp
mov ebp, dword [esp + 0x48]
shl ebx, 0xe
add ebp, ebx
movzx ebx, byte [ecx + 3]
mov dword [esp + 0x48], ebp
mov ebp, dword [esp + 0x14]
shl ebx, 0xe
add ebp, ebx
add ecx, 4
dec edx
mov dword [esp + 0x14], ebp
jne 0x53c1b0
mov ecx, dword [esp + 0x58]
mov edx, dword [esp + 0x54]
mov ebx, dword [esp + 0xa8]
mov dword [eax - 4], ecx
mov ecx, dword [esp + 0x48]
mov dword [eax], edx
mov edx, ebp
mov dword [eax + 4], ecx
mov dword [eax + 8], edx
cmp dword [esp + 0x90], 1
mov ecx, dword [esp + 0x3c]
mov edx, dword [esp + 0x5c]
mov ebp, dword [esp + 0x34]
jle 0x53c266
mov ebp, dword [esp + ecx*4 + 0x68]
lea esi, [ebp + esi*4]
movzx ebp, byte [esi]
imul ebp, edx
add dword [eax - 4], ebp
movzx ebp, byte [esi + 1]
imul ebp, edx
add dword [eax], ebp
movzx ebp, byte [esi + 2]
movzx esi, byte [esi + 3]
imul ebp, edx
add dword [eax + 4], ebp
imul esi, edx
mov edx, dword [eax + 8]
mov ebp, dword [esp + 0x34]
add edx, esi
mov dword [eax + 8], edx
inc ecx
add eax, 0x10
cmp ecx, 2
mov dword [esp + 0x3c], ecx
jl 0x53c133
mov eax, dword [esp + 0x1c]
mov edi, 0x4000
cmp eax, edi
jne 0x53c28e
cmp dword [esp + 0x28], edi
je 0x53c4d9
mov eax, dword [esp + 0x144]
test eax, eax
jne 0x53c4d9
mov eax, dword [esp + 0x50]
test eax, eax
jle 0x53c615
mov eax, dword [esp + 0x1c]
imul dword [esp + 0x28]
shrd eax, edx, 0xe
mov dword [esp + 0xb0], eax
mov eax, dword [esp + 0xb0]
imul eax, eax, 0xff
cdq
and edx, 0x3fff
add eax, edx
mov ecx, eax
sar ecx, 0xe
mov eax, 0x4000
sub eax, dword [esp + 0x10]
imul dword [esp + 0x70]
mov dword [esp + 0xd4], eax
mov dword [esp + 0xd8], edx
mov eax, dword [esp + 0x10]
imul dword [esp + 0x80]
add eax, dword [esp + 0xd4]
adc edx, dword [esp + 0xd8]
shrd eax, edx, 0xe
xor edx, edx
idiv dword [esp + 0x40]
mov dword [esp + 0x9c], eax
movzx edx, byte [ebp]
movzx eax, byte [esp + 0x9c]
movzx esi, cl
sub eax, edx
imul eax, esi
add eax, 0x80
mov ecx, eax
sar ecx, 8
add ecx, eax
sar ecx, 8
add ecx, edx
jns 0x53c347
xor ecx, ecx
jmp 0x53c354
cmp ecx, 0xff
jle 0x53c354
mov ecx, 0xff
mov byte [ebp], cl
mov eax, 0x4000
sub eax, dword [esp + 0x10]
imul dword [esp + 0x74]
mov dword [esp + 0x10c], eax
mov dword [esp + 0x110], edx
mov eax, dword [esp + 0x10]
imul dword [esp + 0x84]
add eax, dword [esp + 0x10c]
adc edx, dword [esp + 0x110]
shrd eax, edx, 0xe
xor edx, edx
idiv dword [esp + 0x40]
mov dword [esp + 0xb8], eax
movzx edx, byte [ebp + 1]
movzx eax, byte [esp + 0xb8]
sub eax, edx
imul eax, esi
add eax, 0x80
mov ecx, eax
sar ecx, 8
add ecx, eax
sar ecx, 8
add ecx, edx
jns 0x53c3c4
xor ecx, ecx
jmp 0x53c3d1
cmp ecx, 0xff
jle 0x53c3d1
mov ecx, 0xff
mov byte [ebp + 1], cl
mov eax, 0x4000
sub eax, dword [esp + 0x10]
imul dword [esp + 0x78]
mov dword [esp + 0xe4], eax
mov dword [esp + 0xe8], edx
mov eax, dword [esp + 0x10]
imul dword [esp + 0x88]
add eax, dword [esp + 0xe4]
adc edx, dword [esp + 0xe8]
shrd eax, edx, 0xe
xor edx, edx
idiv dword [esp + 0x40]
mov dword [esp + 0xa4], eax
movzx edx, byte [ebp + 2]
movzx eax, byte [esp + 0xa4]
sub eax, edx
imul eax, esi
add eax, 0x80
mov ecx, eax
sar ecx, 8
add ecx, eax
sar ecx, 8
add ecx, edx
jns 0x53c441
xor ecx, ecx
jmp 0x53c44e
cmp ecx, 0xff
jle 0x53c44e
mov ecx, 0xff
mov byte [ebp + 2], cl
mov eax, 0x4000
sub eax, dword [esp + 0x10]
imul dword [esp + 0x7c]
mov dword [esp + 0x104], eax
mov dword [esp + 0x108], edx
mov eax, dword [esp + 0x10]
imul dword [esp + 0x8c]
add eax, dword [esp + 0x104]
adc edx, dword [esp + 0x108]
shrd eax, edx, 0xe
xor edx, edx
idiv dword [esp + 0x40]
mov dword [esp + 0xc0], eax
movzx edx, byte [ebp + 3]
movzx eax, byte [esp + 0xc0]
sub eax, edx
imul eax, esi
add eax, 0x80
mov ecx, eax
sar ecx, 8
add ecx, eax
sar ecx, 8
add ecx, edx
jns 0x53c4c4
xor ecx, ecx
mov byte [ebp + 3], cl
jmp 0x53c615
cmp ecx, 0xff
jle 0x53c4d1
mov ecx, 0xff
mov byte [ebp + 3], cl
jmp 0x53c615
mov eax, 0x4000
sub eax, dword [esp + 0x10]
imul dword [esp + 0x70]
mov dword [esp + 0xf4], eax
mov dword [esp + 0xf8], edx
mov eax, dword [esp + 0x10]
imul dword [esp + 0x80]
add eax, dword [esp + 0xf4]
adc edx, dword [esp + 0xf8]
shrd eax, edx, 0xe
xor edx, edx
idiv dword [esp + 0x18]
mov dword [esp + 0xac], eax
mov al, byte [esp + 0xac]
mov byte [ebp], al
mov eax, 0x4000
sub eax, dword [esp + 0x10]
imul dword [esp + 0x74]
mov dword [esp + 0xdc], eax
mov dword [esp + 0xe0], edx
mov eax, dword [esp + 0x10]
imul dword [esp + 0x84]
add eax, dword [esp + 0xdc]
adc edx, dword [esp + 0xe0]
shrd eax, edx, 0xe
xor edx, edx
idiv dword [esp + 0x18]
mov dword [esp + 0xc8], eax
mov cl, byte [esp + 0xc8]
mov byte [ebp + 1], cl
mov eax, 0x4000
sub eax, dword [esp + 0x10]
imul dword [esp + 0x78]
mov dword [esp + 0xec], eax
mov dword [esp + 0xf0], edx
mov eax, dword [esp + 0x10]
imul dword [esp + 0x88]
add eax, dword [esp + 0xec]
adc edx, dword [esp + 0xf0]
shrd eax, edx, 0xe
xor edx, edx
idiv dword [esp + 0x18]
mov dword [esp + 0xd0], eax
mov dl, byte [esp + 0xd0]
mov byte [ebp + 2], dl
mov eax, 0x4000
sub eax, dword [esp + 0x10]
imul dword [esp + 0x7c]
mov dword [esp + 0xfc], eax
mov dword [esp + 0x100], edx
mov eax, dword [esp + 0x10]
imul dword [esp + 0x8c]
add eax, dword [esp + 0xfc]
adc edx, dword [esp + 0x100]
shrd eax, edx, 0xe
xor edx, edx
idiv dword [esp + 0x18]
mov dword [esp + 0xc4], eax
mov al, byte [esp + 0xc4]
mov byte [ebp + 3], al
mov esi, dword [esp + 0x38]
mov ecx, dword [esp + 0x44]
add ebp, 4
lea eax, [esi - 2]
cmp ecx, eax
mov dword [esp + 0x34], ebp
jne 0x53c65c
mov eax, dword [esp + 0x1c]
imul dword [esp + 0x18]
shrd eax, edx, 0xe
mov dword [esp + 0xbc], eax
mov eax, dword [esp + 0x20]
mov edx, dword [esp + 0xbc]
add eax, edx
mov dword [esp + 0x20], eax
mov eax, dword [esp + 0xcc]
mov dword [esp + 0x1c], eax
jmp 0x53c66e
mov edx, dword [esp + 0x20]
mov eax, dword [esp + 0x50]
add eax, edx
mov dword [esp + 0x1c], edi
mov dword [esp + 0x20], eax
inc ecx
cmp ecx, esi
mov dword [esp + 0x44], ecx
jl 0x53c072
mov ebx, dword [esp + 0x94]
mov ecx, dword [esp + 0x13c]
mov edi, dword [esp + 0x24]
mov ebp, dword [esp + 0x30]
mov esi, dword [esp + 0x2c]
lea eax, [ebp - 2]
cmp esi, eax
jne 0x53c6c3
mov eax, dword [esp + 0x28]
imul dword [esp + 0x60]
shrd eax, edx, 0xe
mov dword [esp + 0x98], eax
mov edx, dword [esp + 0xa0]
mov eax, dword [esp + 0x98]
mov dword [esp + 0x28], edx
jmp 0x53c6cf
mov eax, dword [esp + 0x60]
mov dword [esp + 0x28], 0x4000
add edi, eax
inc esi
cmp esi, ebp
mov dword [esp + 0x24], edi
mov dword [esp + 0x2c], esi
jl 0x53bfa7
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x104
ret 0x30