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

Disassembly:
mov ecx, dword fs:[0x14]
mov ecx, dword [ecx]
lea eax, [esp - 0x40]
cmp eax, dword [ecx + 8]
jbe 0x51b57d
sub esp, 0xc0
mov eax, 0
lea edi, [esp + 0x6c]
call fcn.0044b776
mov dword [esp + 0xcc], 0
mov dword [esp + 0xd0], 0
mov dword [esp + 0xd4], 0
mov dword [esp + 0xd8], 0
mov dword [esp + 0xdc], 0
mov eax, dword [esp + 0xc8]
test eax, eax
je 0x51b561
mov ecx, dword [eax + 4]
test ecx, ecx
setg cl
mov byte [esp + 0x2b], cl
mov edx, dword [esp + 0xc4]
mov dword [esp], edx
mov dword [esp + 4], eax
call fcn.0051a590
mov eax, dword [esp + 8]
mov ecx, dword [esp + 0xc]
mov edx, dword [esp + 0x10]
mov dword [esp + 0xd8], ecx
mov dword [esp + 0xdc], edx
test ecx, ecx
jne 0x51b533
mov dword [esp + 0x3c], eax
mov dword [esp + 8], eax
mov dword [esp], 0xc
lea ecx, [0x631708]
mov dword [esp + 4], ecx
call fcn.00425c60
test eax, eax
jne 0x51b526
lea edi, [esp + 0x94]
xor eax, eax
call fcn.0044b775
mov dword [esp + 0x94], 0x2c
movzx ecx, byte [esp + 0x2b]
test cl, cl
jne 0x51b43d
mov edx, dword [esp + 0xc8]
test edx, edx
je 0x51b436
lea esi, [edx + 0x10]
mov dword [esp + 0x48], esi
lea edi, [esp + 0x80]
call fcn.0044bc5e
mov ecx, dword [esp + 0x80]
mov ebx, dword [esp + 0x84]
mov ebp, ebx
shr ebx, 0x1f
shl ebx, 0x1f
test ebx, ebx
je 0x51b421
shl ebp, 1
mov ebx, ecx
shr ecx, 0x1f
or ecx, ebp
mov ebp, ebx
shl ebx, 1
shr ebx, 0x1f
mov eax, ecx
shl ecx, 1
or ebx, ecx
mov ecx, ebx
add ebx, 0xd7b17f80
shr eax, 0x1f
add ecx, 0xd7b17f80
adc eax, 0xd
test ebx, ebx
sete cl
test eax, eax
sete bl
and ebx, ecx
test bl, bl
je 0x51b41a
test ebp, 0x3fffffff
sete cl
test cl, cl
je 0x51b344
xor eax, eax
mov dword [esp + 0x40], 0
mov ecx, dword [esp + 0x3c]
mov edx, dword [ecx + 0x10]
mov dword [esp + 0xc], edx
mov dword [esp], 0
mov dword [esp + 4], ecx
mov dword [esp + 8], eax
lea eax, [esp + 0x94]
mov dword [esp + 0x10], eax
mov dword [esp + 0x14], 0
mov dword [esp + 0x18], 0
lea eax, [esp + 0x40]
mov dword [esp + 0x1c], eax
call fcn.004625c0
mov eax, dword [esp + 0x20]
mov ecx, dword [esp + 0x24]
mov dword [esp + 0xd8], eax
mov dword [esp + 0xdc], ecx
test eax, eax
jne 0x51b316
mov eax, dword [esp + 0x40]
mov dword [esp + 8], eax
mov dword [esp], 4
lea eax, [0x631704]
mov dword [esp + 4], eax
call fcn.00425c60
test eax, eax
jne 0x51b309
mov eax, dword [esp + 0x40]
mov eax, dword [eax + 4]
test eax, eax
je 0x51b300
cmp eax, 1
jne 0x51b29a
mov dword [esp + 0x5c], 0
mov dword [esp + 0x60], 0
mov dword [esp + 0x64], 0
mov dword [esp + 0x68], 0
mov eax, dword [esp + 0xc4]
mov dword [esp + 0x5c], eax
mov dword [esp + 0x60], 1
mov dword [esp + 0x64], 0
mov dword [esp + 0x68], 0
lea ecx, [0x65f930]
mov dword [esp], ecx
lea ecx, [esp + 0x5c]
mov dword [esp + 4], ecx
call fcn.00407420
mov eax, dword [esp + 8]
mov ecx, dword [esp + 0xc]
mov dword [esp + 0xd8], eax
mov dword [esp + 0xdc], ecx
test eax, eax
jne 0x51b26c
movzx eax, byte [esp + 0x2b]
test al, al
jne 0x51b1fe
mov eax, dword [esp + 0x40]
mov ecx, dword [eax + 0x10]
mov eax, dword [eax + 0xc]
mov dword [esp + 4], eax
mov dword [esp], ecx
call fcn.0051a860
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 0x10]
mov ebx, dword [esp + 0xc]
mov ebp, dword [esp + 8]
mov dword [esp + 0xd8], ecx
mov dword [esp + 0xdc], eax
test ecx, ecx
jne 0x51b1d0
mov ecx, dword [esp + 0xd0]
lea esi, [ecx + 1]
mov eax, ebp
mov ebp, dword [esp + 0xd4]
mov edi, edx
mov edx, dword [esp + 0xcc]
cmp esi, ebp
jg 0x51b17b
lea ebp, [ecx + 1]
mov dword [esp + 0xd0], ebp
lea ecx, [ecx + ecx*2]
mov dword [edx + ecx*4 + 4], ebx
mov dword [edx + ecx*4 + 8], edi
mov ebx, dword [0x7db370]
lea edi, [edx + ecx*4]
test ebx, ebx
jne 0x51b174
mov dword [edx + ecx*4], eax
mov dword [esp + 0xd8], 0
mov dword [esp + 0xdc], 0
nop
call fcn.00426420
add esp, 0xc0
ret
call fcn.0044b680
jmp 0x51b151
mov dword [esp + 0x30], edi
mov dword [esp + 0x2c], ebx
mov dword [esp + 0x44], eax
lea eax, [0x5d0120]
mov dword [esp], eax
mov dword [esp + 4], edx
mov dword [esp + 8], ecx
mov dword [esp + 0xc], ebp
mov dword [esp + 0x10], esi
call fcn.00437c50
mov edx, dword [esp + 0x14]
mov ecx, dword [esp + 0x18]
mov eax, dword [esp + 0x1c]
mov dword [esp + 0xd4], eax
mov dword [esp + 0xcc], edx
mov eax, dword [esp + 0x44]
mov ebx, dword [esp + 0x2c]
mov edi, dword [esp + 0x30]
jmp 0x51b12c
mov dword [esp + 0xcc], 0
mov dword [esp + 0xd0], 0
mov dword [esp + 0xd4], 0
nop
call fcn.00426420
add esp, 0xc0
ret
mov eax, dword [esp + 0xc4]
mov dword [esp], eax
mov eax, dword [esp + 0x40]
mov dword [esp + 4], eax
mov eax, dword [esp + 0xc8]
mov dword [esp + 8], eax
call fcn.0051aad0
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0x10]
mov dword [esp + 0xd8], eax
mov dword [esp + 0xdc], ecx
test eax, eax
je 0x51b0cc
mov dword [esp + 0xcc], 0
mov dword [esp + 0xd0], 0
mov dword [esp + 0xd4], 0
nop
call fcn.00426420
add esp, 0xc0
ret
mov dword [esp + 0xcc], 0
mov dword [esp + 0xd0], 0
mov dword [esp + 0xd4], 0
nop
call fcn.00426420
add esp, 0xc0
ret
mov dword [esp + 0x4c], 0
mov dword [esp + 0x50], 0
mov dword [esp + 0x54], 0
mov dword [esp + 0x58], 0
mov eax, dword [esp + 0xc4]
mov dword [esp + 0x4c], eax
mov dword [esp + 0x50], 0
mov dword [esp + 0x54], 0
mov dword [esp + 0x58], 0
lea ecx, [0x65f9d0]
mov dword [esp], ecx
lea ecx, [esp + 0x4c]
mov dword [esp + 4], ecx
call fcn.00407420
mov ecx, dword [esp + 0xc]
mov eax, dword [esp + 8]
jmp 0x51b0a9
xor eax, eax
xor ecx, ecx
jmp 0x51b0a9
nop
call fcn.00426420
add esp, 0xc0
ret
mov dword [esp + 0xcc], 0
mov dword [esp + 0xd0], 0
mov dword [esp + 0xd4], 0
nop
call fcn.00426420
add esp, 0xc0
ret
lea edi, [esp + 0x6c]
mov esi, dword [esp + 0x48]
call fcn.0044bc5e
mov ecx, dword [esp + 0x70]
mov ebx, dword [esp + 0x6c]
mov ebp, ecx
shr ecx, 0x1f
shl ecx, 0x1f
test ecx, ecx
je 0x51b40b
shl ebp, 1
mov ecx, ebx
shr ebx, 0x1f
or ebx, ebp
mov ebp, ecx
shl ecx, 1
shr ecx, 0x1f
mov esi, ebx
shl ebx, 1
or ecx, ebx
mov ebx, ecx
add ecx, 0xd7b17f80
shr esi, 0x1f
add ebx, 0xd7b17f80
adc esi, 0xd
mov eax, ecx
mov edx, 0x3b9aca00
mul edx
and ebp, 0x3fffffff
mov ecx, eax
add eax, ebp
mov ebx, eax
add eax, 0x3d1a0000
mov dword [esp], eax
imul esi, esi, 0x3b9aca00
add edx, esi
mov esi, ebp
sar ebp, 0x1f
add ecx, esi
adc ebp, edx
add ebx, 0x3d1a0000
adc ebp, 0xa1b203eb
mov dword [esp + 4], ebp
mov dword [esp + 8], 0x64
mov dword [esp + 0xc], 0
call fcn.004472c0
mov ecx, dword [esp + 0x10]
add ecx, 0xd53e8000
mov edx, dword [esp + 0x14]
mov dword [esp + 0x34], ecx
adc edx, 0x19db1de
mov dword [esp + 0x38], edx
lea eax, [esp + 0x34]
jmp 0x51afa2
mov ecx, dword [esp + 0x74]
mov esi, dword [esp + 0x78]
mov ebp, ebx
jmp 0x51b393
xor ecx, ecx
jmp 0x51af98
mov ebx, dword [esp + 0x88]
mov eax, dword [esp + 0x8c]
mov ebp, ecx
jmp 0x51af7b
xor eax, eax
jmp 0x51afa2
lea eax, [0x5d9340]
mov dword [esp], eax
call fcn.00409a30
mov edi, dword [esp + 4]
mov eax, dword [0x7c4dac]
mov ecx, dword [0x7c4da8]
test eax, eax
jbe 0x51b576
mov edx, dword [0x7db370]
test edx, edx
jne 0x51b51a
mov dword [edi], ecx
mov eax, dword [str.1.3.6.1.4.1.311.10.3.3]
mov ecx, dword [0x7c4dbc]
test ecx, ecx
jbe 0x51b56f
mov ecx, dword [0x7db370]
test ecx, ecx
jne 0x51b507
mov dword [edi + 4], eax
mov eax, dword [str.2.16.840.1.113730.4.1]
mov ecx, dword [0x7c4dcc]
test ecx, ecx
jbe 0x51b568
mov ecx, dword [0x7db370]
test ecx, ecx
jne 0x51b4ec
mov dword [edi + 8], eax
mov ecx, dword [esp + 0xc8]
test ecx, ecx
mov dword [esp + 0x98], 1
mov dword [esp + 0x9c], 3
mov dword [esp + 0xa0], edi
movzx ecx, byte [esp + 0x2b]
mov edx, dword [esp + 0xc8]
jmp 0x51af1a
lea edx, [edi + 8]
mov ecx, edi
mov edi, edx
call fcn.0044b680
mov edx, dword [esp + 0xc8]
test edx, edx
mov edi, ecx
mov ecx, edx
jmp 0x51b4be
lea ecx, [edi + 4]
mov edx, edi
mov edi, ecx
call fcn.0044b680
mov edi, edx
jmp 0x51b494
mov eax, ecx
call fcn.0044b680
jmp 0x51b473
nop
call fcn.00426420
add esp, 0xc0
ret
mov dword [esp + 0xcc], 0
mov dword [esp + 0xd0], 0
mov dword [esp + 0xd4], 0
nop
call fcn.00426420
add esp, 0xc0
ret
xor ecx, ecx
jmp 0x51ae8c
call fcn.004258a0
ud2
call fcn.004258a0
ud2
call fcn.004258a0
ud2
call fcn.00449f20
jmp fcn.0051ae10