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

Disassembly:
push ebp
mov ebp, esp
push edi
push esi
push ebx
sub esp, 0xe0
mov dword [ebp - 0x64], eax
mov dword [ebp - 0x68], edx
mov edx, eax
mov eax, dword [eax]
mov ecx, dword [edx + 8]
mov ebx, dword [edx + 0x88]
mov esi, dword [eax + 0x54]
add edx, 0xc
mov dword [ebp - 0x70], ecx
mov dword [ebp - 0x74], ebx
mov dword [ebp - 0x78], edx
mov ebx, dword [ebp + 0xc]
mov edx, dword [esi + 0x9c]
mov ecx, dword [ebp + 8]
push ebx
mov dword [ebp - 0x7c], esi
push ecx
mov dword [ebp - 0x80], edx
push eax
call fcn.0052cff0
add esp, 0x10
test eax, eax
mov dword [ebp - 0x6c], eax
jne 0x537260
mov ecx, dword [ebp - 0x80]
mov ebx, dword [ebp - 0x64]
mov al, byte [ecx + 8]
mov byte [ebx + 0x8c], al
test al, al
jne 0x537270
mov ebx, dword [ebp - 0x7c]
mov eax, dword [ebx + 0x28]
mov dword [ebx + 0x38], eax
mov eax, dword [ebx + 0x34]
mov dword [ebx + 0x3c], eax
mov eax, dword [ebx + 0x48]
cmp eax, 0x636f6d70
je 0x5372f8
mov dword [ebp - 0x6c], 7
cmp eax, 0x6f75746c
je 0x5375a0
mov eax, dword [ebp + 0x10]
test eax, eax
jne 0x537260
mov ecx, dword [ebp - 0x7c]
lea edi, [ebp - 0x60]
mov eax, dword [ecx + 0x20]
mov ebx, dword [ecx + 0x2c]
sub ebx, eax
mov dword [ebp - 0x60], ebx
mov eax, dword [ecx + 0x24]
mov esi, dword [ecx + 0x30]
sub esi, eax
mov eax, dword [ebp - 0x74]
mov dword [ebp - 0x5c], esi
mov edx, dword [eax + 8]
mov eax, ebx
imul edx
mov ecx, edx
sar ecx, 0x1f
add ecx, 0x8000
add eax, ecx
adc edx, 0
shr eax, 0x10
shl edx, 0x10
add eax, edx
mov ecx, dword [ebp - 0x74]
mov dword [ebp - 0x60], eax
mov eax, esi
mov edx, dword [ecx + 0xc]
imul edx
mov ecx, edx
sar ecx, 0x1f
add ecx, 0x8000
add eax, ecx
adc edx, 0
shr eax, 0x10
shl edx, 0x10
add eax, edx
mov edx, dword [ebp - 0x70]
mov ecx, dword [ebp - 0x64]
mov dword [ebp - 0x5c], eax
lea esi, [edx + 0x14]
cmp byte [ecx + 0x8c], 0
jne 0x537809
mov ebx, dword [ebp - 0x64]
mov eax, dword [ebx + 0xa8]
test eax, eax
jne 0x5377f5
push eax
push eax
lea eax, [ebp - 0x58]
push eax
push esi
call fcn.0052e100
mov edx, dword [ebp - 0x50]
mov ecx, dword [ebp - 0x58]
mov eax, dword [ebp - 0x4c]
add edx, 0x3f
mov ebx, dword [ebp - 0x54]
mov esi, dword [ebp - 0x7c]
and ecx, 0xffffffc0
and edx, 0xffffffc0
add eax, 0x3f
mov dword [ebp - 0x50], edx
and eax, 0xffffffc0
sub edx, ecx
and ebx, 0xffffffc0
mov dword [ebp - 0x58], ecx
mov dword [ebp - 0x4c], eax
mov dword [ebp - 0x54], ebx
mov dword [esi + 0x18], edx
mov eax, dword [ebp - 0x4c]
mov ecx, dword [ebp - 0x54]
sub eax, ecx
add esp, 0x10
mov dword [esi + 0x1c], eax
mov eax, dword [ebp - 0x58]
mov dword [esi + 0x20], eax
mov eax, dword [ebp - 0x4c]
mov dword [esi + 0x24], eax
mov eax, dword [ebp - 0x60]
mov edx, dword [ebp - 0x58]
add eax, edx
and eax, 0xffffffc0
mov dword [esi + 0x2c], eax
mov eax, dword [edi + 4]
mov edi, dword [ebp - 0x4c]
add eax, edi
and eax, 0xffffffc0
mov dword [esi + 0x30], eax
mov eax, dword [esi + 4]
test byte [eax + 8], 4
jne 0x537194
mov edx, dword [ebp - 0x64]
mov ecx, dword [ebp + 8]
mov eax, dword [edx + 4]
xor edx, edx
cmp dword [eax + 4], ecx
jbe 0x53717f
mov eax, dword [eax + 8]
xor edx, edx
mov dl, byte [ecx + eax]
and edx, 0x80
test edx, edx
je 0x537578
mov ebx, dword [ebp - 0x74]
cmp byte [ebx + 0x20], 0
je 0x537578
mov esi, dword [ebp - 0x7c]
mov eax, dword [ebp - 0x74]
mov ebx, dword [esi + 0x28]
mov edx, dword [eax + 8]
mov eax, ebx
imul edx
mov ecx, edx
sar ecx, 0x1f
add ecx, 0x8000
add eax, ecx
adc edx, 0
shr eax, 0x10
shl edx, 0x10
add eax, edx
mov ebx, eax
mov dword [esi + 0x28], eax
mov dword [esi + 0x90], 0
mov dword [esi + 0x94], 0
mov esi, dword [ebp - 0x7c]
mov ecx, dword [ebp - 0x74]
mov eax, dword [esi + 0x34]
mov edx, dword [ecx + 0xc]
imul edx
mov ecx, edx
sar ecx, 0x1f
add ecx, 0x8000
add eax, ecx
adc edx, 0
shr eax, 0x10
shl edx, 0x10
add eax, edx
lea edx, [ebx + 0x20]
add eax, 0x20
mov ebx, dword [ebp - 0x80]
and edx, 0xffffffc0
and eax, 0xffffffc0
sub esp, 0xc
mov dword [esi + 0x28], edx
mov dword [esi + 0x34], eax
mov ecx, dword [ebx]
push ecx
call fcn.0052ad30
pop eax
mov edi, dword [ebp - 0x70]
pop edx
push edi
mov ecx, dword [ebx]
push ecx
call fcn.005323c0
add esp, 0x10
test eax, eax
mov dword [ebp - 0x6c], eax
jne 0x537260
mov edx, dword [ebx]
mov dword [esi + 0x48], 0x6f75746c
mov eax, dword [edx + 0x14]
mov dword [esi + 0x6c], eax
mov eax, dword [edx + 0x18]
mov dword [esi + 0x70], eax
mov eax, dword [edx + 0x1c]
mov dword [esi + 0x74], eax
mov eax, dword [edx + 0x20]
mov dword [esi + 0x78], eax
mov eax, dword [edx + 0x24]
mov dword [esi + 0x7c], eax
lea esi, [esi]
mov eax, dword [ebp - 0x6c]
lea esp, [ebp - 0xc]
pop ebx
pop esi
pop edi
pop ebp
ret
mov edi, dword [ecx + 0xc]
mov eax, dword [ebp - 0x64]
mov dword [ebx + 0x90], edi
sub esp, 0xc
mov esi, dword [ecx + 0x10]
mov dword [ebx + 0x94], esi
mov ebx, dword [ecx + 0x14]
mov dword [eax + 0x98], ebx
mov edx, dword [ecx + 0x18]
mov ecx, dword [ebp - 0x64]
mov dword [ebp - 0x1c], edx
mov dword [eax + 0x9c], edx
mov edx, dword [ebp - 0x80]
mov dword [ebp - 0x20], ebx
lea ebx, [ebp - 0x28]
mov dword [ebp - 0x28], edi
mov eax, dword [edx + 0x1c]
mov edx, dword [edx + 0x20]
mov dword [ecx + 0xa4], edx
mov dword [ecx + 0xa0], eax
mov dword [ebp - 0x24], esi
push ebx
call fcn.0052a9b0
pop eax
mov eax, dword [ebp - 0x64]
pop edx
add eax, 0xa0
push ebx
push eax
call fcn.0052b3d0
mov ebx, dword [ebp - 0x7c]
add esp, 0x10
mov eax, dword [ebx + 0x28]
mov dword [ebx + 0x38], eax
mov eax, dword [ebx + 0x34]
mov dword [ebx + 0x3c], eax
mov eax, dword [ebx + 0x48]
cmp eax, 0x636f6d70
jne 0x53703a
mov ebx, dword [ebp - 0x70]
mov ecx, dword [ebp - 0x7c]
movsx ebx, word [ebx + 0x16]
mov ecx, dword [ecx + 0x80]
mov dword [ebp - 0x94], ebx
mov dword [ebp - 0x90], ecx
push ebx
push ebx
push ecx
mov ecx, dword [ebp - 0x70]
push ecx
call fcn.005321a0
add esp, 0x10
test eax, eax
mov dword [ebp - 0x6c], eax
jne 0x537260
mov esi, dword [ebp - 0x70]
mov eax, dword [ebp - 0x7c]
mov ecx, dword [ebp - 0x90]
shl ecx, 5
mov edi, dword [esi + 0x58]
cld
shr ecx, 2
mov esi, dword [eax + 0x84]
rep movsd dword es:[edi], dword [esi]
mov edx, dword [ebp - 0x70]
mov ecx, dword [ebp - 0x90]
mov dword [ebp - 0x8c], 0
cmp dword [ebp - 0x6c], ecx
mov dword [edx + 0x54], ecx
mov eax, dword [edx + 0x30]
jae 0x53704c
shl eax, 5
mov ebx, dword [ebp + 0x10]
inc ebx
mov dword [ebp - 0xbc], eax
mov dword [ebp - 0xb8], ebx
mov eax, dword [ebp - 0x70]
mov ecx, dword [ebp - 0x64]
mov esi, dword [ebp - 0xbc]
mov edi, dword [ebp - 0xb8]
mov edx, dword [eax + 0x34]
mov ebx, dword [ebp + 0xc]
add esi, edx
mov edx, dword [ecx + 0xa8]
mov ecx, dword [ecx + 0xac]
mov dword [ebp - 0xa0], edx
mov dword [ebp - 0x9c], ecx
mov edx, dword [ebp - 0x64]
mov ecx, dword [ebp - 0x70]
mov eax, dword [edx + 0xb0]
mov edx, dword [edx + 0xb4]
movsx ecx, word [ecx + 0x16]
mov dword [ebp - 0xa8], eax
push eax
push edi
push ebx
mov dword [ebp - 0xa4], edx
mov dword [ebp - 0xb0], ecx
mov edx, dword [ebp - 0x68]
mov ecx, dword [esi]
mov eax, dword [ebp - 0x64]
push ecx
call fcn.00536fb0
add esp, 0x10
test eax, eax
mov dword [ebp - 0x6c], eax
jne 0x537260
mov ebx, dword [ebp - 0x70]
mov esi, dword [ebp - 0xbc]
mov edx, dword [ebx + 0x34]
add esi, edx
mov dx, word [esi + 4]
test dh, 2
jne 0x537444
mov eax, dword [ebp - 0x64]
mov ecx, dword [ebp - 0xa0]
mov ebx, dword [ebp - 0x9c]
mov dword [eax + 0xa8], ecx
mov dword [eax + 0xac], ebx
mov ecx, dword [ebp - 0xa8]
mov ebx, dword [ebp - 0xa4]
mov dword [eax + 0xb0], ecx
mov dword [eax + 0xb4], ebx
mov ecx, dword [ebp - 0x70]
mov ebx, dword [ebp - 0xb0]
movsx ecx, word [ecx + 0x16]
sub ecx, ebx
mov dword [ebp - 0xac], ecx
test dl, 0xc8
je 0x5374a0
mov ecx, dword [ebp - 0x70]
mov eax, dword [ecx + 0x18]
lea ebx, [eax + ebx*8]
mov eax, dword [ebp - 0xac]
lea eax, [ebx + eax*8]
mov dword [ebp - 0xb4], eax
cmp ebx, eax
jae 0x5374a0
lea edi, [esi + 0x10]
lea esi, [esi]
push eax
push eax
push edi
push ebx
add ebx, 8
call fcn.0052b3d0
add esp, 0x10
cmp ebx, dword [ebp - 0xb4]
jb 0x537480
mov dx, word [esi + 4]
nop
lea esi, [esi]
and edx, 2
jne 0x5378d2
mov eax, dword [esi + 8]
mov ecx, dword [ebp - 0x94]
add ecx, eax
mov ebx, dword [esi + 0xc]
cmp ecx, dword [ebp - 0xb0]
setae dl
cmp ebx, dword [ebp - 0xac]
setae al
or eax, edx
test al, 1
jne 0x5379b1
mov edx, dword [ebp - 0x70]
mov eax, dword [ebp - 0xb0]
add ebx, eax
mov eax, dword [edx + 0x18]
mov edx, dword [ebp - 0x94]
add edx, ebx
lea ecx, [eax + ecx*8]
lea edx, [eax + edx*8]
mov ebx, dword [ecx]
mov ecx, dword [ecx + 4]
mov eax, dword [edx]
sub ebx, eax
mov eax, dword [edx + 4]
sub ecx, eax
mov edx, dword [ebp - 0x70]
mov esi, edx
mov eax, dword [edx + 0x14]
mov dword [ebp - 0x48], eax
mov edx, dword [edx + 0x18]
mov dword [ebp - 0x44], edx
mov eax, dword [esi + 0x1c]
mov dword [ebp - 0x40], eax
mov eax, dword [esi + 0x20]
mov dword [ebp - 0x3c], eax
mov eax, dword [esi + 0x24]
mov esi, dword [ebp - 0xb0]
mov dword [ebp - 0x38], eax
lea eax, [edx + esi*8]
mov dword [ebp - 0x44], eax
mov eax, dword [ebp - 0xac]
mov word [ebp - 0x46], ax
lea eax, [ebp - 0x48]
push esi
push ecx
push ebx
push eax
call fcn.0052e1b0
mov edx, dword [ebp - 0x8c]
inc edx
mov eax, dword [ebp - 0xbc]
mov dword [ebp - 0x8c], edx
add eax, 0x20
mov edx, dword [ebp - 0x90]
add esp, 0x10
mov dword [ebp - 0xbc], eax
cmp dword [ebp - 0x8c], edx
jb 0x537381
jmp 0x53704c
mov edx, dword [ebp - 0x7c]
mov ebx, dword [edx + 0x28]
test ebx, ebx
je 0x5371d5
mov ecx, dword [ebp - 0x64]
mov ebx, dword [ecx + 0xb0]
mov esi, dword [ecx + 0xa8]
sub ebx, esi
mov dword [edx + 0x28], ebx
jmp 0x5371d5
mov esi, dword [ebp - 0x64]
cmp byte [esi + 0x8c], 0
jne 0x53785a
mov eax, dword [ebp - 0x7c]
mov bx, word [eax + 0x6e]
movsx ecx, bx
cmp ecx, 0xfffffffc
je 0x5375dc
mov edx, dword [ebp - 0x70]
movsx eax, word [edx + 0x16]
movsx edx, word [edx + 0x3a]
add eax, edx
lea eax, [eax + ecx + 4]
mov ecx, dword [ebp - 0x70]
cmp eax, dword [ecx + 4]
ja 0x53782b
mov esi, dword [ebp - 0x7c]
mov cx, word [esi + 0x6c]
test cx, cx
je 0x537606
mov edx, dword [ebp - 0x70]
mov esi, dword [ebp - 0x70]
movsx eax, word [edx + 0x14]
movsx edx, word [edx + 0x38]
add eax, edx
movsx edx, cx
add eax, edx
cmp eax, dword [esi + 8]
ja 0x537832
mov dword [ebp - 0x6c], 0
mov edx, dword [ebp - 0x7c]
mov ebx, dword [ebp - 0x70]
cld
movsx ecx, word [edx + 0x6e]
shl ecx, 3
mov edi, dword [ebx + 0x3c]
shr ecx, 2
mov esi, dword [edx + 0x70]
rep movsd dword es:[edi], dword [esi]
movsx eax, word [edx + 0x6c]
add eax, eax
push esi
push eax
mov ecx, dword [edx + 0x78]
push ecx
mov edx, dword [ebx + 0x44]
push edx
call fcn.0058e948
mov esi, dword [ebp - 0x7c]
add esp, 0xc
movsx eax, word [esi + 0x6e]
push eax
mov eax, dword [esi + 0x74]
push eax
mov eax, dword [ebx + 0x40]
push eax
call fcn.0058e948
mov ax, word [esi + 0x6e]
mov edx, dword [ebp - 0x64]
mov word [ebx + 0x3a], ax
mov ax, word [esi + 0x6c]
mov word [ebx + 0x38], ax
mov eax, dword [ebp - 0x78]
mov ecx, eax
add esp, 0x10
mov ebx, dword [eax + 8]
mov dword [edx + 0xa8], ebx
mov eax, dword [eax + 0x10]
mov dword [edx + 0xac], eax
mov eax, dword [esi + 0x28]
mov edx, dword [ecx + 4]
imul edx
mov ecx, edx
sar ecx, 0x1f
add ecx, 0x8000
add eax, ecx
adc edx, 0
shr eax, 0x10
shl edx, 0x10
add eax, edx
mov ebx, dword [ebp - 0x78]
mov esi, eax
mov edx, dword [ebp - 0x64]
mov ecx, dword [ebp - 0x7c]
mov eax, dword [ebx + 8]
add esi, eax
mov eax, dword [ebp - 0x64]
cmp word [ecx + 0x6e], 0
mov dword [eax + 0xb0], esi
mov eax, dword [ebx + 0x10]
mov dword [edx + 0xb4], eax
je 0x53704c
mov ebx, dword [ebp - 0x74]
mov eax, dword [ebx]
mov edx, dword [eax + 0x1c]
test edx, edx
jne 0x53793a
mov edx, dword [ebp - 0x68]
cmp dword [edx + 0x14], 1
je 0x53795a
mov eax, dword [ebp - 0x78]
add eax, 0x30
mov edx, dword [eax + 0xc]
mov ebx, dword [eax + 0x14]
lea eax, [edx + edx*2]
shl eax, 4
dec edx
lea edi, [eax + ebx - 0x30]
jle 0x53787c
mov ecx, dword [ebp - 0x78]
test byte [ecx + 0x68], 4
jne 0x53787c
mov eax, dword [edi + 4]
sub esi, eax
mov eax, dword [ebx + 4]
mov ebx, dword [ebx + 8]
mov dword [ebp - 0xcc], ebx
sub ebx, eax
mov dword [ebp - 0x84], ebx
mov ebx, dword [edi + 8]
add ebx, esi
cmp eax, 0x17
mov dword [ebp - 0x88], ebx
jg 0x53774c
mov ecx, dword [ebp - 0x84]
sub ecx, 8
mov dword [ebp - 0x84], ecx
cmp esi, 0x17
jg 0x537760
mov edx, dword [ebp - 0x88]
add edx, 8
mov dword [ebp - 0x88], edx
mov ebx, dword [ebp - 0x84]
mov ecx, dword [ebp - 0x88]
add ebx, 0x20
add ecx, 0x20
mov edx, dword [ebp - 0x64]
and ecx, 0xffffffc0
and ebx, 0xffffffc0
cmp ebx, dword [ebp - 0xcc]
mov dword [edx + 0xb0], ecx
setge dl
test eax, eax
setg al
and eax, 0xff
test edx, eax
je 0x5379a3
mov eax, dword [ebp - 0x64]
sub ebx, 0x40
mov dword [eax + 0xa8], ebx
cmp ecx, dword [edi + 8]
setle dl
test esi, esi
setg al
and eax, 0xff
test edx, eax
je 0x5377c8
lea esi, [ecx + 0x40]
mov ecx, dword [ebp - 0x64]
mov dword [ecx + 0xb0], esi
mov eax, dword [ebp - 0x84]
mov esi, dword [ebp - 0x7c]
sub ebx, eax
mov edx, dword [ebp - 0x64]
mov dword [esi + 0x90], ebx
mov edi, dword [ebp - 0x88]
mov eax, dword [edx + 0xb0]
sub eax, edi
mov dword [esi + 0x94], eax
jmp 0x5378be
neg eax
push edx
push 0
push eax
push esi
call fcn.0052e1b0
add esp, 0x10
jmp 0x5370e4
mov ebx, ecx
add ebx, 0x90
push eax
push eax
push ebx
push esi
call fcn.0052e420
pop ecx
pop eax
push ebx
push edi
call fcn.0052b3d0
add esp, 0x10
jmp 0x5370d3
mov eax, dword [ebp - 0x7c]
mov cx, word [eax + 0x6c]
push eax
movsx eax, cx
push eax
mov edi, dword [ebp - 0x70]
movsx eax, bx
add eax, 4
push eax
push edi
call fcn.00532220
add esp, 0x10
test eax, eax
mov dword [ebp - 0x6c], eax
je 0x53760d
jmp 0x537260
push eax
mov eax, dword [esi + 0xa4]
push eax
mov eax, dword [esi + 0xa0]
push eax
mov eax, ebx
add eax, 0x6c
push eax
call fcn.0052e1b0
add esp, 0x10
jmp 0x5375b0
mov ecx, dword [ebp - 0x64]
mov edx, dword [ecx + 0xa8]
mov ecx, esi
mov esi, dword [ebp - 0x64]
lea eax, [ecx + 0x20]
lea ebx, [edx + 0x20]
and eax, 0xffffffc0
and ebx, 0xffffffc0
mov dword [esi + 0xb0], eax
mov eax, dword [ebp - 0x7c]
mov dword [esi + 0xa8], ebx
sub ebx, edx
mov dword [eax + 0x90], ebx
mov eax, dword [esi + 0xb0]
sub eax, ecx
mov edx, dword [ebp - 0x7c]
mov dword [edx + 0x94], eax
sub esp, 0xc
mov esi, dword [ebp - 0x70]
push esi
call fcn.0052af30
add esp, 0x10
jmp 0x53704c
mov ecx, dword [ebp - 0x78]
mov ebx, dword [esi + 8]
mov eax, ebx
mov edx, dword [ecx + 4]
imul edx
mov ecx, edx
sar ecx, 0x1f
add ecx, 0x8000
add eax, ecx
adc edx, 0
shr eax, 0x10
shl edx, 0x10
add eax, edx
mov edx, dword [ebp - 0x78]
mov ebx, eax
mov eax, dword [edx + 8]
mov edx, dword [edx + 0xc]
add ebx, eax
mov eax, dword [esi + 0xc]
imul edx
mov ecx, edx
sar ecx, 0x1f
add ecx, 0x8000
add eax, ecx
adc edx, 0
shr eax, 0x10
shl edx, 0x10
add eax, edx
mov esi, dword [ebp - 0x78]
add ebx, 0x20
and ebx, 0xffffffc0
mov edi, dword [esi + 0x10]
add eax, edi
lea ecx, [eax + 0x20]
and ecx, 0xffffffc0
jmp 0x5374fd
push eax
mov eax, dword [ebp - 0x70]
push ebx
add eax, 0x38
push eax
mov eax, dword [ebp - 0x78]
push eax
call edx
mov eax, dword [ebp - 0x64]
add esp, 0x10
mov esi, dword [eax + 0xb0]
jmp 0x5376dd
mov ebx, dword [ebp - 0x64]
mov eax, dword [ebp - 0x78]
mov ecx, dword [ebx + 0xa8]
mov edx, dword [eax + 0x74]
add edx, ecx
add edx, 0x20
and edx, 0xffffffc0
mov dword [ebx + 0xa8], edx
mov ebx, dword [ebp - 0x64]
mov eax, dword [eax + 0x78]
sub edx, ecx
add eax, esi
add eax, 0x20
and eax, 0xffffffc0
mov dword [ebx + 0xb0], eax
mov eax, dword [ebp - 0x7c]
mov dword [eax + 0x90], edx
mov eax, dword [ebx + 0xb0]
sub eax, esi
jmp 0x5378b5
mov edx, dword [ebp - 0x64]
mov dword [edx + 0xa8], ebx
jmp 0x5377a8
mov dword [ebp - 0x6c], 0x15
jmp 0x537260