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

Disassembly:
push ebp
push ebx
push edi
push esi
sub esp, 0x60
mov ecx, dword [esp + 0x78]
mov esi, dword [esp + 0x74]
mov eax, dword [0x87aa4c]
xor eax, esp
mov dword [esp + 0x5c], eax
mov edx, ecx
sub ecx, esi
mov eax, ecx
cmp dword [0x84fe34], 0xf09e060d
mov edi, dword [0x84fe28]
jne 0x538dd7
add edi, dword [edi]
mov ecx, dword [0x7d4a38]
mov dword [esp + 0x28], ecx
mov ecx, dword [0x84fe2c]
mov ebx, ecx
add ebx, dword [ecx]
cmp eax, 0x101
jl 0x538e0a
mov dword [esp + 0x34], ebx
mov dword [esp + 0x38], edi
mov edi, dword [esp + 0x7c]
test edi, edi
mov ebx, edx
jle 0x538d96
mov ebp, ebx
nop
movzx eax, byte [esp + 0x50]
mov byte [esp + 0xc], al
mov dword [esp + 8], ebx
mov dword [esp + 4], esi
lea eax, [esp + 0x54]
mov dword [esp], eax
call fcn.00539430
mov eax, edi
shr eax, 1
shr edi, 2
add edi, eax
mov eax, dword [esp + 0x54]
mov ecx, dword [esp + 0x58]
mov edx, eax
sub edx, esi
sub ebp, ecx
cmp edx, ebp
jge 0x538d60
movzx ecx, byte [esp + 0x4c]
mov byte [esp + 0xc], cl
mov dword [esp + 8], edi
mov dword [esp + 4], eax
mov dword [esp], esi
call fcn.00538c80
mov esi, dword [esp + 0x58]
mov eax, ebx
sub eax, esi
cmp eax, 0x101
jge 0x538d8c
jmp 0x538e0c
movzx eax, byte [esp + 0x48]
mov byte [esp + 0xc], al
mov dword [esp + 8], edi
mov dword [esp + 4], ebx
mov dword [esp], ecx
call fcn.00538c80
mov ebx, dword [esp + 0x54]
mov eax, ebx
sub eax, esi
cmp eax, 0x101
jl 0x538e0c
mov ebp, ebx
test edi, edi
jne 0x538cf0
mov edx, eax
shr edx, 4
mov dword [esp + 0x1c], edx
mov edi, dword [0x889b50]
cmp dword [0x84fe38], 0x6b0de879
mov dword [esp + 0x2c], ebx
mov dword [esp + 0x30], edi
jne 0x538edb
mov dword [0x84fe54], 0x831854c0
add dword [0x84fe24], 0xfffffffe
mov ecx, dword [esp + 0x34]
jmp 0x538efd
add edi, dword [edi - 0x18]
mov dword [0x84fe44], 0xc476520d
add edi, dword [0x889b4c]
mov ecx, dword [0x7d4a38]
mov dword [esp + 0x28], ecx
mov ebx, dword [0x84fe2c]
lea ecx, [ebx + 0x10]
add ebx, dword [ecx]
cmp eax, 0x101
jge 0x538cd7
mov ebx, edx
cmp esi, ebx
je 0x539411
lea eax, [esi + 8]
mov dword [esp + 0x18], eax
cmp eax, ebx
je 0x539411
mov eax, esi
sub eax, esi
add eax, 8
mov dword [esp + 0x1c], eax
mov dword [esp + 0x14], 0
mov ebp, dword [esp + 0x18]
mov dword [esp + 0x2c], ebx
jmp 0x538e5c
mov dword [eax], ebx
mov dword [eax + 4], edi
mov ebp, dword [esp + 0x10]
add ebp, 8
inc dword [esp + 0x14]
mov ebx, dword [esp + 0x2c]
cmp ebp, ebx
je 0x539411
mov ebx, dword [ebp]
mov edi, dword [ebp + 4]
cmp ebx, dword [esi]
mov eax, edi
sbb eax, dword [esi + 4]
mov dword [esp + 0x10], ebp
jae 0x538ea0
mov eax, esi
cmp esi, ebp
je 0x538e40
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x14]
lea eax, [eax + ecx*8]
mov dword [esp + 8], eax
mov dword [esp + 4], esi
mov eax, dword [esp + 0x18]
mov dword [esp], eax
call fcn.00731570
mov eax, esi
jmp 0x538e40
mov ecx, dword [ebp - 8]
mov edx, dword [ebp - 4]
cmp ebx, ecx
mov eax, edi
sbb eax, edx
mov eax, ebp
jae 0x538e40
mov eax, dword [esp + 0x10]
nop word cs:[eax + eax]
mov dword [eax], ecx
mov dword [eax + 4], edx
mov ecx, dword [eax - 0x10]
mov edx, dword [eax - 0xc]
add eax, 0xfffffff8
cmp ebx, ecx
mov ebp, edi
sbb ebp, edx
jb 0x538ec0
jmp 0x538e40
mov ecx, dword [0x84fe24]
lea edx, [ecx + 1]
mov dword [0x84fe24], edx
test edx, ecx
mov ecx, dword [esp + 0x34]
je 0x538efd
mov cl, 1
mov dword [esp + 0x24], ecx
jmp 0x5390c7
cmp dword [0x84fe3c], 0x8ce71ab2
jne 0x5390ac
lea edx, [ecx + 0x18]
add edx, dword [ecx + 0x18]
mov dword [esp + 0x14], edx
cmp dword [esp + 0x28], 0
je 0x5390bf
mov dword [esp + 0x3c], eax
xor ebp, ebp
mov ecx, dword [0x84fe40]
mov dword [esp + 0x24], ecx
mov ecx, dword [0x84fe48]
mov dword [esp + 0x44], ecx
mov ecx, dword [0x84fe44]
mov dword [esp + 0x40], ecx
mov dword [esp + 0x20], 0
mov dword [esp + 0x18], 0
xor ebx, ebx
jmp 0x538f7e
xor edi, dword [esp + 0x20]
add ebp, 0xae8ad6cb
mov dword [esp + 0x20], edi
add ebp, 0x51752937
cmp ebp, dword [esp + 0x28]
jge 0x53909a
mov ecx, dword [esp + 0x38]
add ecx, ebp
cmp dword [esp + 0x24], 0x23d3d839
jne 0x538fa0
movzx edi, word [ecx]
jmp 0x538fdf
mov edx, dword [esp + 0x14]
mov dword [esp + 0x10], ebx
mov edi, 0x2367d72d
add edx, edi
mov eax, 0x2367d72d
mov edi, dword [esp + 0x18]
mov ebx, 0xdfde1c6f
adc edi, ebx
sub edx, ecx
sbb edi, 0
lea ebx, [eax + 2]
cmp edx, ebx
mov ebx, dword [esp + 0x10]
mov eax, 0xdfde1c6f
sbb edi, eax
lea edx, [edx - 0x2367d72d]
movzx edi, word [ecx]
jae 0x53905e
cmp dword [esp + 0x40], 0x7140c00d
jne 0x539010
mov ecx, edx
shl ecx, 3
mov dword [esp + 0x10], ebx
mov ebx, 0xffffffff
shl ebx, cl
not ebx
and edi, ebx
mov ebx, dword [esp + 0x10]
inc ebx
mov ecx, 2
jmp 0x539044
add ebx, ebx
mov edi, 2
sub edi, ebx
lea ecx, [edx*8]
lea ebx, [ecx + edx*2]
lea ecx, [ecx + edx*2]
add ecx, 0xa27bdbfc
add ecx, ecx
lea edx, [ebx*4 - 0x76109010]
sub ecx, edx
imul edx, ecx, 0x5d8423e4
mov ecx, 0xad5c00d4
mov ebx, edi
add ebp, ecx
add ebp, edx
mov ecx, dword [esp + 0x34]
lea edx, [ecx + ebx*4]
add edx, dword [ecx + ebx*4]
mov dword [esp + 0x14], edx
mov dword [esp + 0x18], 0
cmp dword [esp + 0x44], 0x7214b510
jne 0x538f60
mov ebp, ebx
mov ebx, dword [esp + 0x20]
mov edx, ebx
sub edx, edi
imul edx, edi
mov ecx, ebx
sub ecx, edx
imul ecx, edx
shl ebx, cl
xor ebx, ecx
mov dword [esp + 0x20], ebx
mov ebx, ebp
add ebp, 0x51752937
cmp ebp, dword [esp + 0x28]
jl 0x538f7e
mov dword [esp + 0x24], 0
mov edi, dword [esp + 0x30]
mov eax, dword [esp + 0x3c]
jmp 0x5390cf
mov edx, dword [ecx]
add edx, ecx
mov dword [esp + 0x14], edx
cmp dword [esp + 0x28], 0
jg 0x538f22
mov dword [esp + 0x24], 0
mov dword [esp + 0x20], 0
add dword [esp + 0x1c], edi
mov ecx, eax
shr ecx, 3
mov dword [esp + 0x28], ecx
lea ebp, [ecx - 1]
mov dword [esp + 0x38], ebp
shr ebp, 1
test al, 8
je 0x53910c
jmp 0x5391ec
mov edx, ebx
mov eax, dword [esp + 0x14]
mov dword [esi + edx*8], eax
mov eax, dword [esp + 0x18]
mov dword [esi + edx*8 + 4], eax
cmp dword [esp + 0x10], 1
jle 0x539290
mov eax, dword [esp + 0x1c]
lea ebx, [eax - 1]
mov ecx, dword [esi + eax*8 - 8]
mov dword [esp + 0x14], ecx
mov ecx, dword [esi + eax*8 - 4]
mov dword [esp + 0x18], ecx
mov dword [esp + 0x1c], ebx
mov dword [esp + 0x10], eax
cmp ebp, eax
jge 0x539180
cmp ebx, ebp
jne 0x539146
mov eax, dword [esp + 0x28]
movsd xmm0, qword [esi + eax*8 - 8]
movsd qword [esi + ebx*8], xmm0
mov ebx, dword [esp + 0x38]
cmp ebx, dword [esp + 0x10]
jl 0x5390f0
nop dword [eax]
lea edx, [ebx - 1]
sar edx, 1
mov ecx, dword [esi + edx*8]
mov eax, dword [esi + edx*8 + 4]
cmp ecx, dword [esp + 0x14]
mov edi, eax
sbb edi, dword [esp + 0x18]
jae 0x5390f0
mov dword [esi + ebx*8], ecx
mov dword [esi + ebx*8 + 4], eax
mov ebx, edx
cmp edx, dword [esp + 0x10]
jge 0x539150
jmp 0x5390f2
mov edx, dword [esp + 0x1c]
jmp 0x5391a7
lea ebx, [edx*2 + 2]
movsd xmm0, qword [esi + ebx*8]
movsd qword [esi + edx*8], xmm0
mov edx, ebx
cmp ebx, ebp
jge 0x53912f
lea ecx, [edx + edx]
mov edi, dword [esi + ecx*8 + 0x10]
cmp edi, dword [esi + ecx*8 + 8]
mov edi, dword [esi + ecx*8 + 0x14]
sbb edi, dword [esi + ecx*8 + 0xc]
jae 0x539190
lea ebx, [edx*2 + 1]
jmp 0x539197
mov ebx, edx
mov eax, dword [esp + 0x10]
mov dword [esi + ebx*8], eax
mov eax, dword [esp + 0x14]
mov dword [esi + ebx*8 + 4], eax
cmp dword [esp + 0x18], 1
jle 0x539290
mov eax, dword [esp + 0x1c]
lea ebx, [eax - 1]
mov ecx, dword [esi + eax*8 - 8]
mov dword [esp + 0x10], ecx
mov ecx, dword [esi + eax*8 - 4]
mov dword [esp + 0x14], ecx
mov dword [esp + 0x1c], ebx
mov dword [esp + 0x18], eax
cmp ebp, eax
jl 0x5391d2
mov ebx, dword [esp + 0x1c]
jmp 0x539237
lea edx, [ebx*2 + 2]
movsd xmm0, qword [esi + edx*8]
movsd qword [esi + ebx*8], xmm0
mov ebx, edx
cmp edx, ebp
jge 0x539260
lea ecx, [ebx + ebx]
mov edx, dword [esi + ecx*8 + 0x10]
cmp edx, dword [esi + ecx*8 + 8]
mov edx, dword [esi + ecx*8 + 0x14]
sbb edx, dword [esi + ecx*8 + 0xc]
jae 0x539220
lea edx, [ebx*2 + 1]
jmp 0x539227
lea ebx, [edx - 1]
sar ebx, 1
mov ecx, dword [esi + ebx*8]
mov eax, dword [esi + ebx*8 + 4]
cmp ecx, dword [esp + 0x10]
mov edi, eax
sbb edi, dword [esp + 0x14]
jae 0x5391d0
mov dword [esi + edx*8], ecx
mov dword [esi + edx*8 + 4], eax
mov edx, ebx
cmp ebx, dword [esp + 0x18]
jge 0x539260
jmp 0x5391d2
cmp dword [0x84fe34], 0xb8426fb
movzx eax, word [0x7d4a40]
jne 0x5392d1
mov edx, dword [esp + 0x24]
movzx ecx, dl
xor dl, 1
movzx edx, dl
lea ecx, [ecx + edx*2]
add ecx, 0xfffffffe
add eax, eax
mov edx, dword [esp + 0x20]
sub edx, eax
imul edx, ecx
mov eax, edx
shl eax, cl
and eax, edx
mov ecx, eax
mov eax, dword [esp + 0x30]
shl eax, cl
jmp 0x5392e6
sub eax, dword [esp + 0x20]
movzx ecx, ax
xor eax, eax
cmp byte [esp + 0x24], 0
cmove eax, ecx
add eax, dword [esp + 0x30]
mov dword [0x889b50], eax
mov ecx, dword [esp + 0x2c]
jmp 0x539320
xor edx, edx
mov ecx, dword [esp + 0x2c]
mov eax, dword [esp + 0x10]
mov dword [esi + edx*8], eax
mov eax, dword [esp + 0x14]
mov dword [esi + edx*8 + 4], eax
cmp dword [esp + 0x18], 8
jle 0x539411
mov eax, ecx
mov ecx, dword [ecx - 8]
mov dword [esp + 0x10], ecx
mov ecx, dword [eax - 4]
mov dword [esp + 0x14], ecx
movsd xmm0, qword [esi]
movsd qword [eax - 8], xmm0
lea ecx, [eax - 8]
mov eax, ecx
sub eax, esi
mov dword [esp + 0x18], eax
sar eax, 3
mov dword [esp + 0x1c], eax
lea edx, [eax - 1]
mov ebx, edx
sar ebx, 1
test ebx, ebx
jle 0x5393a0
xor edi, edi
jmp 0x539377
lea ebp, [edi*2 + 2]
movsd xmm0, qword [esi + ebp*8]
movsd qword [esi + edi*8], xmm0
mov edi, ebp
cmp ebp, ebx
jge 0x5393a2
lea eax, [edi + edi]
mov ebp, dword [esi + eax*8 + 0x10]
cmp ebp, dword [esi + eax*8 + 8]
mov ebp, dword [esi + eax*8 + 0x14]
sbb ebp, dword [esi + eax*8 + 0xc]
jae 0x539360
lea ebp, [edi*2 + 1]
jmp 0x539367
xor ebp, ebp
test byte [esp + 0x18], 8
jne 0x5393d0
cmp ebp, ebx
jne 0x5393d0
mov eax, dword [esp + 0x1c]
movsd xmm0, qword [esi + eax*8 - 8]
movsd qword [esi + ebp*8], xmm0
test edx, edx
jg 0x5393da
jmp 0x539306
mov edx, ebp
test edx, edx
jle 0x539306
mov dword [esp + 0x2c], ecx
nop
lea edi, [edx - 1]
mov ebx, edi
shr ebx, 1
mov ebp, dword [esi + ebx*8]
mov ecx, dword [esi + ebx*8 + 4]
cmp ebp, dword [esp + 0x10]
mov eax, ecx
sbb eax, dword [esp + 0x14]
jae 0x539302
mov dword [esi + edx*8], ebp
mov dword [esi + edx*8 + 4], ecx
mov edx, ebx
cmp edi, 1
ja 0x5393e0
jmp 0x539300
mov ecx, dword [esp + 0x5c]
xor ecx, esp
call fcn.00719989
add esp, 0x60
pop esi
pop edi
pop ebx
pop ebp
ret