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

Disassembly:
sub esp, 0x54
mov eax, dword [esp + 0x64]
push ebx
push ebp
xor ebx, ebx
cmp dword [eax + 4], ebx
push esi
lea edx, [eax + 4]
push edi
mov dword [esp + 0x40], ebx
mov dword [esp + 0x3c], ebx
lea esi, [esp + 0x40]
jl 0x52db73
mov esi, edx
mov edi, dword [eax]
cmp edi, ebx
jge 0x52db7d
lea eax, [esp + 0x3c]
mov ebp, dword [esi]
mov ebx, dword [esp + 0x68]
mov esi, dword [ebx + 0x18]
mov edx, dword [edx]
mov eax, dword [eax]
mov ebx, dword [ebx + 0x14]
mov dword [esp + 0x74], esi
mov esi, dword [ecx + 0x4c]
mov ecx, dword [ecx + 0x48]
add esi, edx
add ecx, edi
cmp dword [esp + 0x74], esi
mov dword [esp + 0x40], esi
mov dword [esp + 0x54], eax
mov dword [esp + 0x3c], ebx
mov dword [esp + 0x38], ecx
lea esi, [esp + 0x74]
jl 0x52dbb9
lea esi, [esp + 0x40]
cmp ebx, ecx
lea ecx, [esp + 0x3c]
jl 0x52dbc5
lea ecx, [esp + 0x38]
mov ecx, dword [ecx]
sub eax, edi
mov dword [esp + 0x44], ecx
mov ecx, dword [esi]
mov dword [esp + 0x48], ecx
mov dword [esp + 0x5c], eax
mov ebx, ebp
sub ebx, edx
mov edx, dword [esp + 0x70]
mov eax, dword [edx]
mov edx, dword [edx + 4]
mov esi, edx
mov ecx, eax
sar ecx, 2
lea edi, [ecx*4]
sar esi, 2
sub eax, edi
lea edi, [esi*4]
sub edx, edi
mov edi, edx
mov edx, dword [esp + 0x54]
lea ecx, [ecx + edx*2]
lea edx, [esi + ebp*2]
mov dword [esp + 0x50], edx
mov dword [esp + 0x4c], ecx
mov edx, 4
sub edx, edi
mov esi, edx
imul edx, eax
mov ecx, 4
sub ecx, eax
imul eax, edi
imul esi, ecx
imul ecx, edi
movzx edx, dx
movzx esi, si
mov dword [esp + 0x20], edx
movzx edx, ax
mov eax, dword [esp + 0x6c]
movzx ecx, cx
mov dword [esp + 0x1c], esi
mov esi, dword [esp + 0x4c]
mov dword [esp + 0x24], ecx
mov ecx, dword [eax + 0x14]
mov eax, dword [eax + 0x18]
mov dword [esp + 0x28], edx
xor dl, dl
test esi, esi
mov dword [esp + 0x74], ecx
mov dword [esp + 0x10], eax
jl 0x52dc79
mov ecx, dword [esp + 0x44]
sub ecx, dword [esp + 0x54]
lea ecx, [esi + ecx*2]
cmp ecx, dword [esp + 0x74]
jl 0x52dc7b
mov dl, 1
mov edi, dword [esp + 0x50]
test edi, edi
mov ecx, dword [esp + 0x48]
jl 0x52ddc5
mov eax, ecx
sub eax, ebp
lea eax, [edi + eax*2]
cmp eax, dword [esp + 0x10]
jge 0x52ddc1
test dl, dl
jne 0x52ddc1
cmp ebp, ecx
mov dword [esp + 0x74], ebp
jge 0x52dfe6
lea ecx, [edi*4]
lea edx, [ebx*4]
mov dword [esp + 0x10], ecx
mov dword [esp + 0x70], edx
jmp 0x52dcd0
mov ecx, dword [esp + 0x54]
cmp ecx, dword [esp + 0x44]
mov dword [esp + 0x14], ecx
jge 0x52dd98
mov edx, dword [esp + 0x5c]
movsx ebx, word [esp + 0x28]
add edx, edx
add edx, edx
lea eax, [esi + esi]
mov dword [esp + 0x18], edx
jmp 0x52dd00
mov edx, dword [esp + 0x68]
mov edx, dword [edx + 0x1c]
mov esi, dword [esp + 0x74]
mov edx, dword [edx + esi*4]
mov esi, dword [esp + 0x10]
movsx edi, word [esp + 0x20]
lea ecx, [edx + ecx*4]
mov edx, dword [esp + 0x6c]
mov edx, dword [edx + 0x1c]
add edx, esi
mov esi, dword [edx + 4]
mov edx, dword [edx]
movsx ebp, word [edx + eax + 2]
add edx, eax
imul ebp, edi
movsx edi, word [esi + eax + 2]
add esi, eax
imul edi, ebx
add ebp, edi
movsx edi, word [esi]
movsx esi, word [esp + 0x24]
imul edi, esi
movsx esi, word [edx]
movsx edx, word [esp + 0x1c]
imul esi, edx
mov edx, dword [esp + 0x78]
mov edx, dword [edx + 0x1c]
add ebp, edi
mov edi, dword [esp + 0x70]
mov edi, dword [edx + edi]
mov edx, dword [esp + 0x18]
lea esi, [esi + ebp + 8]
sar esi, 4
imul esi, dword [edi + edx]
add dword [ecx], esi
mov ecx, dword [esp + 0x14]
add ecx, 1
add edx, 4
add eax, 4
cmp ecx, dword [esp + 0x44]
mov dword [esp + 0x14], ecx
mov dword [esp + 0x18], edx
jl 0x52dd00
mov esi, dword [esp + 0x4c]
mov eax, dword [esp + 0x74]
add dword [esp + 0x70], 4
add dword [esp + 0x10], 8
add eax, 1
cmp eax, dword [esp + 0x48]
mov dword [esp + 0x74], eax
jl 0x52dcd0
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x54
ret 0x14
mov eax, dword [esp + 0x10]
test di, di
mov dword [esp + 0x70], ebp
mov dword [esp + 0x38], edi
jge 0x52ddd6
xor edx, edx
jmp 0x52dde6
cmp di, ax
jl 0x52dde3
lea edx, [eax - 1]
movzx edx, dx
jmp 0x52dde6
movzx edx, di
movsx edx, dx
add edi, 1
mov dword [esp + 0x3c], edx
movzx edx, di
test dx, dx
jge 0x52ddfc
xor edx, edx
jmp 0x52de07
cmp dx, ax
jl 0x52de04
lea edx, [eax - 1]
movzx edx, dx
cmp ebp, ecx
movsx edx, dx
mov dword [esp + 0x40], edx
jge 0x52dfe6
lea ecx, [esi + 1]
movzx ebp, cx
add ebx, ebx
add ebx, ebx
mov dword [esp + 0x30], ebp
mov dword [esp + 0x34], ebx
jmp 0x52de34
mov esi, dword [esp + 0x4c]
test si, si
mov edx, dword [esp + 0x54]
mov ecx, dword [esp + 0x74]
mov dword [esp + 0x18], edx
mov dword [esp + 0x2c], esi
jge 0x52de4d
xor esi, esi
jmp 0x52de58
cmp si, cx
jl 0x52de55
lea esi, [ecx - 1]
movzx esi, si
test bp, bp
movsx edi, si
jge 0x52de64
xor esi, esi
jmp 0x52de74
cmp bp, cx
jl 0x52de71
add ecx, 0xffffffff
movzx esi, cx
jmp 0x52de74
movzx esi, bp
cmp edx, dword [esp + 0x44]
movsx esi, si
jge 0x52df79
mov eax, dword [esp + 0x5c]
lea ecx, [eax*4]
mov dword [esp + 0x14], ecx
mov eax, dword [esp + 0x68]
mov ecx, dword [eax + 0x1c]
mov eax, dword [esp + 0x70]
mov ecx, dword [ecx + eax*4]
mov ebx, dword [esp + 0x3c]
lea eax, [ecx + edx*4]
mov edx, dword [esp + 0x6c]
mov ecx, dword [edx + 0x1c]
mov edx, dword [esp + 0x40]
mov edx, dword [ecx + edx*4]
mov ecx, dword [ecx + ebx*4]
movsx ebp, word [ecx + edi*2]
movsx ebx, word [esp + 0x1c]
movsx edi, word [edx + edi*2]
imul ebp, ebx
movsx ebx, word [ecx + esi*2]
movsx ecx, word [esp + 0x20]
movsx edx, word [edx + esi*2]
imul ebx, ecx
movsx ecx, word [esp + 0x24]
imul edi, ecx
movsx ecx, word [esp + 0x28]
imul edx, ecx
mov ecx, dword [esp + 0x78]
mov ecx, dword [ecx + 0x1c]
add ebp, ebx
mov ebx, dword [esp + 0x34]
mov esi, dword [ebx + ecx]
mov ecx, dword [esp + 0x14]
add ebp, edi
lea edx, [edx + ebp + 8]
sar edx, 4
imul edx, dword [esi + ecx]
add dword [eax], edx
mov eax, dword [esp + 0x2c]
mov edx, dword [esp + 0x18]
add eax, 2
mov dword [esp + 0x2c], eax
add ecx, 4
movzx eax, ax
add edx, 1
test ax, ax
mov dword [esp + 0x14], ecx
mov ecx, dword [esp + 0x74]
mov dword [esp + 0x18], edx
jge 0x52df36
xor esi, esi
jmp 0x52df46
cmp ax, cx
jl 0x52df43
lea esi, [ecx - 1]
movzx esi, si
jmp 0x52df46
movzx esi, ax
add eax, 1
movzx eax, ax
test ax, ax
movsx edi, si
jge 0x52df58
xor eax, eax
jmp 0x52df68
cmp ax, cx
jl 0x52df65
add ecx, 0xffffffff
movzx eax, cx
jmp 0x52df68
movzx eax, ax
cmp edx, dword [esp + 0x44]
movsx esi, ax
jl 0x52de90
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x38]
add dword [esp + 0x70], 1
mov ebp, dword [esp + 0x30]
add ecx, 2
movzx esi, cx
add ebx, 4
test si, si
mov dword [esp + 0x34], ebx
mov dword [esp + 0x38], ecx
jge 0x52dfa0
xor edx, edx
jmp 0x52dfb0
cmp si, ax
jl 0x52dfad
lea edx, [eax - 1]
movzx edx, dx
jmp 0x52dfb0
movzx edx, si
add esi, 1
movsx ecx, dx
movzx edx, si
test dx, dx
mov dword [esp + 0x3c], ecx
jge 0x52dfc6
xor edx, edx
jmp 0x52dfd1
cmp dx, ax
jl 0x52dfce
lea edx, [eax - 1]
movzx edx, dx
movsx ecx, dx
mov edx, dword [esp + 0x70]
cmp edx, dword [esp + 0x48]
mov dword [esp + 0x40], ecx
jl 0x52de30
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x54
ret 0x14