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

Disassembly:
push 0xffffffffffffffff
push 0x780659b
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0xbc
mov eax, dword [0x781c62c]
push ebx
push ebp
push esi
push edi
xor ebx, ebx
push 0x781eff0
mov dword [esp + 0xcc], eax
mov dword [esp + 0x38], ebx
call fcn.077b01c0
test eax, eax
je 0x77c8193
push ebx
lea eax, [esp + 0x24]
push eax
push 0x781eff0
call fcn.077b0320
push eax
push 0x781eff0
call fcn.077afe40
mov edi, eax
cmp edi, ebx
je 0x77c8193
xor ecx, ecx
mov dword [esp + 0x52], ecx
mov dword [esp + 0x56], ecx
mov dword [esp + 0x5a], ecx
mov dword [esp + 0x5e], ecx
mov dword [esp + 0x62], ecx
mov dword [esp + 0x66], ecx
push 0x14
mov dword [esp + 0x6e], ecx
lea edx, [esp + 0x54]
push edx
mov dword [esp + 0x76], ecx
push edi
mov dword [esp + 0x7e], ecx
push 0x781eff0
mov word [esp + 0x60], bx
mov word [esp + 0x86], cx
call fcn.077b6b00
lea eax, [esp + 0x50]
push 0x780a9a8
push eax
call fcn.077ec17f
add esp, 8
test eax, eax
je 0x77c8143
push 0xf
push 0x781eff0
call fcn.077affd0
test eax, eax
jne 0x77c8193
push edi
push 0x781eff0
call fcn.077afa70
test eax, eax
jne 0x77c8175
cmp dword [0x781effc], ebx
je 0x77c8175
push 0x64
push 0x781eff0
call fcn.077ac5b0
push edi
push 0x781eff0
call fcn.077afa70
test eax, eax
je 0x77c8152
mov ecx, dword [esp + 0x20]
push ecx
push 0x781eff0
call fcn.077b6730
push 0x7d0
push 0x781eff0
call fcn.077ac5b0
push 0x781eff0
call fcn.077b0270
test eax, eax
mov esi, dword [0x7808358]
je 0x77c8291
push ebx
lea edx, [esp + 0x24]
push edx
push 0x781eff0
call fcn.077b0270
push eax
push 0x781eff0
call fcn.077afe40
mov edi, eax
cmp edi, ebx
je 0x77c8291
push edi
push 0x781eff0
call fcn.077afa70
test eax, eax
jne 0x77c8203
nop
cmp dword [0x781effc], ebx
je 0x77c8203
push 0x64
push 0x781eff0
call fcn.077ac5b0
push edi
push 0x781eff0
call fcn.077afa70
test eax, eax
je 0x77c81e0
mov eax, dword [esp + 0x20]
push eax
push 0x781eff0
call fcn.077b6730
call esi
push 0x781eff0
mov edi, eax
call fcn.077b0270
test eax, eax
je 0x77c8251
cmp dword [0x781fe1c], ebx
jne 0x77c8251
call esi
sub eax, edi
cmp eax, 0xbb8
jae 0x77c8251
push 0x64
push 0x781eff0
call fcn.077ac5b0
push 0x781eff0
call fcn.077b0270
test eax, eax
jne 0x77c8224
push 0x781eff0
call fcn.077b0000
test eax, eax
je 0x77c8282
nop
cmp dword [0x781fe1c], ebx
jne 0x77c8282
push 0x64
push 0x781eff0
call fcn.077ac5b0
push 0x781eff0
call fcn.077b0000
test eax, eax
jne 0x77c8260
push 0x3e8
push 0x781eff0
call fcn.077ac5b0
call fcn.077c1880
fild dword [esp + 0xec]
mov ebp, dword [esp + 0xe8]
mov edi, dword [esp + 0xe4]
mov ebx, dword [esp + 0xe0]
fstp dword [esp + 0x10]
mov ecx, dword [esp + 0x10]
push 0
push ecx
push ebp
push edi
push ebx
call fcn.077be320
push 0x781eff0
call fcn.077b54a0
test eax, eax
je 0x77c8d4e
push 0
push 0x781eff0
call fcn.077ad430
test eax, eax
je 0x77c8d4e
mov eax, dword [0x781effc]
test eax, eax
je 0x77c8d4e
push 0x781eff0
call fcn.077b0bf0
test eax, eax
jne 0x77c8d4e
call fcn.077c11d0
push 0x781eff0
call fcn.077b54a0
test eax, eax
je 0x77c8d4e
push 0
push 0x781eff0
call fcn.077ad430
test eax, eax
je 0x77c8d4e
mov eax, dword [0x781effc]
test eax, eax
je 0x77c8d4e
push 0x781eff0
call fcn.077b0bf0
test eax, eax
jne 0x77c8d4e
call fcn.077be740
call fcn.077bee90
mov eax, dword [0x781f110]
test eax, eax
je 0x77c8391
call esi
sub eax, dword [0x781f114]
cmp eax, 0xbb8
jbe 0x77c8391
push 0x781eff0
call fcn.077b4e20
push 0x781eff0
call fcn.077ba210
call esi
mov dword [0x781f114], eax
push 0x781eff0
call fcn.077b54a0
test eax, eax
je 0x77c8d4e
push 0
push 0x781eff0
call fcn.077ad430
test eax, eax
je 0x77c8d4e
mov eax, dword [0x781effc]
test eax, eax
je 0x77c8d4e
push 0x781eff0
call fcn.077b0bf0
test eax, eax
jne 0x77c8d4e
mov edx, dword [esp + 0xec]
push edx
push ebp
push edi
push ebx
call fcn.077a50a0
push 0x781eff0
call fcn.077b54a0
test eax, eax
je 0x77c8d4e
push 0
push 0x781eff0
call fcn.077ad430
test eax, eax
je 0x77c8d4e
mov eax, dword [0x781effc]
test eax, eax
je 0x77c8d4e
push 0x781eff0
call fcn.077b0bf0
test eax, eax
jne 0x77c8d4e
mov eax, dword [0x781f0ac]
test eax, eax
je 0x77c84ac
mov eax, dword [0x781f0b0]
test eax, eax
je 0x77c844f
push 0x781eff0
call fcn.077ad320
test eax, eax
je 0x77c84ac
push 0x780bbdc
push 0x781eff0
call fcn.077bcc40
push eax
push 0x781eff0
call fcn.077bc450
test eax, eax
je 0x77c8474
push 0x780bbdc
jmp 0x77c8497
push 0x780bbd4
push 0x781eff0
call fcn.077bcc40
push eax
push 0x781eff0
call fcn.077bc450
test eax, eax
je 0x77c84ac
push 0x780bbd4
push 0x781eff0
call fcn.077bcc40
push eax
push 0x781eff0
call fcn.077bc930
push 1
push ebp
push edi
push ebx
push 0x781eff0
call fcn.077b75f0
fcomp dword [esp + 0x10]
fnstsw ax
test ah, 0x41
jne 0x77c8571
push 0x781eff0
call fcn.077b5fd0
test eax, eax
je 0x77c84e5
push 0
push 0x1f4
push ebp
jmp 0x77c8565
push 0x781eff0
call fcn.077b2c70
cmp eax, 0xd0
je 0x77c855c
push 0x781eff0
call fcn.077b2c70
cmp eax, 0xd1
je 0x77c855c
push 0x781eff0
call fcn.077b2c70
cmp eax, 0xd2
je 0x77c855c
push 0x781eff0
call fcn.077b2c70
cmp eax, 0xdd
je 0x77c855c
push 0x781eff0
call fcn.077b2c70
cmp eax, 0xde
je 0x77c855c
push 0x781eff0
call fcn.077b2c70
cmp eax, 0xe0
je 0x77c855c
push 0
push ebp
push edi
push ebx
push 0x781eff0
call fcn.077bb760
jmp 0x77c8571
push 0
push 0x1f4
push 0
push edi
push ebx
push 0x781eff0
call fcn.077b8190
push 0x781eff0
call fcn.077b54a0
test eax, eax
je 0x77c8d4e
push 0
push 0x781eff0
call fcn.077ad430
test eax, eax
je 0x77c8d4e
mov eax, dword [0x781effc]
test eax, eax
je 0x77c8d4e
push 0x781eff0
call fcn.077b0bf0
test eax, eax
jne 0x77c8d4e
mov esi, dword [esp + 0x10]
push esi
push ebp
push edi
push ebx
call fcn.077c1f80
push esi
push ebp
push edi
push ebx
call fcn.077be7a0
push esi
push ebp
push edi
push ebx
call fcn.077bef70
push 0x781eff0
call fcn.077b54a0
test eax, eax
je 0x77c8d4e
push 0
push 0x781eff0
call fcn.077ad430
test eax, eax
je 0x77c8d4e
mov eax, dword [0x781effc]
test eax, eax
je 0x77c8d4e
push 0x781eff0
call fcn.077b0bf0
test eax, eax
jne 0x77c8d4e
mov eax, dword [esp + 0xdc]
push eax
lea ecx, [esp + 0x24]
call fcn.077a4890
mov ecx, dword [esp + 0xec]
push ecx
push ebp
push edi
push ebx
push 0
push 1
push eax
push 0
push 0
mov dword [esp + 0xf8], 0
call fcn.077c4090
lea ecx, [esp + 0x20]
mov esi, eax
mov dword [esp + 0xd4], 0xffffffff
call fcn.077a2320
mov eax, dword [0x781f084]
test eax, eax
je 0x77c8710
test esi, esi
jne 0x77c8718
push 0x781eff0
call fcn.077b5fd0
test eax, eax
je 0x77c86bd
push 1
push ebp
push edi
push ebx
push 0x781eff0
call fcn.077b75f0
fcomp qword [0x780a800]
fnstsw ax
test ah, 0x41
jne 0x77c8d4e
push 0x781eff0
call fcn.077b00c0
test eax, eax
jne 0x77c8d4e
push ebp
jmp 0x77c86f0
push 0
push ebp
push edi
push ebx
push 0x781eff0
call fcn.077b75f0
fcomp qword [0x780a800]
fnstsw ax
test ah, 0x41
jne 0x77c8d4e
push 0x781eff0
call fcn.077b00c0
test eax, eax
jne 0x77c8d4e
push eax
push edi
push ebx
push 0x781eff0
call fcn.077b7d00
push 0xc8
push 0x781eff0
call fcn.077ac5b0
jmp 0x77c8d4e
test esi, esi
je 0x77c8d4e
push esi
push 0x781eff0
call fcn.077ac8f0
push edx
push eax
push 0x781eff0
call fcn.077b5720
push 0x781eff0
call fcn.077ad670
mov ecx, dword [0x781f0f8]
mov dword [esp + 0x40], eax
xor eax, eax
cmp ecx, eax
mov dword [esp + 0x44], edx
mov dword [esp + 0x24], eax
mov dword [esp + 0x2c], eax
mov dword [esp + 0x30], eax
mov dword [esp + 0x48], eax
mov dword [esp + 0x20], eax
mov dword [0x781f10c], 1
je 0x77c879a
mov eax, dword [esp + 0xf0]
test eax, eax
jne 0x77c879a
push 0x781eff0
call fcn.077b7990
test eax, eax
je 0x77c879a
push 0x781eff0
call fcn.077ad670
push edx
push eax
push 0x781eff0
call fcn.077b7ac0
lea edx, [esp + 0x48]
push edx
lea eax, [esp + 0x34]
push eax
push esi
push 0x781eff0
call fcn.077aea80
mov eax, dword [0x781effc]
test eax, eax
je 0x77c8cf3
lea esp, [esp]
push 0x781eff0
call fcn.077b54a0
test eax, eax
je 0x77c8d4e
push 0
push 0x781eff0
call fcn.077ad430
test eax, eax
je 0x77c8d4e
push 0x781eff0
call fcn.077ad670
or eax, edx
je 0x77c8cf3
push 0x781eff0
call fcn.077ad670
cmp eax, dword [esp + 0x40]
jne 0x77c8cf3
cmp edx, dword [esp + 0x44]
jne 0x77c8cf3
push 0x781eff0
call fcn.077ad670
xor eax, eax
and edx, 0x80000000
or eax, edx
je 0x77c8d4e
lea ecx, [esp + 0x34]
push ecx
push 0x781eff0
call fcn.077ada40
mov edx, dword [esp + 0x34]
push edx
push 0x781eff0
mov esi, eax
call fcn.077ad670
push edx
push eax
push esi
push 0x781eff0
call fcn.077af4b0
push eax
push 0x781eff0
mov dword [esp + 0x30], eax
call fcn.077ae950
test eax, eax
je 0x77c8d4e
mov esi, dword [esp + 0x10]
push 1
push esi
push ebp
push edi
push ebx
call fcn.077be320
push esi
push ebp
push edi
push ebx
call fcn.077bef70
mov eax, dword [esp + 0x24]
push eax
push 0x3b
mov ecx, 0x781f118
call fcn.077a39a0
mov esi, eax
cmp esi, 0xffffffff
jne 0x77c88c8
mov eax, dword [esp + 0x24]
test eax, eax
je 0x77c8d4e
push 0
push 0x3b
mov ecx, 0x781f118
mov dword [esp + 0x2c], 0
call fcn.077a39a0
mov esi, eax
mov eax, dword [esp + 0x24]
mov ecx, esi
sub ecx, eax
push ecx
push eax
lea edx, [esp + 0x54]
push edx
mov ecx, 0x781f118
call fcn.077a3d80
mov eax, dword [eax]
push eax
lea ecx, [esp + 0x7c]
push ecx
call fcn.077eb432
add esp, 8
lea ecx, [esp + 0x4c]
call fcn.077a2320
mov eax, dword [0x781f078]
test eax, eax
je 0x77c891d
mov eax, dword [esp + 0x24]
test eax, eax
jne 0x77c891d
mov eax, dword [esp + 0x20]
test eax, eax
je 0x77c891d
inc esi
mov dword [esp + 0x24], esi
jmp 0x77c8cda
mov edx, dword [esp + 0x28]
push edx
inc esi
push 0x781eff0
mov dword [esp + 0x2c], esi
call fcn.077ac8f0
xor eax, eax
and edx, 0x80000000
or eax, edx
je 0x77c895d
lea eax, [esp + 0x1c]
push eax
mov eax, dword [esp + 0x2c]
lea ecx, [esp + 0x18]
push ecx
lea edx, [esp + 0x20]
push edx
push eax
push 0x781eff0
call fcn.077af040
jmp 0x77c897b
lea ecx, [esp + 0x1c]
push ecx
mov ecx, dword [esp + 0x2c]
lea edx, [esp + 0x18]
push edx
lea eax, [esp + 0x20]
push eax
push ecx
push 0x781eff0
call fcn.077aef50
mov eax, dword [0x781fe84]
test eax, eax
je 0x77c89b6
mov ecx, 0x781fed8
call fcn.077ab580
push eax
push 0x781eff0
call fcn.077b9230
test eax, eax
je 0x77c89b6
mov ecx, 0x781fed8
call fcn.077ab580
push eax
push 0x781eff0
call fcn.077b6260
test eax, eax
jne 0x77c89ff
mov edx, dword [esp + 0x1c]
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x18]
push ebp
push edi
push ebx
push edx
push eax
push ecx
push 0x781eff0
call fcn.077b7740
fcomp dword [esp + 0x10]
fnstsw ax
test ah, 0x41
je 0x77c8cf3
push 1
push ebp
push edi
push ebx
push 0x781eff0
call fcn.077b75f0
fcomp dword [esp + 0x10]
fnstsw ax
test ah, 0x41
je 0x77c8cf3
call fcn.077bee90
mov ecx, dword [esp + 0x28]
lea edx, [esp + 0x38]
push edx
lea eax, [esp + 0x40]
push eax
push ecx
push 0x781eff0
call fcn.077aea80
mov ecx, dword [esp + 0xf0]
test ecx, ecx
mov esi, dword [esp + 0x3c]
je 0x77c8a46
mov eax, dword [esp + 0x38]
test eax, eax
je 0x77c8a46
mov eax, esi
imul eax, eax, 0x64
cdq
idiv dword [esp + 0x38]
cmp eax, ecx
jle 0x77c8d4e
mov eax, dword [esp + 0xf8]
test eax, eax
je 0x77c8a9d
mov eax, dword [esp + 0x30]
test eax, eax
je 0x77c8a99
cmp esi, eax
je 0x77c8a9d
mov eax, dword [esp + 0x28]
push eax
push 0x781eff0
call fcn.077aec40
push 0x781eff0
mov esi, eax
mov edi, edx
call fcn.077b0b20
cmp esi, eax
jne 0x77c8a86
cmp edi, edx
je 0x77c8d4e
push 0
push 0
push 0x781eff0
call fcn.077b5720
jmp 0x77c8d4e
mov dword [esp + 0x30], esi
mov eax, dword [esp + 0xf4]
test eax, eax
je 0x77c8ad7
mov edx, dword [esp + 0x1c]
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x18]
push 1
push edx
push eax
push ecx
push 0x781eff0
call fcn.077b75f0
fild dword [esp + 0xf4]
fcompp
fnstsw ax
test ah, 1
je 0x77c8d4e
mov eax, dword [0x781f0b4]
test eax, eax
je 0x77c8b64
cmp dword [esp + 0x2c], 4
jge 0x77c8b64
mov eax, dword [esp + 0x28]
push 0x14
lea edx, [esp + 0xa4]
push edx
push eax
push 0x781eff0
call fcn.077af1e0
lea ecx, [esp + 0xa0]
push 0x780b764
push ecx
call fcn.077ec17f
add esp, 8
test eax, eax
jne 0x77c8b3a
lea edx, [esp + 0xa0]
push 0x780b758
push edx
call fcn.077ec17f
add esp, 8
test eax, eax
je 0x77c8b64
mov eax, dword [esp + 0x10]
mov ecx, dword [0x781f13c]
push eax
push ebp
push edi
push ebx
push 0
push ecx
push 0x781eff0
call fcn.077bcc40
push eax
call fcn.077bf680
inc dword [esp + 0x2c]
jmp 0x77c8cda
mov eax, dword [0x781f090]
test eax, eax
je 0x77c8bba
mov edx, dword [esp + 0x1c]
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x18]
push 1
push edx
push eax
push ecx
push 0x781eff0
call fcn.077b75f0
fild dword [0x781f094]
fcompp
fnstsw ax
test ah, 1
jne 0x77c8bba
mov esi, dword [esp + 0x10]
mov edx, dword [0x781f130]
push esi
push ebp
push edi
push ebx
push 0
push edx
push 0x781eff0
call fcn.077bcc40
push eax
call fcn.077bf680
jmp 0x77c8bbe
mov esi, dword [esp + 0x10]
mov eax, dword [0x781f098]
test eax, eax
je 0x77c8c0d
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 0x18]
push 1
push eax
push ecx
push edx
push 0x781eff0
call fcn.077b75f0
fild dword [0x781f09c]
fcompp
fnstsw ax
test ah, 1
jne 0x77c8c0d
mov eax, dword [0x781f134]
push esi
push ebp
push edi
push ebx
push 0
push eax
push 0x781eff0
call fcn.077bcc40
push eax
call fcn.077bf680
mov eax, dword [0x781f0a0]
test eax, eax
je 0x77c8c5d
mov ecx, dword [esp + 0x1c]
mov edx, dword [esp + 0x14]
mov eax, dword [esp + 0x18]
push 1
push ecx
push edx
push eax
push 0x781eff0
call fcn.077b75f0
fild dword [0x781f0a4]
fcompp
fnstsw ax
test ah, 1
jne 0x77c8c5d
mov ecx, dword [0x781f138]
push esi
push ebp
push edi
push ebx
push 0
push ecx
push 0x781eff0
call fcn.077bcc40
push eax
call fcn.077bf680
mov edx, dword [esp + 0x28]
push 0
push edx
call fcn.077c0000
test eax, eax
jne 0x77c8ca8
lea eax, [esp + 0x78]
push 0x780b63c
push eax
call fcn.077eb863
add esp, 8
test eax, eax
push esi
push ebp
push edi
push ebx
push 0
jne 0x77c8c90
call fcn.077bfc00
jmp 0x77c8ca8
lea ecx, [esp + 0x8c]
push ecx
push 0x781eff0
call fcn.077bcc40
push eax
call fcn.077bf680
mov eax, dword [0x781f118]
mov ecx, dword [eax - 0xc]
test ecx, ecx
jl 0x77c8cda
lea edx, [esp + 0x78]
push edx
push eax
call fcn.077ec17f
add esp, 8
test eax, eax
je 0x77c8cda
sub eax, dword [0x781f118]
sar eax, 1
test eax, eax
jne 0x77c8cda
mov dword [esp + 0x20], 1
push 0x64
push 0x781eff0
call fcn.077ac5b0
mov eax, dword [0x781effc]
test eax, eax
jne 0x77c87c0
mov ecx, dword [0x781fde0]
xor eax, eax
cmp ecx, eax
mov dword [0x781f10c], eax
push eax
je 0x77c8d32
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 0x20]
push ecx
mov ecx, dword [esp + 0x20]
push ebp
push edi
push ebx
mov dword [0x781fde0], eax
mov eax, dword [esp + 0x28]
push edx
push eax
push ecx
call fcn.077c0860
mov dword [0x781fde0], 1
jmp 0x77c8d4e
mov edx, dword [esp + 0x14]
mov eax, dword [esp + 0x20]
mov ecx, dword [esp + 0x18]
push edx
mov edx, dword [esp + 0x20]
push ebp
push edi
push ebx
push eax
push ecx
push edx
call fcn.077c0860
mov ecx, dword [esp + 0xcc]
pop edi
pop esi
pop ebp
mov dword fs:[0], ecx
mov ecx, dword [esp + 0xbc]
pop ebx
call fcn.077eb5bd
add esp, 0xc8
ret 0x20