Function at 0x59077440
Capabilities:
Check for time delay via queryperformancecounter

Disassembly:
mov eax, dword fs:[0]
push 0xffffffffffffffff
push 0x59157930
push eax
mov dword fs:[0], esp
sub esp, 0x30
push ebx
mov ebx, dword [esp + 0x44]
push ebp
push esi
test ebx, ebx
push edi
je 0x5907772c
mov ebp, dword [esp + 0x54]
test ebp, ebp
je 0x5907772c
mov eax, dword [esp + 0x5c]
test eax, eax
je 0x5907772c
mov eax, dword [esp + 0x60]
test eax, eax
je 0x5907772c
mov eax, dword [0x591ae1c8]
test eax, eax
je 0x590774ae
push str.IsEMailHtml_______
push str.Winncap
push 0xffffffffffffffff
push 0x591ae15c
call fcn.590851e0
add esp, 0x10
mov esi, dword [esp + 0x58]
test esi, esi
jle 0x590780e9
push 5
push 0x5918db08
push ebp
call fcn.590966e0
add esp, 0xc
test eax, eax
je 0x59077520
mov eax, dword [ebx + 0x1c]
test eax, eax
je 0x590774e9
push 5
push 0x5918db08
push eax
call fcn.590966e0
add esp, 0xc
test eax, eax
je 0x59077520
push 4
push str.PUT
push ebp
call fcn.590966e0
add esp, 0xc
test eax, eax
je 0x59077520
mov eax, dword [ebx + 0x1c]
test eax, eax
je 0x5907772c
push 4
push str.PUT
push eax
call fcn.590966e0
add esp, 0xc
test eax, eax
jne 0x5907772c
mov edi, 0x5918a2d4
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
push ecx
push 0x5918a2d4
push esi
push ebp
call fcn.59071fc0
add esp, 0x10
cmp eax, 0xffffffff
jne 0x5907762c
push esi
lea eax, [ebx + 0x14]
push ebp
push eax
call fcn.59072b30
add esp, 0xc
cmp eax, 1
mov dword [esp + 0x58], eax
jne 0x5907772e
push eax
push 0x591af0e0
lea ecx, [esp + 0x1c]
call fcn.590b5cc0
mov ebp, dword [0x591af104]
xor edx, edx
or edi, 0xffffffff
cmp ebp, edx
mov dword [esp + 0x48], edx
jle 0x590775b8
mov ecx, dword [0x591af100]
mov eax, dword [ebx + 0x24]
mov esi, dword [ecx]
cmp esi, eax
jne 0x590775ac
mov eax, dword [esp + 0x60]
mov esi, dword [ecx + 8]
mov eax, dword [eax]
add eax, 0x10
cmp esi, dword [eax]
jne 0x590775ac
mov esi, dword [ecx + 0xc]
cmp esi, dword [eax + 4]
je 0x590775b6
inc edx
add ecx, 0x20
cmp edx, ebp
jl 0x5907758b
jmp 0x590775b8
mov edi, edx
mov esi, dword [esp + 0x60]
mov ecx, dword [esi]
add ecx, 0x10
push ecx
call dword [sym.imp.KERNEL32.dll_QueryPerformanceCounter]
cmp edi, 0xffffffff
je 0x590775fb
mov edx, dword [esi]
mov esi, dword [0x591af100]
shl edi, 5
mov ecx, dword [edx + 0x10]
mov eax, edi
mov dword [eax + esi + 8], ecx
mov ecx, dword [0x591af100]
mov edx, dword [edx + 0x14]
mov dword [eax + ecx + 0xc], edx
mov ecx, dword [0x591af100]
mov edx, dword [ebx + 0x1c]
mov dword [eax + ecx + 0x18], edx
lea ecx, [esp + 0x14]
call fcn.590b5d70
lea ecx, [esp + 0x14]
mov dword [esp + 0x48], 0xffffffff
call fcn.590b5d20
mov eax, dword [esp + 0x58]
pop edi
pop esi
pop ebp
pop ebx
mov ecx, dword [esp + 0x30]
mov dword fs:[0], ecx
add esp, 0x3c
ret
mov eax, dword [ebx + 0x1c]
mov edi, dword [esp + 0x54]
mov ebp, dword [esp + 0x58]
xor esi, esi
test eax, eax
mov dword [esp + 0x50], edi
je 0x5907775a
mov edx, ebp
mov ecx, edi
lea eax, [ebx + 0x14]
push edx
push ecx
push eax
call fcn.59072b30
add esp, 0xc
test eax, eax
je 0x5907772c
push 1
push 0x591af0e0
lea ecx, [esp + 0x1c]
call fcn.590b5cc0
mov ebp, dword [0x591af104]
or edi, 0xffffffff
xor edx, edx
mov dword [esp + 0x48], 1
test ebp, ebp
jle 0x590776b9
mov ecx, dword [0x591af100]
mov eax, dword [ebx + 0x24]
mov esi, dword [ecx]
cmp esi, eax
jne 0x590776ad
mov eax, dword [esp + 0x60]
mov esi, dword [ecx + 8]
mov eax, dword [eax]
add eax, 0x10
cmp esi, dword [eax]
jne 0x590776ad
mov esi, dword [ecx + 0xc]
cmp esi, dword [eax + 4]
je 0x590776b7
inc edx
add ecx, 0x20
cmp edx, ebp
jl 0x5907768c
jmp 0x590776b9
mov edi, edx
mov esi, dword [esp + 0x60]
mov ecx, dword [esi]
add ecx, 0x10
push ecx
call dword [sym.imp.KERNEL32.dll_QueryPerformanceCounter]
cmp edi, 0xffffffff
je 0x590776fc
mov edx, dword [esi]
mov esi, dword [0x591af100]
shl edi, 5
mov ecx, dword [edx + 0x10]
mov eax, edi
mov dword [eax + esi + 8], ecx
mov ecx, dword [0x591af100]
mov edx, dword [edx + 0x14]
mov dword [eax + ecx + 0xc], edx
mov ecx, dword [0x591af100]
mov edx, dword [ebx + 0x1c]
mov dword [eax + ecx + 0x18], edx
lea ecx, [esp + 0x14]
call fcn.590b5d70
lea ebp, [ebx + 0x14]
push ebp
call fcn.59072e30
mov edi, eax
add esp, 4
test edi, edi
mov dword [esp + 0x50], edi
jne 0x59077741
lea ecx, [esp + 0x14]
mov dword [esp + 0x48], 0xffffffff
call fcn.590b5d20
xor eax, eax
pop edi
pop esi
pop ebp
pop ebx
mov ecx, dword [esp + 0x30]
mov dword fs:[0], ecx
add esp, 0x3c
ret
mov ebp, dword [ebp]
lea ecx, [esp + 0x14]
mov esi, 1
mov dword [esp + 0x48], 0xffffffff
call fcn.590b5d20
push ebp
push edi
call fcn.59072ff0
add esp, 8
test eax, eax
jne 0x5907772c
push ebp
push edi
push ebx
call fcn.590765e0
add esp, 0xc
test eax, eax
jne 0x59077b96
push ebp
push edi
push ebx
call fcn.59076570
add esp, 0xc
test eax, eax
jne 0x59077b96
push ebp
push edi
push ebx
call fcn.590773a0
add esp, 0xc
test eax, eax
jne 0x59077b96
push ebp
push edi
push ebx
call fcn.59073860
add esp, 0xc
test eax, eax
jne 0x59077b96
push ebp
push edi
push ebx
call fcn.590738d0
add esp, 0xc
test eax, eax
jne 0x59077b96
push ebp
push edi
push ebx
call fcn.59073a20
add esp, 0xc
test eax, eax
jne 0x59077b96
push ebp
push edi
push ebx
call fcn.59073a80
add esp, 0xc
test eax, eax
jne 0x59077b96
push ebp
push edi
push ebx
call fcn.59075e60
add esp, 0xc
test eax, eax
jne 0x59077b96
push ebp
push edi
push ebx
call fcn.59075ea0
add esp, 0xc
test eax, eax
jne 0x59077b96
push ebp
push edi
push ebx
call fcn.59074090
add esp, 0xc
test eax, eax
jne 0x59077b96
push ebp
push edi
push ebx
call fcn.59075f00
add esp, 0xc
test eax, eax
jne 0x59077b96
push ebp
push edi
push ebx
call fcn.59074150
add esp, 0xc
test eax, eax
jne 0x59077b96
push ebp
push edi
push ebx
call fcn.59074360
add esp, 0xc
test eax, eax
jne 0x59077b96
push ebp
push edi
push ebx
call fcn.590744d0
add esp, 0xc
test eax, eax
jne 0x59077b96
push ebp
push edi
push ebx
call fcn.59074610
add esp, 0xc
test eax, eax
jne 0x59077b96
push ebp
push edi
push ebx
call fcn.59074780
add esp, 0xc
test eax, eax
jne 0x59077b96
push ebp
push edi
push ebx
call fcn.590747e0
add esp, 0xc
test eax, eax
jne 0x59077b96
push ebp
push edi
push ebx
call fcn.590751d0
add esp, 0xc
test eax, eax
jne 0x59077b96
push ebp
push edi
push ebx
call fcn.59075610
add esp, 0xc
test eax, eax
jne 0x59077b96
push ebp
push edi
push ebx
call fcn.59075f40
add esp, 0xc
test eax, eax
jne 0x59077b96
push ebp
push edi
push ebx
call fcn.59075fa0
add esp, 0xc
test eax, eax
jne 0x59077b96
push ebp
push edi
push ebx
call fcn.59075840
add esp, 0xc
test eax, eax
jne 0x59077b96
push ebp
push edi
push ebx
call fcn.590756e0
add esp, 0xc
test eax, eax
jne 0x59077b96
push ebp
push edi
push ebx
call fcn.59075a90
add esp, 0xc
test eax, eax
jne 0x59077b96
push ebp
push edi
push ebx
call fcn.59075c00
add esp, 0xc
test eax, eax
jne 0x59077b96
push ebp
push edi
push ebx
call fcn.59074e20
add esp, 0xc
test eax, eax
jne 0x59077b96
push ebp
push edi
push ebx
call fcn.59074f00
add esp, 0xc
test eax, eax
jne 0x59077b96
push ebp
push edi
push ebx
call fcn.59074f70
add esp, 0xc
test eax, eax
jne 0x59077b96
push ebp
push edi
push ebx
call fcn.59075680
add esp, 0xc
test eax, eax
jne 0x59077b96
push ebp
push edi
push ebx
call fcn.59075110
add esp, 0xc
test eax, eax
jne 0x59077b96
push ebp
push edi
push ebx
call fcn.59075020
add esp, 0xc
test eax, eax
jne 0x59077b96
push ebp
push edi
push ebx
call fcn.59074840
add esp, 0xc
test eax, eax
jne 0x59077b96
push ebp
push edi
push ebx
call fcn.59074920
add esp, 0xc
test eax, eax
jne 0x59077b96
push ebp
push edi
push ebx
call fcn.59074980
add esp, 0xc
test eax, eax
jne 0x59077b96
push ebp
push edi
push ebx
call fcn.590749e0
add esp, 0xc
test eax, eax
jne 0x59077b96
push ebp
push edi
push ebx
call fcn.59074e90
add esp, 0xc
test eax, eax
jne 0x59077b96
push ebp
push edi
push ebx
call fcn.59076040
add esp, 0xc
test eax, eax
jne 0x59077b96
push ebp
push edi
push ebx
call fcn.59073ce0
add esp, 0xc
test eax, eax
jne 0x59077b96
push ebp
push edi
push ebx
call fcn.59076080
add esp, 0xc
test eax, eax
jne 0x59077b96
push ebp
push edi
push ebx
call fcn.59076210
add esp, 0xc
test eax, eax
jne 0x59077b96
push ebp
push edi
push ebx
call fcn.59074dc0
add esp, 0xc
test eax, eax
jne 0x59077b96
push ebp
push edi
push ebx
call fcn.59076350
add esp, 0xc
test eax, eax
jne 0x59077b96
push ebp
push edi
push ebx
call fcn.59076390
add esp, 0xc
test eax, eax
jne 0x59077b96
push ebp
push edi
push ebx
call fcn.59076400
add esp, 0xc
test eax, eax
jne 0x59077b96
push ebp
push edi
push ebx
call fcn.59076470
add esp, 0xc
test eax, eax
jne 0x59077b96
push ebp
push edi
push ebx
call fcn.59076500
add esp, 0xc
test eax, eax
jne 0x59077b96
push ebp
push edi
push ebx
call fcn.59074a40
add esp, 0xc
test eax, eax
jne 0x59077b96
push ebp
push edi
push ebx
call fcn.59074ab0
add esp, 0xc
test eax, eax
jne 0x59077b96
push ebp
push edi
push ebx
call fcn.59075390
add esp, 0xc
test eax, eax
jne 0x59077b96
push ebp
push edi
push ebx
call fcn.59074d50
add esp, 0xc
test eax, eax
jne 0x59077b96
push ebp
push edi
push ebx
call fcn.590769c0
add esp, 0xc
test eax, eax
jne 0x59077b96
push ebp
push edi
push ebx
call fcn.59073ae0
add esp, 0xc
test eax, eax
jne 0x59077b96
push ebp
push edi
push ebx
call fcn.59076a70
add esp, 0xc
test eax, eax
jne 0x59077b96
push ebp
push edi
push ebx
call fcn.59076b20
add esp, 0xc
test eax, eax
jne 0x59077b96
push ebp
push edi
push ebx
call fcn.59076e80
add esp, 0xc
test eax, eax
jne 0x59077b96
push ebp
push edi
push ebx
call fcn.59076bd0
add esp, 0xc
test eax, eax
jne 0x59077b96
push ebp
push edi
push ebx
call fcn.59076d10
add esp, 0xc
test eax, eax
jne 0x59077b96
push ebp
push edi
push ebx
call fcn.59076650
add esp, 0xc
test eax, eax
je 0x5907772c
test esi, esi
jne 0x59077e63
mov edx, dword [esp + 0x58]
mov ecx, dword [esp + 0x54]
lea eax, [ebx + 0x14]
push edx
push ecx
push eax
call fcn.59072b30
add esp, 0xc
cmp eax, 1
mov dword [esp + 0x54], eax
jne 0x59077e4c
mov esi, dword [esp + 0x60]
mov edx, dword [esi]
add edx, 0x10
push edx
call dword [sym.imp.KERNEL32.dll_QueryPerformanceCounter]
mov eax, dword [esi]
mov esi, dword [ebx + 0x1c]
mov ecx, dword [ebx + 0x24]
mov dword [esp + 0x38], esi
mov edx, dword [eax + 0x10]
mov edi, dword [eax + 0x14]
mov ebp, dword [eax + 8]
mov eax, dword [eax + 0xc]
xor esi, esi
mov dword [esp + 0x20], ecx
cmp dword [0x591ae1c8], esi
mov dword [esp + 0x28], edx
mov dword [esp + 0x2c], edi
mov dword [esp + 0x30], ebp
mov dword [esp + 0x34], eax
je 0x59077c25
push eax
push ebp
push edi
push edx
push ecx
push str.IsEMailHtml_g_arrTypeAndTime.Add__Type:_04x__Time:_I64u__TimeBegin:_I64u_
push str.winncap
push 0xffffffffffffffff
push 0x591ae15c
call fcn.590851e0
add esp, 0x24
push 1
push 0x591af0e0
lea ecx, [esp + 0x1c]
call fcn.590b5cc0
mov eax, dword [0x591af104]
mov dword [esp + 0x48], 2
mov ebp, eax
cmp ebp, eax
mov dword [esp + 0x10], ebp
jl 0x59077db1
inc ebp
cmp ebp, esi
jne 0x59077c7e
mov eax, dword [0x591af100]
cmp eax, esi
je 0x59077c6d
push eax
call fcn.5913e209
add esp, 4
mov dword [0x591af100], esi
mov dword [0x591af108], esi
mov dword [0x591af104], esi
jmp 0x59077db1
mov edx, dword [0x591af100]
cmp edx, esi
jne 0x59077cc1
mov esi, ebp
shl esi, 5
push esi
call fcn.5913e1e0
mov ecx, esi
mov edi, eax
mov edx, ecx
xor eax, eax
shr ecx, 2
mov dword [0x591af100], edi
add esp, 4
rep stosd dword es:[edi], eax
mov ecx, edx
and ecx, 3
rep stosb byte es:[edi], al
mov dword [0x591af108], ebp
mov dword [0x591af104], ebp
jmp 0x59077db1
mov esi, dword [0x591af108]
cmp ebp, esi
jg 0x59077cf8
cmp ebp, eax
jle 0x59077ced
mov ecx, ebp
sub ecx, eax
shl eax, 5
shl ecx, 5
add eax, edx
mov edx, ecx
mov edi, eax
xor eax, eax
shr ecx, 2
rep stosd dword es:[edi], eax
mov ecx, edx
and ecx, 3
rep stosb byte es:[edi], al
mov dword [0x591af104], ebp
jmp 0x59077db1
mov ecx, dword [0x591af10c]
test ecx, ecx
jne 0x59077d26
cdq
and edx, 7
add eax, edx
mov ecx, eax
sar ecx, 3
cmp ecx, 4
jge 0x59077d19
mov ecx, 4
jmp 0x59077d26
cmp ecx, 0x400
jle 0x59077d26
mov ecx, 0x400
lea eax, [ecx + esi]
cmp ebp, eax
mov dword [esp + 0x58], eax
jl 0x59077d35
mov dword [esp + 0x58], ebp
mov eax, dword [esp + 0x58]
shl eax, 5
push eax
call fcn.5913e1e0
mov ecx, dword [0x591af104]
mov esi, dword [0x591af100]
shl ecx, 5
mov edx, ecx
mov edi, eax
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
mov dword [esp + 0x54], eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov edx, dword [0x591af104]
mov ecx, ebp
sub ecx, edx
shl edx, 5
add edx, eax
xor eax, eax
shl ecx, 5
mov edi, edx
mov edx, ecx
shr ecx, 2
rep stosd dword es:[edi], eax
mov ecx, edx
and ecx, 3
rep stosb byte es:[edi], al
mov eax, dword [0x591af100]
push eax
call fcn.5913e209
mov ecx, dword [esp + 0x58]
mov edx, dword [esp + 0x60]
add esp, 8
mov dword [0x591af100], ecx
mov dword [0x591af104], ebp
mov dword [0x591af108], edx
mov edi, dword [esp + 0x10]
mov esi, dword [0x591af100]
shl edi, 5
add edi, esi
mov ecx, 8
lea esi, [esp + 0x20]
rep movsd dword es:[edi], dword [esi]
lea ecx, [esp + 0x14]
mov dword [esp + 0x48], 0xffffffff
call fcn.590b5d20
lea edi, [ebx + 0x14]
push edi
call fcn.59072e30
mov esi, eax
add esp, 4
test esi, esi
je 0x5907772c
mov edi, dword [edi]
push edi
push esi
mov dword [esp + 0x60], edi
call fcn.59072550
add esp, 8
test eax, eax
je 0x59077e4c
mov eax, dword [ebx + 0x24]
mov edi, dword [esp + 0x60]
mov ebp, dword [esp + 0x5c]
push 1
push eax
push 3
push edi
push ebp
call fcn.590787f0
add esp, 0x14
mov dword [esp + 0x54], eax
test eax, eax
jne 0x59077e45
mov ecx, dword [ebx + 0x24]
mov edx, dword [esp + 0x58]
push edi
push 1
push eax
push ecx
push 3
push edx
push esi
push ebp
call fcn.590725e0
add esp, 0x20
mov dword [esp + 0x54], eax
mov dword [ebx + 0x28], 1
mov eax, dword [esp + 0x54]
pop edi
pop esi
pop ebp
pop ebx
mov ecx, dword [esp + 0x30]
mov dword fs:[0], ecx
add esp, 0x3c
ret
mov eax, dword [esp + 0x60]
mov ecx, dword [ebx + 0x24]
mov dword [esp + 0x20], ecx
mov eax, dword [eax]
mov edx, dword [eax + 0x10]
mov edi, dword [eax + 0x14]
mov esi, dword [eax + 8]
mov eax, dword [eax + 0xc]
mov dword [esp + 0x34], eax
mov eax, dword [ebx + 0x1c]
mov dword [esp + 0x38], eax
mov eax, dword [0x591ae1c8]
test eax, eax
mov dword [esp + 0x28], edx
mov dword [esp + 0x2c], edi
mov dword [esp + 0x30], esi
je 0x59077ebe
mov eax, dword [esp + 0x34]
push eax
push esi
push edi
push edx
push ecx
push str.IsEMailHtml_g_arrTypeAndTime.Add_222__Type:_04x__Time:_I64u__TimeBegin:_lu_
push str.winncap
push 0xffffffffffffffff
push 0x591ae15c
call fcn.590851e0
add esp, 0x24
push 1
push 0x591af0e0
lea ecx, [esp + 0x1c]
call fcn.590b5cc0
mov edx, dword [0x591af104]
mov dword [esp + 0x48], 3
cmp edx, edx
mov dword [esp + 0x54], edx
jl 0x5907804d
mov eax, dword [0x591af100]
lea esi, [edx + 1]
xor edi, edi
cmp esi, edi
jne 0x59077f1a
cmp eax, edi
je 0x59077f09
push eax
call fcn.5913e209
add esp, 4
mov dword [0x591af100], edi
mov dword [0x591af108], edi
mov dword [0x591af104], edi
jmp 0x5907804d
cmp eax, edi
jne 0x59077f59
mov edi, esi
shl edi, 5
push edi
call fcn.5913e1e0
mov edx, eax
mov ecx, edi
mov dword [0x591af100], edx
mov edi, edx
mov edx, ecx
xor eax, eax
shr ecx, 2
rep stosd dword es:[edi], eax
mov ecx, edx
add esp, 4
and ecx, 3
rep stosb byte es:[edi], al
mov dword [0x591af108], esi
mov dword [0x591af104], esi
jmp 0x5907804d
mov ecx, dword [0x591af108]
cmp esi, ecx
jg 0x59077f90
cmp esi, edx
jle 0x59077f85
mov ecx, esi
sub ecx, edx
shl edx, 5
add edx, eax
xor eax, eax
shl ecx, 5
mov edi, edx
mov edx, ecx
shr ecx, 2
rep stosd dword es:[edi], eax
mov ecx, edx
and ecx, 3
rep stosb byte es:[edi], al
mov dword [0x591af104], esi
jmp 0x5907804d
mov eax, dword [0x591af10c]
cmp eax, edi
jne 0x59077fbc
mov eax, edx
cdq
and edx, 7
add eax, edx
sar eax, 3
cmp eax, 4
jge 0x59077fb0
mov eax, 4
jmp 0x59077fbc
cmp eax, 0x400
jle 0x59077fbc
mov eax, 0x400
add eax, ecx
cmp esi, eax
mov dword [esp + 0x58], eax
jl 0x59077fca
mov dword [esp + 0x58], esi
mov eax, dword [esp + 0x58]
shl eax, 5
push eax
call fcn.5913e1e0
mov ecx, dword [0x591af104]
mov esi, dword [0x591af100]
shl ecx, 5
mov edx, ecx
mov edi, eax
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
mov dword [esp + 0x14], eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov ecx, dword [esp + 0x58]
mov edx, dword [0x591af104]
lea esi, [ecx + 1]
mov ecx, esi
sub ecx, edx
shl edx, 5
add edx, eax
xor eax, eax
shl ecx, 5
mov edi, edx
mov edx, ecx
shr ecx, 2
rep stosd dword es:[edi], eax
mov ecx, edx
and ecx, 3
rep stosb byte es:[edi], al
mov eax, dword [0x591af100]
push eax
call fcn.5913e209
mov ecx, dword [esp + 0x18]
mov edx, dword [esp + 0x60]
add esp, 8
mov dword [0x591af100], ecx
mov dword [0x591af104], esi
mov dword [0x591af108], edx
mov edi, dword [esp + 0x54]
mov ecx, dword [0x591af100]
mov eax, dword [esp + 0x50]
lea esi, [esp + 0x20]
shl edi, 5
add edi, ecx
mov ecx, 8
rep movsd dword es:[edi], dword [esi]
push ebp
push eax
mov esi, 1
call fcn.59072550
add esp, 8
test eax, eax
je 0x590780c3
mov ecx, dword [ebx + 0x24]
mov edi, dword [esp + 0x60]
mov edx, dword [esp + 0x5c]
push esi
push ecx
push 3
push edi
push edx
call fcn.590787f0
mov esi, eax
add esp, 0x14
test esi, esi
jne 0x590780bc
mov ecx, dword [esp + 0x50]
mov edx, dword [esp + 0x5c]
push edi
push 1
push eax
mov eax, dword [ebx + 0x24]
push eax
push 3
push ebp
push ecx
push edx
call fcn.590725e0
add esp, 0x20
mov esi, eax
mov dword [ebx + 0x28], 1
lea ecx, [esp + 0x14]
mov dword [esp + 0x48], 0xffffffff
call fcn.590b5d20
mov eax, esi
pop edi
pop esi
pop ebp
pop ebx
mov ecx, dword [esp + 0x30]
mov dword fs:[0], ecx
add esp, 0x3c
ret
mov ecx, dword [esp + 0x40]
pop edi
pop esi
pop ebp
mov eax, 1
pop ebx
mov dword fs:[0], ecx
add esp, 0x3c
ret