Function at 0x512740
Capabilities:
Contain obfuscated stackstrings
Resolve function by parsing pe exports

Disassembly:
push 0xffffffffffffffff
push 0x5dc040
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x54
push ebx
push esi
lea ecx, [esp + 0x28]
mov dword [esp + 0x64], 1
call fcn.005589e0
lea ecx, [esp + 0x38]
mov byte [esp + 0x64], 2
call fcn.00559c60
lea ecx, [esp + 0x10]
mov byte [esp + 0x64], 3
call fcn.00558060
push ecx
lea eax, [esp + 0x70]
mov ecx, esp
mov dword [esp + 0x10], esp
push eax
mov byte [esp + 0x6c], 4
call fcn.00558070
lea ecx, [esp + 0x14]
call fcn.00558390
lea ecx, [esp + 0x10]
mov word [esp + 0x14], 0xfe
push ecx
lea ecx, [esp + 0x2c]
call fcn.00558eb0
sub esp, 0x24
xor ebx, ebx
mov edx, esp
mov dword [esp + 0x30], esp
lea eax, [esp + 0x4c]
push ebx
push eax
push edx
mov ecx, 0x619a20
call fcn.00553230
lea ecx, [esp + 0x5c]
call fcn.00559e10
lea ecx, [esp + 0x38]
call fcn.0055a240
test ax, ax
jle 0x512b96
push ebx
lea ecx, [esp + 0x3c]
call fcn.0055a180
mov ecx, dword [eax + 4]
cmp ecx, ebx
je 0x512b96
mov edx, dword [eax + 8]
sub edx, ecx
sar edx, 2
je 0x512b96
push ebx
lea ecx, [esp + 0x3c]
call fcn.0055a180
mov ecx, dword [eax + 4]
call fcn.00558520
test ax, ax
jle 0x512b96
push ecx
mov ecx, esp
mov dword [esp + 0x10], esp
push ebx
call fcn.00558090
mov esi, dword [esp + 0x74]
mov ecx, esi
call fcn.00558390
push ecx
lea ecx, [esp + 0x3c]
mov eax, esp
mov dword [esp + 0x74], esp
push eax
call fcn.0055a190
mov ecx, esi
call fcn.00558390
mov ecx, esi
call fcn.00558520
cmp ax, 5
jl 0x512b96
push ebx
mov ecx, esi
call fcn.00558380
cmp al, 0x80
jb 0x512b96
push 1
mov ecx, esi
call fcn.00558380
cmp al, 0xf1
jne 0x512b96
push 2
mov ecx, esi
call fcn.00558380
cmp al, 0x11
jne 0x512b96
push 3
mov ecx, esi
call fcn.00558380
cmp al, 0x7f
jne 0x512a67
push 4
mov ecx, esi
call fcn.00558380
push 3
lea ecx, [esp + 0x70]
mov bl, al
call fcn.00558380
cmp bl, al
jne 0x512a67
push 5
mov ecx, esi
call fcn.00558380
cmp al, 0x78
jne 0x5129ae
mov bl, 1
sub esp, 0x24
mov ecx, esp
mov dword [esp + 0x94], esp
push 0
push ecx
mov ecx, 0x619a20
call fcn.00553d20
lea ecx, [esp + 0x5c]
call fcn.00559e10
lea ecx, [esp + 0x38]
call fcn.0055a240
test ax, ax
jle 0x512994
push 0
lea ecx, [esp + 0x3c]
call fcn.0055a180
mov ecx, dword [eax + 4]
test ecx, ecx
je 0x512994
mov edx, dword [eax + 8]
sub edx, ecx
sar edx, 2
je 0x512994
push 0
lea ecx, [esp + 0x3c]
call fcn.0055a180
mov ecx, dword [eax + 4]
call fcn.00558520
cmp ax, 5
jl 0x512994
push 0
push 0
lea ecx, [esp + 0x40]
call fcn.0055a180
mov ecx, eax
call fcn.00402a80
push ecx
mov ecx, esp
mov dword [esp + 0x74], esp
push eax
call fcn.00558070
mov ecx, esi
call fcn.00558390
push 4
mov ecx, esi
call fcn.00558380
cmp al, 0x7f
jne 0x512b3a
push 6
mov ecx, esi
call fcn.00558380
cmp al, 0x78
jne 0x512b3a
mov al, bl
inc bl
cmp al, 5
jb 0x5128e5
cmp bl, 5
jb 0x512a67
jmp 0x512aa7
push 6
push 0x60e7a8
lea ecx, [esp + 0x78]
call fcn.00558100
xor bl, bl
mov byte [esp + 0x64], 5
mov byte [esp + 0x18], 0x11
mov byte [esp + 0x19], 0x12
mov byte [esp + 0x1a], 0x22
mov byte [esp + 0x1b], 0x31
mov byte [esp + 0x1c], 0x33
mov byte [esp + 0x1d], 0x35
mov byte [esp + 0x1e], 0x36
mov byte [esp + 0x1f], 0x37
mov byte [esp + 0x20], 0x42
mov byte [esp + 0x21], 0x43
mov byte [esp + 0x22], 0x72
mov byte [esp + 0x23], 0x75
mov byte [esp + 0x24], 0x79
mov byte [esp + 0x25], 0x80
mov byte [esp + 0xc], bl
push 5
mov ecx, esi
call fcn.00558380
mov ecx, dword [esp + 0xc]
and ecx, 0xff
cmp al, byte [esp + ecx + 0x18]
je 0x512a35
inc bl
cmp bl, 0xe
mov byte [esp + 0xc], bl
jb 0x512a0f
jmp 0x512a4f
push 5
mov ecx, esi
call fcn.00558380
push eax
push 5
lea ecx, [esp + 0x78]
call fcn.005584a0
cmp bl, 0xe
jb 0x512a5c
push 0
push 5
lea ecx, [esp + 0x78]
call fcn.005584a0
mov byte [esp + 0x64], 4
lea ecx, [esp + 0x70]
jmp 0x512aa2
push esi
lea ecx, [esp + 0xc]
call fcn.00558070
mov ecx, esi
mov byte [esp + 0x64], 6
call fcn.00558520
dec eax
mov ecx, esi
push eax
call fcn.00558380
lea edx, [esp + 8]
mov bl, al
push edx
call fcn.0053e3a0
add esp, 4
cmp al, bl
je 0x512adb
mov byte [esp + 0x64], 4
lea ecx, [esp + 8]
call fcn.005581a0
lea ecx, [esp + 0x10]
mov byte [esp + 0x64], 3
call fcn.005581a0
lea ecx, [esp + 0x38]
mov byte [esp + 0x64], 2
call fcn.00559d60
lea ecx, [esp + 0x28]
mov byte [esp + 0x64], 1
call fcn.00558a00
mov byte [esp + 0x64], 0
jmp 0x512bc4
push 0
lea ecx, [esp + 0x10]
call fcn.00558090
lea eax, [esp + 0xc]
lea ecx, [esp + 0x74]
push eax
mov byte [esp + 0x68], 7
call fcn.00558440
lea ecx, [esp + 0xc]
mov bl, al
mov byte [esp + 0x64], 6
call fcn.005581a0
test bl, bl
je 0x512b18
mov byte [esp + 0x64], 4
lea ecx, [esp + 8]
jmp 0x512b35
lea ecx, [esp + 0x74]
push ecx
mov ecx, esi
call fcn.00558440
test al, al
mov byte [esp + 0x64], 4
lea ecx, [esp + 8]
je 0x512aa2
call fcn.005581a0
lea ecx, [esp + 0x10]
mov byte [esp + 0x64], 3
call fcn.005581a0
lea ecx, [esp + 0x38]
mov byte [esp + 0x64], 2
call fcn.00559d60
lea ecx, [esp + 0x28]
mov byte [esp + 0x64], 1
call fcn.00558a00
lea ecx, [esp + 0x6c]
mov byte [esp + 0x64], 0
call fcn.005581a0
lea ecx, [esp + 0x74]
mov dword [esp + 0x64], 0xffffffff
call fcn.005581a0
mov al, 1
mov ecx, dword [esp + 0x5c]
mov dword fs:[0], ecx
pop esi
pop ebx
add esp, 0x60
ret
lea ecx, [esp + 0x10]
mov byte [esp + 0x64], 3
call fcn.005581a0
lea ecx, [esp + 0x38]
mov byte [esp + 0x64], 2
call fcn.00559d60
lea ecx, [esp + 0x28]
mov byte [esp + 0x64], 1
call fcn.00558a00
mov byte [esp + 0x64], bl
lea ecx, [esp + 0x6c]
call fcn.005581a0
lea ecx, [esp + 0x74]
mov dword [esp + 0x64], 0xffffffff
call fcn.005581a0
mov ecx, dword [esp + 0x5c]
pop esi
xor al, al
mov dword fs:[0], ecx
pop ebx
add esp, 0x60
ret