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

Disassembly:
push ecx
mov eax, dword [esp + 0xc]
push ebx
push ebp
push esi
push edi
mov ebx, ecx
mov ecx, dword [esp + 0x28]
xor edi, edi
mov dword [esp + 0x10], edi
mov dword [ebx + 8], eax
mov dword [ebx + 0xc], eax
call fcn.00411a20
mov ecx, dword [esp + 0x30]
mov dword [ebx + 0x64], eax
mov eax, dword [esp + 0x2c]
xor edx, edx
mov dword [ebx + 0x68], eax
mov dword [ebx + 0x6c], 5
mov dword [ebx + 0x80], ecx
call fcn.004ad990
mov ecx, dword [esp + 0x24]
mov dword [ebx + 0x7c], eax
mov eax, dword [esp + 0x20]
mov dword [ebx + 0x78], ecx
cmp eax, 0xd
mov dword [ebx + 0x74], eax
jne 0x52f5cb
mov dword [ebx + 0x74], edi
lea ecx, [ebx + 0xd5]
push edi
mov dword [esp + 0x24], ecx
call fcn.004d0860
mov ecx, ebx
call fcn.0053d510
cmp eax, 1
je 0x52f992
lea esi, [ebx + 0x14]
mov dword [esp + 0x2c], edi
or edx, 0xffffffff
mov dword [esi], edi
mov dword [esi + 4], edi
mov dword [esi + 8], edi
mov dword [esi + 0xc], edi
mov dword [esi + 0x14], edi
mov dword [esi + 0x18], edi
mov dword [esi + 0x1c], edi
mov dword [esi + 0x10], edi
mov dword [esi + 0x24], edi
mov dword [esi + 0x20], edi
mov eax, dword [ebx + 4]
mov edi, dword [ebx]
sub edi, 0x28
mov dword [esp + 0x1c], edx
lea ecx, [eax + 0x7e]
mov dword [esp + 0x30], eax
cmp eax, ecx
ja 0x52f992
jmp 0x52f633
mov edx, dword [esp + 0x1c]
mov ecx, dword [esp + 0x2c]
add edi, 0x28
mov word [eax], cx
mov eax, dword [esi]
mov dword [edi], eax
mov eax, dword [esi + 4]
mov dword [edi + 4], eax
mov eax, dword [esi + 8]
mov dword [edi + 8], eax
mov eax, dword [esi + 0xc]
mov dword [edi + 0xc], eax
mov eax, dword [esi + 0x10]
mov dword [edi + 0x10], eax
mov eax, dword [esi + 0x14]
mov dword [edi + 0x14], eax
mov eax, dword [esi + 0x18]
mov dword [edi + 0x18], eax
mov eax, dword [esi + 0x1c]
mov dword [edi + 0x1c], eax
mov eax, dword [esi + 0x20]
movsx ebp, cx
mov dword [edi + 0x20], eax
mov eax, dword [esi + 0x24]
shl ebp, 1
mov dword [edi + 0x24], eax
mov ax, word [ebp + 0x55b770]
cmp ax, 0xfc18
mov dword [esp + 0x28], eax
jle 0x52f738
test dx, dx
jge 0x52f6c7
mov ecx, ebx
call fcn.004ec7d0
mov edx, eax
cmp dx, 0x10e
mov dword [esp + 0x1c], edx
jne 0x52f6c3
mov ecx, dword [esp + 0x10]
mov eax, 1
cmp ecx, eax
jne 0x52f6bf
xor edx, edx
mov dword [esp + 0x1c], edx
jmp 0x52f6c3
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x28]
add eax, edx
test ax, ax
jl 0x52f738
cmp ax, 0x46
jge 0x52f738
movsx ecx, ax
mov ax, word [ecx*2 + 0x55b6e4]
movsx ecx, ax
cmp word [ecx*2 + 0x55b82c], dx
jne 0x52f738
mov edx, dword [ebx + 0x3c]
mov dword [esp + 0x1c], 0xffffffff
mov dword [esi], edx
mov ecx, dword [ebx + 0x40]
mov dword [esi + 4], ecx
mov edx, dword [ebx + 0x44]
mov dword [esi + 8], edx
mov ecx, dword [ebx + 0x48]
mov dword [esi + 0xc], ecx
mov edx, dword [ebx + 0x4c]
mov dword [esi + 0x10], edx
mov ecx, dword [ebx + 0x50]
mov dword [esi + 0x14], ecx
mov edx, dword [ebx + 0x54]
mov dword [esi + 0x18], edx
mov ecx, dword [ebx + 0x58]
mov dword [esi + 0x1c], ecx
mov edx, dword [ebx + 0x5c]
mov dword [esi + 0x20], edx
mov ecx, dword [ebx + 0x60]
mov dword [esi + 0x24], ecx
mov dword [esp + 0x2c], eax
jmp case.default.0x52f891
mov ax, word [ebp + 0x55b880]
cmp ax, 0xfffe
mov dword [esp + 0x28], eax
jne 0x52f7c3
test dx, dx
jge 0x52f77b
mov ecx, ebx
call fcn.004ec7d0
mov edx, eax
cmp dx, 0x10e
mov dword [esp + 0x1c], edx
jne 0x52f77b
mov ecx, dword [esp + 0x10]
mov eax, 1
cmp ecx, eax
jne 0x52f777
xor edx, edx
mov dword [esp + 0x1c], edx
jmp 0x52f77b
mov dword [esp + 0x10], eax
mov ecx, dword [esp + 0x2c]
mov eax, 0x55b6d4
cmp word [eax], 0xffff
jne 0x52f790
cmp word [eax + 2], cx
je 0x52f795
add eax, 4
jmp 0x52f784
mov cx, word [eax + 4]
add eax, 4
test cx, cx
jl 0x52f7b2
cmp cx, dx
je 0x52f7b2
mov cx, word [eax + 4]
add eax, 4
test cx, cx
jge 0x52f7a1
mov ax, word [eax + 2]
test ax, ax
mov dword [esp + 0x28], eax
jl 0x52f965
test ax, ax
je 0x52f992
movsx eax, ax
shl eax, 1
mov ebp, dword [esp + 0x30]
movsx edx, word [eax + 0x55b800]
mov ecx, edx
neg ecx
lea ecx, [ebp + ecx*2]
mov ebp, edx
neg ebp
shl ebp, 2
sub ebp, edx
mov edx, dword [edi + ebp*8 + 0x28]
mov dword [esp + 0x30], ecx
mov ecx, edi
lea edi, [edi + ebp*8]
mov dword [esi], edx
mov ebp, dword [esp + 0x30]
mov edx, dword [edi + 0x2c]
mov dword [esi + 4], edx
mov edx, dword [edi + 0x30]
mov dword [esi + 8], edx
mov edx, dword [edi + 0x34]
mov dword [esi + 0xc], edx
mov edx, dword [edi + 0x38]
mov dword [esi + 0x10], edx
mov edx, dword [edi + 0x3c]
mov dword [esi + 0x14], edx
mov edx, dword [edi + 0x40]
mov dword [esi + 0x18], edx
mov edx, dword [edi + 0x44]
mov dword [esi + 0x1c], edx
mov edx, dword [edi + 0x48]
mov dword [esi + 0x20], edx
mov edx, dword [edi + 0x4c]
mov dword [esi + 0x24], edx
movsx edx, word [eax + 0x55b7d4]
mov ax, word [edx*2 + 0x55b7c4]
mov dword [esp + 0x24], eax
add ax, word [ebp]
inc eax
cmp ax, 0x46
jge 0x52f874
movsx eax, ax
neg edx
mov ax, word [eax*2 + 0x55b6e4]
mov dword [esp + 0x2c], eax
movsx eax, ax
movsx eax, word [eax*2 + 0x55b82c]
cmp eax, edx
je 0x52f886
movsx edx, word [esp + 0x24]
mov ax, word [edx*2 + 0x55b6e4]
mov word [esp + 0x2c], ax
movsx eax, word [esp + 0x28]
dec eax
cmp eax, 0x13
ja case.default.0x52f891
jmp dword [eax*4 + 0x52f9a0]
add ecx, 0xffffffd8
push ecx
mov ecx, ebx
call fcn.0053d200
jmp 0x52f8b4
lea eax, [ecx - 0x78]
add ecx, 0xffffffd8
push eax
push ecx
mov ecx, ebx
call fcn.0053d490
cmp eax, 1
je 0x52f992
mov eax, dword [esp + 0x30]
mov edx, dword [ebx + 4]
add eax, 2
add edx, 0x7e
cmp eax, edx
mov dword [esp + 0x30], eax
jbe 0x52f62f
pop edi
pop esi
pop ebp
mov eax, 1
pop ebx
pop ecx
ret 0x1c
lea edx, [ecx - 0x28]
add ecx, 0xffffff88
push edx
jmp 0x52f8ac
push esi
mov ecx, ebx
call fcn.0053d6b0
jmp 0x52f8b4
mov dword [esi], 5
mov eax, dword [ecx + 4]
mov dword [esi + 4], eax
mov edx, dword [ecx + 8]
mov dword [esi + 8], edx
mov eax, dword [ecx + 0xc]
mov dword [esi + 0xc], eax
mov ecx, dword [ecx + 0x10]
mov dword [esi + 0x10], ecx
jmp case.default.0x52f891
push ecx
add ecx, 0xffffffd8
push ecx
push esi
mov ecx, ebx
call fcn.0053d7a0
jmp 0x52f8b4
add ecx, 0xffffffd8
push ecx
push esi
mov ecx, ebx
call fcn.0053d8f0
jmp 0x52f8b4
push ecx
mov ecx, ebx
call fcn.0053d820
jmp 0x52f8b4
push ecx
mov ecx, ebx
call fcn.0053d890
jmp 0x52f8b4
mov dword [ebx + 0x70], 1
jmp case.default.0x52f891
mov dword [ebx + 0x70], 0
jmp case.default.0x52f891
mov esi, dword [esp + 0x20]
mov ebx, dword [ebx + 0x1b8]
mov ecx, esi
mov dword [esi + 0x10], ebx
mov dword [esi + 0x20], ebx
call fcn.004d0ad0
mov ecx, dword [esp + 0x18]
push esi
push 5
call fcn.004c59b0
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
pop ecx
ret 0x1c
pop edi
pop esi
pop ebp
mov eax, 1
pop ebx
pop ecx
ret 0x1c