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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0xdc
push ebx
push esi
push edi
xor ebx, ebx
push ebx
push ebx
push 0x20
push 1
push 7
mov esi, ecx
push ebx
push ebx
lea ecx, [esp + 0x70]
mov dword [esp + 0x48], esi
mov dword [esp + 0x68], 1
mov dword [esp + 0x6c], 0x100
xor edi, edi
mov dword [esp + 0x60], ebx
call fcn.0053ae20
mov ecx, eax
call fcn.0050aab0
push eax
mov eax, dword [ebp + 8]
push ebx
push 0x40
push eax
push ebx
lea ecx, [esp + 0x8c]
call fcn.0050aa80
mov ecx, eax
call fcn.0050aab0
push eax
push 0x120089
lea ecx, [esp + 0x3c]
push ecx
call fcn.004d0a30
cmp eax, ebx
jne 0x522478
mov ecx, dword [esp + 0x14]
lea edx, [esp + 0x20]
push edx
push 0x38
lea eax, [esp + 0xb8]
push eax
push ebx
push ecx
call fcn.004d1eb0
cmp eax, ebx
mov dword [esp + 0x1c], eax
je 0x521ea4
mov edx, dword [esp + 0x14]
push edx
call fcn.004d0f20
mov eax, dword [esp + 0x1c]
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0xc
mov edx, dword [ebp + 0xc]
lea eax, [esp + 0x20]
push eax
lea ecx, [esp + 0x20]
push ecx
push ebx
push ebx
push 0x40
push edx
push ebx
lea ecx, [esp + 0x78]
call fcn.0050aa80
mov ecx, eax
call fcn.0050aab0
push eax
mov ecx, esi
call fcn.0051dda0
mov eax, dword [esp + 0x14]
lea edx, [esp + 0x1c]
lea ecx, [esi + 0x58]
push edx
mov dword [esp + 0x1c], ebx
mov dword [esp + 0x14], ebx
mov dword [esp + 0x20], eax
call fcn.0050d3f0
test eax, eax
je 0x521f1b
push 8
call fcn.004d7f00
add esp, 4
cmp eax, ebx
je 0x521f0f
mov dword [eax + 4], esi
mov ecx, dword [esi + 4]
mov dword [eax], ecx
mov dword [esi + 4], 1
jmp 0x521f11
xor eax, eax
push eax
lea ecx, [esp + 0x14]
call fcn.0050c530
mov edx, dword [esp + 0xb0]
push ebx
push ebx
push 0x21
push 2
push 7
push edx
push ebx
lea ecx, [esp + 0x70]
call fcn.0053ae20
mov ecx, eax
call fcn.0050aab0
push eax
mov eax, dword [ebp + 0xc]
push ebx
push 0x40
push eax
push ebx
lea ecx, [esp + 0x8c]
call fcn.0050aa80
mov ecx, eax
call fcn.0050aab0
push eax
push 0x100002
lea ecx, [esp + 0x40]
push ecx
call fcn.004d0a30
mov esi, eax
cmp esi, ebx
je 0x521f9c
mov edx, dword [esp + 0x14]
push edx
call fcn.004d0f20
mov eax, dword [esp + 0x10]
cmp eax, ebx
je 0x521f91
mov ecx, dword [eax + 4]
mov edx, dword [eax]
push eax
mov dword [ecx + 4], edx
call fcn.004d7ef0
add esp, 4
mov eax, esi
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0xc
mov eax, dword [esp + 0x10]
cmp eax, ebx
je 0x521fb5
mov ecx, dword [eax + 4]
mov edx, dword [eax]
push eax
mov dword [ecx + 4], edx
call fcn.004d7ef0
add esp, 4
mov eax, dword [esp + 0x18]
push eax
call fcn.004d0f20
push 0x10090810
lea ecx, [esp + 0x7c]
push ecx
call dword [0x1018ef74]
jmp 0x521fd3
xor ebx, ebx
cmp edi, ebx
je 0x521fe0
push edi
call fcn.004c3420
add esp, 4
mov esi, dword [esp + 0x50]
push esi
call fcn.004c32d0
mov edx, dword [esp + 0x50]
add esp, 4
neg edx
mov edi, eax
push ebx
sbb edx, edx
lea eax, [esp + 0x7c]
and edx, eax
push edx
push 1
push 2
push esi
push edi
lea ecx, [esp + 0xb0]
mov dword [esp + 0x5c], esi
call fcn.0053ae20
mov ecx, eax
call fcn.0050aab0
mov ecx, dword [esp + 0x2c]
push eax
push ebx
push ebx
push ebx
push ecx
call fcn.004d15e0
cmp eax, 0xc0000004
je 0x5223f4
cmp eax, 0x80000005
je 0x5223f4
cmp eax, 0xc0000023
je 0x5223f4
cmp eax, ebx
jne 0x522429
cmp dword [esp + 0x4c], ebx
je 0x52205d
mov dword [esp + 0x4c], ebx
mov edx, dword [edi + 0x3c]
shr edx, 1
add edx, 1
push edx
lea ecx, [esp + 0x3c]
call fcn.004c4850
mov eax, dword [edi + 0x3c]
mov esi, dword [esp + 0x38]
push eax
lea ecx, [edi + 0x44]
push ecx
push esi
call fcn.004c3260
mov edx, dword [esp + 0x48]
add esp, 0xc
push esi
lea ecx, [esp + 0x60]
mov word [esi + edx*2 - 2], bx
mov dword [esp + 0x60], ebx
mov dword [esp + 0x64], ebx
mov dword [esp + 0x68], ebx
call fcn.004c1990
mov eax, dword [ebp + 0xc]
push eax
lea ecx, [esp + 0x28]
call fcn.00525350
push 0x10083960
lea ecx, [esp + 0x28]
call fcn.00525630
mov ebx, dword [esp + 0x5c]
push ebx
lea ecx, [esp + 0x28]
call fcn.00525630
mov ecx, dword [ebp + 8]
push ecx
lea ecx, [esp + 0x34]
call fcn.00525350
push 0x10083960
lea ecx, [esp + 0x34]
call fcn.00525630
push ebx
lea ecx, [esp + 0x34]
call fcn.00525630
mov eax, dword [edi + 0x3c]
cmp eax, 6
jne 0x522106
cmp word [esi], 0x2e
jne 0x522106
cmp word [esi + 2], 0x2e
je 0x522117
cmp eax, 2
jne 0x522111
cmp word [esi], 0x2e
je 0x522117
xor ebx, ebx
cmp eax, ebx
jne 0x522152
lea ecx, [esp + 0x30]
call fcn.00525460
lea ecx, [esp + 0x24]
call fcn.00525460
lea ecx, [esp + 0x5c]
call fcn.004c1ad0
test esi, esi
je 0x521fd1
push esi
call fcn.004c3420
add esp, 4
xor eax, eax
mov dword [esp + 0x38], eax
mov dword [esp + 0x3c], eax
jmp 0x521fd1
test dword [edi + 0x38], 0x10
je 0x5221cc
mov edx, dword [ebp + 0x10]
push edx
lea ecx, [esp + 0x28]
call fcn.0050aab0
push eax
lea ecx, [esp + 0x38]
call fcn.0050aab0
mov ecx, dword [esp + 0x34]
push eax
call fcn.00521df0
mov esi, eax
cmp esi, ebx
je 0x5223cb
mov ecx, dword [esp + 0x14]
push ecx
mov dword [esp + 0x44], edi
call fcn.004d0f20
lea ecx, [esp + 0x30]
call fcn.00525460
lea ecx, [esp + 0x24]
call fcn.00525460
lea ecx, [esp + 0x5c]
call fcn.004c1ad0
lea ecx, [esp + 0x38]
call fcn.004c4ae0
lea ecx, [esp + 0x40]
call fcn.004c4ae0
mov eax, esi
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0xc
push ebx
push ebx
push 0x20
push 1
push 4
push ebx
push ebx
lea ecx, [esp + 0xc4]
call fcn.0053ae20
mov ecx, eax
call fcn.0050aab0
push eax
push ebx
push 0x40
lea ecx, [esp + 0x58]
call fcn.0050aab0
push eax
push ebx
lea ecx, [esp + 0xb0]
call fcn.0050aa80
mov ecx, eax
call fcn.0050aab0
push eax
push 0x100001
lea eax, [esp + 0x38]
push eax
call fcn.004d0a30
lea ecx, [esp + 0x20]
push ecx
lea edx, [esp + 0x1c]
push edx
push ebx
push ebx
push 0x40
lea ecx, [esp + 0x38]
call fcn.0050aab0
push eax
push ebx
lea ecx, [esp + 0x9c]
call fcn.0050aa80
mov ecx, eax
call fcn.0050aab0
mov esi, dword [esp + 0x38]
push eax
mov ecx, esi
call fcn.0051dda0
mov eax, dword [esp + 0x10]
lea ecx, [esp + 0x20]
push ecx
lea ecx, [esi + 0x58]
mov dword [esp + 0x4c], ebx
mov dword [esp + 0x1c], ebx
mov dword [esp + 0x24], eax
call fcn.0050d3f0
test eax, eax
je 0x52229f
push 8
call fcn.004d7f00
add esp, 4
cmp eax, ebx
je 0x522293
mov dword [eax + 4], esi
mov edx, dword [esi + 4]
mov dword [eax], edx
mov dword [esi + 4], 1
jmp 0x522295
xor eax, eax
push eax
lea ecx, [esp + 0x1c]
call fcn.0050c530
mov eax, dword [edi + 0x38]
push ebx
push ebx
push 0x60
push 2
push 7
push eax
push ebx
lea ecx, [esp + 0xbc]
call fcn.0053ae20
mov ecx, eax
call fcn.0050aab0
push eax
push ebx
push 0x40
lea ecx, [esp + 0x4c]
call fcn.0050aab0
push eax
push ebx
lea ecx, [esp + 0xb0]
call fcn.0050aa80
mov ecx, eax
call fcn.0050aab0
push eax
push 0x100002
lea ecx, [esp + 0x70]
push ecx
call fcn.004d0a30
mov esi, eax
cmp esi, ebx
jne 0x522403
lea ecx, [esp + 0x18]
call fcn.0050c570
push 0x400000
call fcn.004c32d0
add esp, 4
push ebx
mov ebx, dword [0x10082110]
lea edx, [esp + 0x20]
push edx
mov esi, eax
mov eax, dword [esp + 0x18]
push 0x400000
push esi
push eax
mov dword [esp + 0x68], esi
mov dword [esp + 0x6c], 0x400000
call ebx
test eax, eax
je 0x522374
lea esp, [esp]
mov eax, dword [esp + 0x1c]
test eax, eax
jbe 0x522374
mov edx, dword [esp + 0x48]
push 0
lea ecx, [esp + 0x78]
push ecx
push eax
push esi
push edx
call dword [0x10082058]
mov ecx, dword [esp + 0x10]
push 0
lea eax, [esp + 0x20]
push eax
push 0x400000
push esi
push ecx
call ebx
test eax, eax
jne 0x522340
lea ecx, [esp + 0x54]
call fcn.004c4ae0
cmp dword [ebp + 0x10], 0
je 0x5223b7
mov ecx, dword [esp + 0x10]
lea edx, [esp + 0x20]
push edx
lea eax, [esp + 0x1c]
push eax
push 0
push 0
push 0x40
push 0
push ecx
lea ecx, [esp + 0x9c]
call fcn.0050aa80
mov ecx, eax
call fcn.0050aab0
mov ecx, dword [esp + 0x38]
push eax
call fcn.0051dda0
mov edx, dword [esp + 0x10]
push edx
call fcn.004d0f20
mov eax, dword [esp + 0x48]
push eax
call fcn.004d0f20
lea ecx, [esp + 0x30]
call fcn.00525460
lea ecx, [esp + 0x24]
call fcn.00525460
lea ecx, [esp + 0x5c]
call fcn.004c1ad0
lea ecx, [esp + 0x38]
call fcn.004c4ae0
jmp 0x521fd1
add esi, 0x100
mov dword [esp + 0x50], esi
jmp 0x521fd3
mov edx, dword [esp + 0x10]
push edx
mov dword [esp + 0x44], edi
call fcn.004d0f20
mov eax, dword [esp + 0x14]
push eax
call fcn.004d0f20
lea ecx, [esp + 0x18]
call fcn.0050c570
jmp 0x522194
cmp dword [ebp + 0x10], ebx
mov dword [esp + 0x40], edi
je 0x522463
mov eax, dword [esp + 0x14]
lea ecx, [esp + 0x74]
push ecx
lea edx, [esp + 0x24]
push edx
push ebx
push ebx
push 0x40
push ebx
push eax
lea ecx, [esp + 0x9c]
call fcn.0050aa80
mov ecx, eax
call fcn.0050aab0
mov ecx, dword [esp + 0x38]
push eax
call fcn.0051dda0
mov ecx, dword [esp + 0x14]
push ecx
call fcn.004d0f20
lea ecx, [esp + 0x40]
call fcn.004c4ae0
xor eax, eax
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0xc