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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
push 0xffffffffffffffff
push 0x632f30
mov eax, dword fs:[0]
push eax
sub esp, 0x60
push ebx
push esi
push edi
mov eax, dword [0x652018]
xor eax, esp
push eax
lea eax, [esp + 0x70]
mov dword fs:[0], eax
mov edx, ecx
mov dword [esp + 0x18], edx
push dword [ebp + 8]
call fcn.0050fb4a
mov ecx, dword [ebp + 0x18]
mov edi, dword [ebp + 0x10]
mov ebx, dword [ebp + 0x14]
mov dword [esp + 0x1c], eax
mov byte [ecx], 0
mov ecx, dword [ebp + 0x1c]
mov byte [ecx], 0
mov cl, byte [eax + 0x40691c]
mov edi, dword [edi + 0x1c]
test cl, cl
je 0x5103dc
mov esi, dword [ebx + 0x1c]
jmp 0x5103de
xor esi, esi
mov eax, dword [ebp + 0x20]
mov dword [esp + 0x60], 0
mov dword [esp + 0x50], 0
mov dword [esp + 0x4c], 0
mov dword [eax], 0
mov eax, dword [ebp + 0x24]
mov dword [esp + 0x58], 0
mov dword [esp + 0x54], 0
mov word [esp + 0x68], 0
mov dword [eax], 0
mov eax, dword [0x65e8d4]
add eax, 4
mov byte [esp + 0x6a], 0
mov dword [esp + 0x5c], eax
mov dword [esp + 0x64], 8
mov dword [esp + 0x78], 0
mov dword [esp + 0x2c], 0
mov dword [esp + 0x30], 0
mov byte [esp + 0x34], 0
mov dword [esp + 0x38], 0
mov byte [esp + 0x78], 1
lea eax, [esp + 0x4c]
push eax
lea eax, [esp + 0x30]
mov ecx, edx
push eax
push esi
push edi
push dword [esp + 0x2c]
call fcn.0050ecea
lea eax, [esp + 0x4c]
push eax
push ecx
mov ecx, dword [esp + 0x20]
lea eax, [esp + 0x34]
push edi
push eax
call fcn.0051027a
cmp dword [esp + 0x38], 0
jbe 0x5107b8
mov edi, dword [esp + 0x2c]
xor ebx, ebx
mov dword [esp + 0x24], 0
mov dword [esp + 0x20], ebx
test edi, edi
je 0x510578
mov esi, dword [esp + 0x4c]
lea ecx, [ecx]
push 0x34
mov edx, 3
lea ecx, [esp + 0x2c]
call 0x3bd1da
mov ebx, dword [eax]
mov eax, dword [esp + 0x50]
and ebx, 0xfffffffc
sub eax, esi
cmp eax, ebx
jae 0x5104e8
push 0x34
lea ecx, [esp + 0x50]
call 0x3bcf0a
mov esi, dword [esp + 0x4c]
push 0x34
mov eax, esi
add esi, ebx
push 0
push eax
mov dword [esp + 0x58], esi
call 0x5a49e6
add esp, 0xc
test eax, eax
je 0x510563
mov ecx, dword [edi + 0xc]
mov ebx, eax
mov edx, dword [edi + 0x10]
mov dword [eax], ecx
mov byte [esp + 0x3c], 0
mov ecx, dword [esp + 0x3c]
mov dword [eax + 4], ecx
mov ecx, dword [esp + 0x20]
mov dword [eax + 8], 0
mov dword [eax + 0xc], edx
mov dword [eax + 0x10], 0
mov dword [eax + 0x14], ecx
mov dword [eax + 0x18], 0x1010000
mov byte [eax + 0x1c], 1
mov dword [eax + 0x20], 0
mov dword [eax + 0x24], 0
mov dword [eax + 0x28], 0
mov dword [eax + 0x2c], 0
mov dword [eax + 0x30], 0x10000
mov dword [esp + 0x20], eax
jmp 0x510569
xor ebx, ebx
mov dword [esp + 0x20], ebx
inc dword [esp + 0x24]
mov edi, dword [edi + 8]
test edi, edi
jne 0x5104ba
mov eax, dword [esp + 0x1c]
mov esi, 0x27
mov al, byte [eax + 0x40691c]
test al, al
je 0x510645
mov eax, dword [esp + 0x18]
add eax, 0x24
push 0x30
mov ecx, eax
mov dword [esp + 0x24], eax
call fcn.0053ac4a
mov edi, eax
mov eax, dword [ebp + 0x14]
mov word [edi], si
test eax, eax
je 0x5105be
mov cx, word [eax + 2]
and cx, 1
mov dword [edi + 0x24], eax
or word [edi + 2], cx
mov esi, dword [ebp + 0xc]
mov ecx, 0x65e308
mov eax, dword [esi]
mov dword [edi + 4], eax
mov eax, dword [esi + 4]
mov dword [edi + 8], eax
mov eax, dword [esi + 8]
mov dword [edi + 0xc], eax
mov eax, dword [esi + 0xc]
mov dword [edi + 0x10], eax
mov dword [edi + 0x1c], 0x65e308
call 0x3db1ea
mov ecx, dword [esp + 0x20]
push 0x2c
mov dword [edi + 0x14], eax
call fcn.0053ac4a
mov edx, eax
mov eax, 0x4f
mov dword [esp + 0x20], edx
mov word [edx], ax
mov cx, word [edi + 2]
and cx, 1
mov dword [edx + 0x24], edi
or word [edx + 2], cx
mov ecx, 0x65e308
mov eax, dword [esi]
mov dword [edx + 4], eax
mov eax, dword [esi + 4]
mov dword [edx + 8], eax
mov eax, dword [esi + 8]
mov dword [edx + 0xc], eax
mov eax, dword [esi + 0xc]
mov dword [edx + 0x10], eax
mov dword [edx + 0x1c], 0x65e308
call 0x3db1ea
mov ecx, dword [esp + 0x20]
mov dword [ecx + 0x14], eax
jmp 0x51064b
xor ecx, ecx
mov dword [esp + 0x20], ecx
mov esi, dword [esp + 0x18]
push 0x30
lea ecx, [esi + 0x24]
call fcn.0053ac4a
mov edi, eax
mov eax, 0x27
mov word [edi], ax
mov eax, dword [ebp + 0x10]
movzx ecx, word [eax + 2]
and cx, 1
mov dword [edi + 0x24], eax
or word [edi + 2], cx
mov ecx, dword [ebp + 0xc]
mov eax, dword [ecx]
mov dword [edi + 4], eax
mov eax, dword [ecx + 4]
mov dword [edi + 8], eax
mov eax, dword [ecx + 8]
mov dword [edi + 0xc], eax
mov eax, dword [ecx + 0xc]
mov ecx, 0x65e308
mov dword [edi + 0x10], eax
mov dword [edi + 0x1c], 0x65e308
call 0x3db1ea
push 0x2c
lea ecx, [esi + 0x24]
mov dword [edi + 0x14], eax
call fcn.0053ac4a
mov esi, eax
mov eax, 0x4f
mov word [esi], ax
movzx ecx, word [edi + 2]
and cx, 1
mov dword [esi + 0x24], edi
or word [esi + 2], cx
mov ecx, dword [esp + 0x20]
test ecx, ecx
je 0x5106dd
mov ax, word [ecx + 2]
and ax, 1
mov dword [esi + 0x28], ecx
or word [esi + 2], ax
mov edi, dword [ebp + 0xc]
mov ecx, 0x65e308
mov eax, dword [edi]
mov dword [esi + 4], eax
mov eax, dword [edi + 4]
mov dword [esi + 8], eax
mov eax, dword [edi + 8]
mov dword [esi + 0xc], eax
mov eax, dword [edi + 0xc]
mov dword [esi + 0x10], eax
mov dword [esi + 0x1c], 0x65e308
call 0x3db1ea
push 0
push 0
push 0
push 0
push 1
mov dword [esi + 0x14], eax
mov eax, dword [esp + 0x30]
push 0
mov dword [esp + 0x38], 0
mov cl, byte [eax + 0x40691c]
lea eax, [esp + 0x38]
push eax
lea eax, [esp + 0x33]
push eax
push dword [ebp + 0x1c]
xor eax, eax
test cl, cl
push 0
push dword [ebp + 0x18]
setne al
push 0
push 0
inc eax
push eax
push esi
push dword [esp + 0x60]
push ebx
mov ebx, dword [esp + 0x5c]
mov ecx, ebx
push edi
call 0x4ca70a
mov ecx, eax
mov eax, dword [ebp + 0x18]
cmp byte [eax], 0
jne 0x5107f5
mov eax, dword [ebp + 0x1c]
cmp byte [eax], 0
jne 0x5107f5
mov eax, dword [ecx + 0x7c]
mov ecx, dword [ebp + 0x20]
mov esi, dword [ebp + 0x24]
mov dword [ecx], eax
mov eax, dword [esp + 0x20]
mov dword [esi], eax
mov eax, dword [ecx]
mov ecx, dword [eax + 0x50]
call 0x3dc92a
mov esi, dword [esi]
lea edx, [ebx + 0x6c]
sub esp, 0x10
mov ecx, esp
mov byte [ecx], 0
mov dword [ecx + 4], 0
mov dword [ecx + 8], esi
mov dword [ecx + 0xc], 0
mov ecx, eax
call fcn.0041f37a
mov esi, eax
jmp 0x5107f7
test edi, edi
je 0x5107c7
mov ecx, edi
call 0x3e942a
test al, al
jne 0x5107d6
test esi, esi
je 0x5107de
mov ecx, esi
call 0x3e942a
test al, al
je 0x5107de
mov eax, dword [ebp + 0x1c]
mov byte [eax], 1
jmp 0x5107f5
push dword [ebp + 0x18]
mov ecx, dword [esp + 0x1c]
push ebx
push dword [ebp + 0x10]
push dword [ebp + 0xc]
push dword [esp + 0x2c]
call fcn.0050f31a
xor esi, esi
mov byte [esp + 0x78], 0
lea ecx, [esp + 0x2c]
call 0x3e66ca
mov dword [esp + 0x78], 0xffffffff
lea ecx, [esp + 0x4c]
call 0x3bd05a
mov eax, esi
mov ecx, dword [esp + 0x70]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x20