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

Disassembly:
push 0xffffffffffffffff
push 0x103a672a
mov eax, dword fs:[0]
push eax
sub esp, 0xc0
mov eax, dword [0x105623f8]
xor eax, esp
mov dword [esp + 0xbc], eax
push ebx
push ebp
push esi
push edi
mov eax, dword [0x105623f8]
xor eax, esp
push eax
lea eax, [esp + 0xd4]
mov dword fs:[0], eax
mov edi, dword [esp + 0xe4]
xor eax, eax
mov dword [esp + 0x24], edi
mov dword [esp + 0x18], eax
mov ecx, dword [esp + 0xfc]
mov dword [esp + 0xdc], eax
cmp ecx, eax
jne 0x51df0a
push 0xffffffffffffffff
xor ecx, ecx
mov dword [edi + 0x18], 7
mov dword [edi + 0x14], eax
push eax
lea edx, [esp + 0xf0]
mov word [edi + 4], cx
push edx
mov ecx, edi
call fcn.0040826f
cmp dword [esp + 0x100], 8
jb 0x51e678
mov eax, dword [esp + 0xec]
push eax
jmp 0x51e670
mov edx, dword [esp + 0x100]
mov esi, dword [esp + 0xec]
mov eax, esi
cmp edx, 8
jae 0x51df26
lea eax, [esp + 0xec]
cmp word [eax], 0x52
je 0x51df44
mov eax, esi
cmp edx, 8
jae 0x51df3a
lea eax, [esp + 0xec]
cmp word [eax], 0x72
jne 0x51e63a
mov esi, 1
xor bl, bl
mov byte [esp + 0x20], 0
mov byte [esp + 0x17], bl
lea ebp, [esi + 0x5a]
cmp ecx, esi
jbe 0x51e0ac
cmp esi, ecx
jbe 0x51df6f
call fcn.00776e71
mov ecx, dword [esp + 0xfc]
cmp dword [esp + 0x100], 8
mov eax, dword [esp + 0xec]
jae 0x51df87
lea eax, [esp + 0xec]
cmp word [eax + esi*2], 0x2d
jne 0x51dfc7
lea edi, [esi - 1]
cmp edi, ecx
jbe 0x51dfa1
call fcn.00776e71
mov ecx, dword [esp + 0xfc]
cmp dword [esp + 0x100], 8
mov eax, dword [esp + 0xec]
jae 0x51dfb9
lea eax, [esp + 0xec]
cmp word [eax + edi*2], bp
mov edi, dword [esp + 0x24]
je 0x51e072
cmp esi, 1
jne 0x51e002
cmp ecx, esi
jae 0x51dfdc
call fcn.00776e71
mov ecx, dword [esp + 0xfc]
cmp dword [esp + 0x100], 8
mov eax, dword [esp + 0xec]
jae 0x51dff4
lea eax, [esp + 0xec]
cmp word [eax + 2], bp
jne 0x51e002
mov bl, 1
mov byte [esp + 0x20], bl
jmp 0x51e072
test bl, bl
je 0x51e039
cmp esi, ecx
jbe 0x51e016
call fcn.00776e71
mov ecx, dword [esp + 0xfc]
cmp dword [esp + 0x100], 8
mov eax, dword [esp + 0xec]
jae 0x51e02e
lea eax, [esp + 0xec]
cmp word [eax + esi*2], 0x5d
jne 0x51e039
xor bl, bl
jmp 0x51e072
cmp esi, ecx
jbe 0x51e042
call fcn.00776e71
cmp dword [esp + 0x100], 8
mov eax, dword [esp + 0xec]
jae 0x51e05a
lea eax, [esp + 0xec]
movzx ecx, word [eax + esi*2]
push ecx
call fcn.0077a634
add esp, 4
test eax, eax
je 0x51e07b
mov ecx, dword [esp + 0xfc]
inc esi
cmp esi, ecx
jb 0x51df6f
cmp byte [esp + 0x20], 0
mov byte [esp + 0x17], bl
je 0x51e0ac
lea edx, [esi - 3]
push edx
push 2
lea eax, [esp + 0x4c]
push eax
lea ecx, [esp + 0xf4]
call fcn.0042b04f
mov byte [esp + 0xdc], 1
mov ebx, 2
jmp 0x51e0d3
lea ecx, [esi - 1]
push ecx
push 1
lea edx, [esp + 0x30]
push edx
lea ecx, [esp + 0xf4]
call fcn.0042b04f
mov dword [esp + 0xdc], 2
mov ebx, 4
push 0xffffffffffffffff
xor ebp, ebp
xor ecx, ecx
push ebp
mov word [esp + 0xa4], cx
push eax
lea ecx, [esp + 0xa4]
mov dword [esp + 0x24], ebx
mov dword [esp + 0xbc], 7
mov dword [esp + 0xb8], ebp
call fcn.0040826f
mov dword [esp + 0xdc], 3
test bl, 4
je 0x51e143
and ebx, 0xfffffffb
cmp dword [esp + 0x40], 8
mov dword [esp + 0x18], ebx
jb 0x51e130
mov edx, dword [esp + 0x2c]
push edx
call fcn.00776c58
add esp, 4
xor eax, eax
mov dword [esp + 0x40], 7
mov dword [esp + 0x3c], ebp
mov word [esp + 0x2c], ax
mov byte [esp + 0xdc], 5
test bl, 2
je 0x51e17e
and ebx, 0xfffffffd
cmp dword [esp + 0x5c], 8
mov dword [esp + 0x18], ebx
jb 0x51e16b
mov ecx, dword [esp + 0x48]
push ecx
call fcn.00776c58
add esp, 4
xor edx, edx
mov dword [esp + 0x5c], 7
mov dword [esp + 0x58], ebp
mov word [esp + 0x48], dx
cmp dword [esp + 0xac], ebp
jne 0x51e18c
mov byte [esp + 0x20], 1
cmp esi, ebp
jbe 0x51e616
mov ecx, dword [esp + 0xfc]
cmp esi, ecx
jbe 0x51e1ab
call fcn.00776e71
mov ecx, dword [esp + 0xfc]
cmp dword [esp + 0x100], 8
mov eax, dword [esp + 0xec]
jae 0x51e1c3
lea eax, [esp + 0xec]
cmp word [eax + esi*2], 0x43
je 0x51e1fd
cmp esi, ecx
jbe 0x51e1da
call fcn.00776e71
mov ecx, dword [esp + 0xfc]
cmp dword [esp + 0x100], 8
mov eax, dword [esp + 0xec]
jae 0x51e1f2
lea eax, [esp + 0xec]
cmp word [eax + esi*2], 0x63
jne 0x51e616
inc esi
mov byte [esp + 0x1c], 0
mov edi, esi
cmp esi, ecx
jae 0x51e3e7
lea ebp, [esi - 1]
jbe 0x51e21e
call fcn.00776e71
mov ecx, dword [esp + 0xfc]
cmp dword [esp + 0x100], 8
mov eax, dword [esp + 0xec]
jae 0x51e236
lea eax, [esp + 0xec]
cmp word [eax + esi*2], 0x2d
jne 0x51e271
cmp ebp, ecx
jbe 0x51e24d
call fcn.00776e71
mov ecx, dword [esp + 0xfc]
cmp dword [esp + 0x100], 8
mov eax, dword [esp + 0xec]
jae 0x51e265
lea eax, [esp + 0xec]
cmp word [eax + esi*2 - 2], 0x5b
je 0x51e326
cmp esi, edi
jne 0x51e2b0
cmp esi, ecx
jbe 0x51e285
call fcn.00776e71
mov ecx, dword [esp + 0xfc]
cmp dword [esp + 0x100], 8
mov eax, dword [esp + 0xec]
jae 0x51e29d
lea eax, [esp + 0xec]
cmp word [eax + esi*2], 0x5b
jne 0x51e2b0
mov byte [esp + 0x17], 1
mov byte [esp + 0x1c], 1
jmp 0x51e326
cmp byte [esp + 0x17], 0
je 0x51e2ed
cmp esi, ecx
jbe 0x51e2c7
call fcn.00776e71
mov ecx, dword [esp + 0xfc]
cmp dword [esp + 0x100], 8
mov eax, dword [esp + 0xec]
jae 0x51e2df
lea eax, [esp + 0xec]
cmp word [eax + esi*2], 0x5d
jne 0x51e2ed
mov byte [esp + 0x17], 0
jmp 0x51e326
cmp esi, ecx
jbe 0x51e2f6
call fcn.00776e71
cmp dword [esp + 0x100], 8
mov eax, dword [esp + 0xec]
jae 0x51e30e
lea eax, [esp + 0xec]
movzx eax, word [eax + esi*2]
push eax
call fcn.0077a634
add esp, 4
test eax, eax
je 0x51e368
mov ecx, dword [esp + 0xfc]
inc esi
inc ebp
cmp esi, ecx
jb 0x51e21e
cmp byte [esp + 0x1c], 0
je 0x51e3e7
sub esi, edi
sub esi, 2
push esi
inc edi
push edi
lea eax, [esp + 0x68]
push eax
lea ecx, [esp + 0xf4]
call fcn.0042b04f
mov esi, 8
mov byte [esp + 0xdc], 6
or ebx, esi
jmp 0x51e412
mov esi, dword [esp + 0x24]
push 0xffffffffffffffff
xor edi, edi
xor ecx, ecx
mov ebx, 7
mov dword [esi + 0x18], ebx
mov dword [esi + 0x14], edi
push edi
lea edx, [esp + 0xf0]
mov word [esi + 4], cx
push edx
mov ecx, esi
call fcn.0040826f
mov ebp, 8
cmp dword [esp + 0xb0], ebp
jb 0x51e3af
mov eax, dword [esp + 0x9c]
push eax
call fcn.00776c58
add esp, 4
xor ecx, ecx
mov dword [esp + 0xb0], ebx
mov dword [esp + 0xac], edi
mov word [esp + 0x9c], cx
cmp dword [esp + 0x100], ebp
jb 0x51e3e0
mov edx, dword [esp + 0xec]
push edx
call fcn.00776c58
add esp, 4
mov eax, esi
jmp 0x51e67a
sub esi, edi
push esi
push edi
lea ecx, [esp + 0x84]
push ecx
lea ecx, [esp + 0xf4]
call fcn.0042b04f
mov dword [esp + 0xdc], 7
or ebx, 0x10
mov esi, 8
push 0xffffffffffffffff
xor edi, edi
push edi
xor edx, edx
mov ebp, 7
push eax
lea ecx, [esp + 0xc0]
mov dword [esp + 0x24], ebx
mov dword [esp + 0xd8], ebp
mov dword [esp + 0xd4], edi
mov word [esp + 0xc4], dx
call fcn.0040826f
mov dword [esp + 0xdc], esi
test bl, 0x10
je 0x51e485
and ebx, 0xffffffef
cmp dword [esp + 0x94], esi
jb 0x51e46d
mov eax, dword [esp + 0x80]
push eax
call fcn.00776c58
add esp, 4
xor ecx, ecx
mov dword [esp + 0x94], ebp
mov dword [esp + 0x90], edi
mov word [esp + 0x80], cx
mov byte [esp + 0xdc], 0xa
test bl, 8
je 0x51e4b4
cmp dword [esp + 0x78], esi
jb 0x51e4a5
mov edx, dword [esp + 0x64]
push edx
call fcn.00776c58
add esp, 4
xor eax, eax
mov dword [esp + 0x78], ebp
mov dword [esp + 0x74], edi
mov word [esp + 0x64], ax
cmp dword [esp + 0xc8], edi
jne 0x51e4c2
mov byte [esp + 0x1c], 1
sub esp, 0x1c
mov ecx, esp
mov dword [esp + 0x34], esp
push 0xffffffffffffffff
push edi
lea eax, [esp + 0xbc]
xor edx, edx
mov dword [ecx + 0x18], ebp
mov dword [ecx + 0x14], edi
push eax
mov word [ecx + 4], dx
call fcn.0040826f
call fcn.004c9bdf
mov ecx, esp
mov dword [esp + 0x34], esp
push 0xffffffffffffffff
mov esi, eax
push edi
lea eax, [esp + 0xd8]
xor edx, edx
mov dword [ecx + 0x18], ebp
mov dword [ecx + 0x14], edi
push eax
mov word [ecx + 4], dx
call fcn.0040826f
call fcn.004c9bdf
mov cl, byte [esp + 0x3c]
add esp, 0x1c
test cl, cl
je 0x51e529
add esi, dword [esp + 0x104]
jmp 0x51e52a
dec esi
mov dl, byte [esp + 0x1c]
test dl, dl
je 0x51e53b
add eax, dword [esp + 0x108]
jmp 0x51e53c
dec eax
test cl, cl
mov cl, byte [esp + 0x10c]
je 0x51e55d
cmp esi, edi
jge 0x51e55d
test cl, cl
je 0x51e557
add esi, 0x10000
jmp 0x51e55d
add esi, 0x100000
test dl, dl
je 0x51e575
cmp eax, edi
jge 0x51e575
test cl, cl
je 0x51e570
add eax, 0x100
jmp 0x51e575
add eax, 0x4000
mov ecx, dword [esp + 0x1c]
mov edx, dword [esp + 0x20]
push ecx
push edx
push eax
push esi
mov esi, dword [esp + 0x34]
push esi
call fcn.004cfc6f
mov ebx, 8
add esp, 0x14
cmp dword [esp + 0xcc], ebx
jb 0x51e5ac
mov eax, dword [esp + 0xb8]
push eax
call fcn.00776c58
add esp, 4
xor ecx, ecx
mov dword [esp + 0xcc], ebp
mov dword [esp + 0xc8], edi
mov word [esp + 0xb8], cx
cmp dword [esp + 0xb0], ebx
jb 0x51e5dd
mov edx, dword [esp + 0x9c]
push edx
call fcn.00776c58
add esp, 4
xor eax, eax
mov dword [esp + 0xb0], ebp
mov dword [esp + 0xac], edi
mov word [esp + 0x9c], ax
cmp dword [esp + 0x100], ebx
jb 0x51e3e0
mov ecx, dword [esp + 0xec]
push ecx
call fcn.00776c58
add esp, 4
mov eax, esi
jmp 0x51e67a
cmp dword [esp + 0xb0], 8
mov byte [esp + 0xdc], 0
jb 0x51e63c
mov edx, dword [esp + 0x9c]
push edx
call fcn.00776c58
add esp, 4
jmp 0x51e63c
xor ebp, ebp
push 0xffffffffffffffff
push ebp
lea ecx, [esp + 0xf0]
xor eax, eax
push ecx
mov dword [edi + 0x18], 7
mov dword [edi + 0x14], ebp
mov ecx, edi
mov word [edi + 4], ax
call fcn.0040826f
cmp dword [esp + 0x100], 8
jb 0x51e678
mov edx, dword [esp + 0xec]
push edx
call fcn.00776c58
add esp, 4
mov eax, edi
mov ecx, dword [esp + 0xd4]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebp
pop ebx
mov ecx, dword [esp + 0xbc]
xor ecx, esp
call fcn.00777267
add esp, 0xcc
ret