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

Disassembly:
mov eax, dword fs:[0]
push 0xffffffffffffffff
push 0x52f621
push eax
mov dword fs:[0], esp
sub esp, 0xb04
push ebx
push ebp
mov ebp, ecx
push esi
mov ecx, dword [0x659a38]
push edi
mov eax, dword [ebp + 0x148]
test eax, ecx
je 0x4159a8
push 1
push 0x23f2
call fcn.00487160
mov ecx, eax
call fcn.00483920
test eax, eax
je 0x4159d0
mov ecx, dword [0x659a38]
mov edx, dword [ebp + 0x148]
mov eax, dword [ebp]
or edx, ecx
mov dword [ebp + 0x148], edx
mov edx, dword [0x659a54]
test edx, eax
je 0x4159d0
mov ecx, ebp
call fcn.00415640
lea eax, [esp + 0xb4]
mov ecx, ebp
push eax
call fcn.00416310
mov ecx, 0xc
mov esi, eax
lea edi, [esp + 0x84]
rep movsd dword es:[edi], dword [esi]
lea ecx, [esp + 0x10]
push ecx
mov ecx, ebp
call fcn.00416190
mov edx, dword [eax]
mov ecx, dword [ebp]
mov dword [esp + 0x14], edx
mov eax, dword [esp + 0x16]
and eax, 0xffff
xor esi, esi
add eax, 0xf
mov dword [esp + 0x20], esi
cdq
and edx, 0xf
add eax, edx
sar eax, 4
shl eax, 4
mov word [esp + 0x16], ax
mov eax, dword [0x659a80]
test eax, ecx
je 0x415ca5
push 0x1000
call fcn.00470c30
mov ebx, eax
add esp, 4
mov ecx, 0x400
xor eax, eax
mov edi, ebx
lea edx, [esp + 0x114]
rep stosd dword es:[edi], eax
push 1
lea ecx, [ebp + 0x12c]
push edx
call fcn.004153c0
test eax, eax
je 0x415c2d
lea eax, [esp + 0x114]
push eax
call dword [sym.imp.MSVCRT.dll_localtime]
mov cx, word [eax]
add esp, 4
mov word [esp + 0x34], cx
mov dx, word [eax + 4]
mov word [esp + 0x36], dx
mov cx, word [eax + 8]
mov word [esp + 0x38], cx
mov dx, word [eax + 0xc]
mov word [esp + 0x3a], dx
mov cx, word [eax + 0x10]
inc cx
lea edi, [esp + 0xb5]
mov word [esp + 0x3c], cx
mov dx, word [eax + 0x14]
mov ecx, dword [esp + 0x118]
add dx, 0x76c
mov eax, 0x10624dd3
mov word [esp + 0x3e], dx
imul ecx
sar edx, 6
mov eax, edx
mov ecx, 0x17
shr eax, 0x1f
add edx, eax
xor eax, eax
mov byte [esp + 0xb4], 0
mov word [esp + 0x40], dx
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
stosb byte es:[edi], al
mov edi, dword [ebp + 0x14c]
lea ecx, [esp + 0x34]
inc edi
lea edx, [esp + 0xb4]
mov eax, edi
mov dword [ebp + 0x14c], edi
push eax
push ecx
push edx
lea ecx, [esp + 0x90]
call fcn.00439190
lea edi, [esp + 0xb4]
mov dword [esp + 0x10], 3
mov dword [esp + 0x1c], edi
test edi, edi
je 0x415b86
cmp byte [edi], 0
je 0x415b86
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov esi, edi
mov edx, ecx
mov edi, ebx
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
mov ecx, edx
dec edi
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov edi, 0x56c194
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov esi, edi
mov edx, ecx
mov edi, ebx
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
mov ecx, edx
dec edi
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov edi, dword [esp + 0x1c]
mov eax, dword [esp + 0x10]
add edi, 0x20
dec eax
mov dword [esp + 0x1c], edi
mov dword [esp + 0x10], eax
jne 0x415b2c
lea eax, [esp + 0x11c]
mov ecx, ebp
mov dword [esp + 0x10], eax
xor esi, esi
call fcn.004163e0
test eax, eax
jle 0x415be6
mov edi, ebx
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
mov edi, dword [esp + 0x10]
not ecx
dec ecx
add ecx, ebx
push ecx
push edi
push esi
mov ecx, ebp
call fcn.004165e0
push esi
mov ecx, ebp
call fcn.00416470
add edi, eax
mov ecx, ebp
mov dword [esp + 0x10], edi
inc esi
call fcn.004163e0
cmp esi, eax
jl 0x415bb0
mov edi, 0x56c40c
or ecx, 0xffffffff
xor eax, eax
push 1
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov esi, edi
mov edx, ecx
mov edi, ebx
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
mov ecx, edx
dec edi
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
lea eax, [esp + 0x118]
and ecx, 3
push eax
rep movsb byte es:[edi], byte [esi]
lea ecx, [ebp + 0x12c]
call fcn.004153c0
test eax, eax
jne 0x415a6b
mov edi, ebx
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
mov byte [ecx + ebx - 1], al
lea ecx, [esp + 0x54]
call fcn.004b2f80
lea ecx, [esp + 0x54]
push 0
push ecx
mov dword [esp + 0xb24], 0
mov dword [esp + 0x64], ebx
mov byte [esp + 0x68], 2
mov byte [esp + 0x6a], 0xa
mov byte [esp + 0x69], 0
call fcn.004b37a0
add esp, 8
test eax, eax
je 0x415c88
lea ecx, [esp + 0x54]
call fcn.004b2fd0
mov dword [esp + 0x20], 1
lea ecx, [esp + 0x54]
mov dword [esp + 0xb1c], 0xffffffff
call fcn.004b2fa0
mov eax, dword [esp + 0x20]
jmp 0x415fd0
lea edx, [esp + 0x114]
push 1
lea ecx, [ebp + 0x12c]
push edx
call fcn.004153c0
test eax, eax
je 0x415fce
mov esi, dword [esp + 0x14]
mov eax, dword [esp + 0x16]
and esi, 0xffff
and eax, 0xffff
imul esi, dword [0x659a28]
add esi, 7
sar esi, 3
imul esi, eax
push esi
call fcn.00470c30
mov ecx, esi
mov ebx, eax
mov edx, ecx
or eax, 0xffffffff
mov edi, ebx
add esp, 4
shr ecx, 2
rep stosd dword es:[edi], eax
mov ecx, edx
push 0
and ecx, 3
rep stosb byte es:[edi], al
mov eax, dword [0x659a28]
mov ecx, dword [esp + 0x1a]
mov edx, dword [esp + 0x18]
push eax
and ecx, 0xffff
push ebx
and edx, 0xffff
push ecx
push edx
lea ecx, [esp + 0x78]
call fcn.004a8230
mov ecx, ebp
mov dword [esp + 0xb1c], 1
call fcn.004163d0
lea edx, [esp + 0x114]
lea ecx, [esp + 0x64]
push edx
mov dword [eax + 0x1c], ecx
call dword [sym.imp.MSVCRT.dll_localtime]
mov cx, word [eax]
add esp, 4
mov word [esp + 0x44], cx
mov dx, word [eax + 4]
mov word [esp + 0x46], dx
mov cx, word [eax + 8]
mov word [esp + 0x48], cx
mov dx, word [eax + 0xc]
mov word [esp + 0x4a], dx
mov cx, word [eax + 0x10]
inc cx
push 0xffffffffffffffff
mov word [esp + 0x50], cx
mov dx, word [eax + 0x14]
mov ecx, dword [esp + 0x11c]
add dx, 0x76c
mov eax, 0x10624dd3
mov word [esp + 0x52], dx
imul ecx
sar edx, 6
mov eax, edx
lea ecx, [esp + 0x18]
shr eax, 0x1f
add edx, eax
push ecx
mov word [esp + 0x58], dx
lea edx, [esp + 0x5c]
push 0
push edx
lea ecx, [esp + 0x74]
call fcn.004a8cf0
push eax
mov ecx, ebp
call fcn.004163d0
push eax
lea ecx, [esp + 0x94]
call fcn.00439520
push 0
lea eax, [esp + 0x18]
lea esi, [ebp + 0x1c]
push eax
push esi
lea ecx, [esp + 0x40]
push 0
push ecx
lea ecx, [esp + 0x78]
call fcn.004a8cf0
push eax
mov ecx, ebp
call fcn.004163d0
push eax
lea ecx, [esp + 0x98]
call fcn.00439720
mov edx, dword [ebp + 0x14c]
mov ecx, ebp
inc edx
mov dword [ebp + 0x14c], edx
mov eax, edx
lea edx, [esp + 0x44]
push eax
push edx
push 0
lea eax, [esp + 0x20]
push 0
push eax
push esi
call fcn.004163d0
push eax
lea ecx, [esp + 0xa0]
call fcn.004391f0
lea ecx, [esp + 0x11c]
xor esi, esi
mov dword [esp + 0x1c], ecx
mov ecx, ebp
mov edi, eax
mov dword [esp + 0x10], esi
call fcn.004163e0
test eax, eax
jle 0x415ed1
mov eax, dword [esp + 0x1c]
lea edx, [esp + 0x14]
push edx
push 0
push 0
push edi
push eax
push esi
mov ecx, ebp
call fcn.00416530
push esi
mov ecx, ebp
mov edi, eax
call fcn.00416470
mov ecx, dword [esp + 0x1c]
add ecx, eax
mov eax, dword [esp + 0x84]
mov dword [esp + 0x1c], ecx
mov ecx, dword [0x659a38]
test ecx, eax
je 0x415ec1
mov esi, dword [esp + 0x16]
mov ecx, ebp
and esi, 0xffff
dec esi
call fcn.004163d0
movsx ecx, si
movsx edx, di
push ecx
push edx
push 0
push edx
mov ecx, eax
call fcn.00492360
mov esi, dword [esp + 0x10]
inc esi
mov ecx, ebp
mov dword [esp + 0x10], esi
call fcn.004163e0
cmp esi, eax
jl 0x415e5d
lea ecx, [esp + 0x24]
call fcn.004b2f80
mov edx, dword [esp + 0x16]
mov eax, dword [esp + 0x14]
and edx, 0xffff
and eax, 0xffff
push edx
push eax
push 0
push 0
lea ecx, [esp + 0x8c]
mov byte [esp + 0xb2c], 2
call fcn.004b4a60
mov ecx, dword [eax]
mov dword [esp + 0x24], ecx
mov ecx, ebp
mov edx, dword [eax + 4]
mov dword [esp + 0x2c], ebx
mov dword [esp + 0x28], edx
mov byte [esp + 0x30], 1
mov byte [esp + 0x32], 0xa
mov byte [esp + 0x31], 0
call fcn.00416180
test eax, eax
je 0x415f37
mov byte [esp + 0x30], 0xf
lea eax, [esp + 0x24]
push 0
push eax
call fcn.004b37a0
add esp, 8
test eax, eax
je 0x415fa3
lea ecx, [esp + 0x24]
call fcn.004b2fd0
lea ecx, [esp + 0x24]
mov dword [esp + 0x20], 1
mov byte [esp + 0xb1c], 1
call fcn.004b2fa0
lea ecx, [esp + 0x64]
mov dword [esp + 0xb1c], 0xffffffff
call fcn.004a8ce0
lea ecx, [esp + 0x114]
push 1
push ecx
lea ecx, [ebp + 0x12c]
call fcn.004153c0
test eax, eax
jne 0x415cc2
mov eax, dword [esp + 0x20]
jmp 0x415fd0
lea ecx, [esp + 0x24]
mov byte [esp + 0xb1c], 1
call fcn.004b2fa0
lea ecx, [esp + 0x64]
mov dword [esp + 0xb1c], 0xffffffff
call fcn.004a8ce0
mov eax, dword [esp + 0x20]
jmp 0x415fd0
mov eax, esi
mov ecx, dword [esp + 0xb14]
pop edi
pop esi
pop ebp
pop ebx
mov dword fs:[0], ecx
add esp, 0xb10
ret