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

Disassembly:
sub esp, 0x6c
mov eax, dword [0x7be9b8]
xor eax, esp
mov dword [esp + 0x68], eax
push ebp
push esi
mov esi, dword [esp + 0x78]
push edi
xor edi, edi
mov ebp, dword [esi + 0x1c]
mov dword [esp + 0x18], ebp
mov al, byte [ebp + 6]
and al, 0x60
cmp al, 0x40
jne 0x5245a3
cmp dword [esi + 0xe4], 1
jl 0x524598
push edi
push 0x75565c
push 7
push 0x57
push 0x7604d8
push esi
call fcn.00533410
add esp, 0x18
push esi
push 7
call fcn.00533680
add esp, 8
push esi
push 6
call fcn.00533680
add esp, 8
cmp dword [ebp + 0x50], edi
jne 0x5245d2
cmp word [ebp + 8], di
je 0x5245c9
test byte [ebp + 6], 0x10
jne 0x5245c9
push ebp
push esi
call fcn.00534ee0
add esp, 8
push esi
call fcn.00528980
add esp, 4
mov eax, dword [ebp + 0x58]
mov dword [esi + 0x1c], eax
mov edx, dword [ebp + 0x58]
mov dword [esp + 0xc], edx
mov ecx, dword [edx + 0x58]
mov eax, dword [edx]
test ecx, ecx
je 0x524607
mov edi, ecx
mov dword [esp + 0xc], edi
mov ecx, dword [edi]
test ecx, ecx
je 0x5245fa
cmp byte [ecx], 0
cmovne eax, ecx
mov ecx, dword [edi + 0x58]
test ecx, ecx
jne 0x5245e8
mov edx, dword [esp + 0xc]
xor edi, edi
cmp byte [eax], 0
mov ecx, str.__INITSTATICS_
push ebx
cmovne ecx, eax
mov dword [esp + 0x14], 0
mov ax, word [ebp + 6]
and ax, 2
mov dword [esp + 0x18], ecx
or word [edx + 6], ax
mov edx, dword [ebp + 0x1c]
test edx, edx
je 0x52465e
cmp dword [esi + 0x134], 0
je 0x524656
mov ecx, dword [edx]
lea ebx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x524640
mov eax, dword [esp + 0x14]
sub ecx, ebx
add eax, 4
add eax, ecx
mov dword [esp + 0x14], eax
mov edx, dword [edx + 0x18]
inc edi
test edx, edx
jne 0x524632
mov ebx, dword [ebp + 0x2c]
movzx eax, di
add ebx, 2
cmp dword [esi + 0x134], 0
mov dword [esp + 0x24], eax
je 0x5246af
mov ecx, dword [esi + 0xac]
lea edx, [ecx + 1]
nop dword [eax]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x524680
sub ecx, edx
mov edx, dword [esp + 0x18]
lea eax, [edx + 1]
mov dword [esp + 0x20], eax
mov al, byte [edx]
inc edx
test al, al
jne 0x524694
mov eax, dword [esp + 0x14]
add ebx, 3
sub edx, dword [esp + 0x20]
movzx eax, ax
add eax, edx
add eax, ecx
add ebx, eax
cmp ebx, 0xff
ja 0x5246d4
cmp word [ebp + 8], 0
jne 0x5246d4
test di, di
jne 0x5246d4
push esi
push ebx
push 0x5a
call fcn.005336f0
add esp, 0xc
jmp 0x524794
movzx eax, di
lea ecx, [eax*2 + 5]
add ecx, ebx
cmp ecx, 0xffff
ja 0x5246fc
mov eax, ecx
push esi
shr eax, 8
push eax
push ecx
push 0x59
call fcn.00533770
add esp, 0x10
jmp 0x524738
cmp ecx, 0xffffff
jae 0x524722
inc ecx
push esi
mov eax, ecx
shr eax, 0x10
push eax
mov eax, ecx
shr eax, 8
push eax
push ecx
push 0xa1
call fcn.00533800
add esp, 0x14
jmp 0x524738
push 0
push 0
push 0x41
push 0x45
push 0x7603a0
push esi
call fcn.00533370
add esp, 0x18
movzx ecx, word [ebp + 8]
mov eax, ecx
push esi
shr eax, 8
push eax
push ecx
call fcn.005336f0
mov eax, edi
push esi
shr eax, 8
push eax
push edi
call fcn.005336f0
mov ebx, dword [ebp + 0x1c]
add esp, 0x18
test di, di
je 0x524794
mov ebp, dword [esp + 0x10]
push dword [ebx]
add edi, 0xffff
push dword [ebp + 0xc]
call fcn.0052acc0
movzx ecx, ax
mov eax, ecx
push esi
shr eax, 8
push eax
push ecx
call fcn.005336f0
mov ebx, dword [ebx + 0x18]
add esp, 0x14
test di, di
jne 0x524765
mov ebp, dword [esp + 0x1c]
cmp dword [esi + 0x134], 0
je 0x524809
push dword [esp + 0x18]
push esi
call fcn.00526f00
mov ebx, dword [ebp + 0x1c]
add esp, 8
or edi, 0xffffffff
cmp word [esp + 0x24], 0
je 0x524809
mov ebp, dword [esp + 0x24]
nop dword [eax]
push esi
mov eax, edi
add ebp, 0xffff
sar eax, 8
push eax
push edi
push 0x25
call fcn.00533770
mov edx, dword [ebx]
add esp, 0x10
mov ecx, edx
lea eax, [ecx + 1]
mov dword [esp + 0x20], eax
mov al, byte [ecx]
inc ecx
test al, al
jne 0x5247e3
sub ecx, dword [esp + 0x20]
push esi
lea eax, [ecx + 1]
push eax
push edx
call fcn.005338a0
mov ebx, dword [ebx + 0x18]
add esp, 0xc
dec edi
test bp, bp
jne 0x5247c0
mov ebp, dword [esp + 0x1c]
push esi
push dword [ebp + 0x2c]
push dword [ebp + 0x24]
call fcn.005338a0
add esp, 0xc
cmp dword [esi + 0xe4], 0
je 0x5248dc
mov edi, dword [ebp + 0xc]
test edi, edi
je 0x524860
mov ebx, dword [esp + 0x18]
cmp dword [esi + 0xe4], 0
je 0x524859
mov eax, dword [edi]
test eax, eax
je 0x524859
test byte [edi + 8], 2
jne 0x524859
push ebx
push eax
push 4
push 0x57
push 0x7604d8
push esi
call fcn.00533410
add esp, 0x18
mov edi, dword [edi + 0x18]
test edi, edi
jne 0x524830
mov edi, dword [ebp + 0x10]
test edi, edi
je 0x5248dc
mov ebp, str._s__i_
nop dword [eax]
cmp dword [esi + 0xe4], 0
je 0x5248d1
mov ebx, dword [edi]
test ebx, ebx
je 0x5248d1
test byte [edi + 8], 2
jne 0x5248d1
mov edx, dword [esi + 0x108]
mov eax, dword [edi + 0xc]
test edx, edx
jne 0x524899
mov ecx, 0x75565c
jmp 0x5248a0
mov ecx, eax
mov eax, 0x75565c
push eax
test edx, edx
mov eax, str._i:_s
push ecx
cmove eax, ebp
push eax
lea eax, [esp + 0x34]
push 0x50
push eax
call fcn.004ca860
lea eax, [esp + 0x3c]
push eax
push ebx
push 3
push 0x57
push 0x7604d8
push esi
call fcn.00533410
add esp, 0x2c
mov edi, dword [edi + 0x18]
test edi, edi
jne 0x524870
mov ebp, dword [esp + 0x1c]
mov edx, dword [esp + 0x10]
pop ebx
mov ecx, dword [edx + 0x10]
test ecx, ecx
je 0x524901
mov eax, dword [ecx + 0x18]
test eax, eax
je 0x5248f9
nop
mov ecx, eax
mov eax, dword [ecx + 0x18]
test eax, eax
jne 0x5248f0
mov eax, dword [ebp + 0x10]
mov dword [ecx + 0x18], eax
jmp 0x524907
mov eax, dword [ebp + 0x10]
mov dword [edx + 0x10], eax
mov edi, dword [ebp + 0x10]
mov dword [ebp + 0x10], 0
test edi, edi
je 0x524941
push dword [edi]
lea eax, [esp + 0x28]
push str._s_b_
push 0x43
push eax
call fcn.004ca860
push 2
lea eax, [esp + 0x38]
push eax
push esi
call fcn.0053bc80
mov dword [edi], eax
add esp, 0x1c
mov edi, dword [edi + 0x18]
test edi, edi
jne 0x524915
push ebp
push esi
call fcn.00526410
mov ecx, dword [esp + 0x7c]
add esp, 8
pop edi
pop esi
pop ebp
xor ecx, esp
call fcn.004daa4c
add esp, 0x6c
ret