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

Disassembly:
push 0xffffffffffffffff
push 0x4af0f3
mov eax, dword fs:[0]
push eax
sub esp, 0x114
mov eax, dword [0x4e3a40]
xor eax, esp
mov dword [esp + reloc.MSVCRT.dll_strncpy], eax
push ebx
push ebp
push esi
push edi
mov eax, dword [0x4e3a40]
xor eax, esp
push eax
lea eax, [esp + 0x128]
mov dword fs:[0], eax
mov edi, ecx
mov eax, dword [edi]
mov ecx, dword [edi + 0xc]
mov edx, dword [edi + 0x10]
mov dword [esp + 0x1c], eax
mov eax, dword [edi + 0x14]
push 5
mov dword [esp + 0x74], eax
mov eax, dword [edi + 8]
lea esi, [edi + 8]
mov dword [esp + 0x6c], ecx
mov ecx, dword [edi + 0x18]
push 0x4bd868
push eax
mov dword [esp + 0x6c], edi
mov dword [esp + 0x78], edx
mov dword [esp + 0x80], ecx
call fcn.0081f4e4
add esp, 0xc
test eax, eax
jne 0x79718f
mov eax, dword [esi]
cmp dword [eax - 0xc], 5
jle 0x7979f6
add eax, 0xa
push 0x3c
push eax
call fcn.0081ee3f
xor ebp, ebp
add esp, 8
cmp eax, ebp
je 0x7979f6
sub eax, dword [esi]
sar eax, 1
cmp eax, reloc.MSVCRT.dll_strncpy
je 0x7979f6
add eax, 0xfffffffb
push eax
push 5
lea edx, [esp + 0x54]
push edx
mov ecx, esi
call fcn.007997b8
mov dword [esp + reloc.MSVCRT.dll_strncpy], ebp
mov ebx, dword [esp + 0x4c]
call fcn.007d58a8
mov edi, dword [edi + 4]
cmp edi, ebp
mov esi, eax
je 0x797125
push ebp
push ebp
push edi
call fcn.00794b28
add esp, 0xc
jmp 0x79715f
mov ecx, dword [esp + 0x1c]
lea eax, [esp + 0x3c]
push eax
push ecx
mov dword [esp + 0x44], ebp
call fcn.008379ba
mov edx, dword [esp + 0x3c]
mov dword [esp + 0x64], eax
push ebp
lea eax, [esp + 0x64]
push ebp
push eax
mov eax, esi
mov dword [esp + 0x6c], edx
call fcn.00794b28
mov ecx, dword [esp + 0x6c]
add esp, 0xc
push ecx
call fcn.008379c0
lea eax, [ebx - 0x10]
mov dword [esp + reloc.MSVCRT.dll_strncpy], reloc.MSVCRT.dll_strncpy
lea edx, [eax + 0xc]
or ecx, reloc.MSVCRT.dll_strncpy
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x7979f6
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
jmp 0x7979f6
mov ecx, dword [esp + 0x1c]
push 1
push ecx
call dword [0x4b4128]
mov edx, dword [esi]
mov ebx, dword [edx - 0xc]
xor ecx, ecx
lea ebp, [ebx + 2]
mov eax, ebp
mov edx, 2
mul edx
seto cl
mov dword [esp + 0x8c], ebx
mov dword [esp + 0x18], ebx
neg ecx
or ecx, eax
push ecx
call fcn.007f7ccf
mov edi, eax
xor ecx, ecx
add esp, 4
mov eax, ebp
mov edx, 2
mul edx
seto cl
neg ecx
or ecx, eax
push ecx
call fcn.007f7ccf
mov esi, dword [esi]
add esp, 4
push esi
push edi
mov dword [esp + 0x50], eax
mov dword [esp + 0x54], edi
call dword [fcn.004b43e0]
xor ebp, ebp
mov dword [esp + 0x40], ebp
mov dword [esp + 0x7c], ebp
mov dword [esp + 0x80], ebp
mov dword [esp + 0x84], ebp
mov dword [esp + reloc.MSVCRT.dll_strncpy], 1
mov dword [esp + 0x30], ebp
mov dword [esp + 0x34], ebp
mov dword [esp + 0x38], ebp
mov dword [esp + 0x54], ebp
mov dword [esp + 0x58], ebp
mov dword [esp + 0x5c], ebp
cmp ebx, ebp
mov byte [esp + 0x130], 3
jle 0x79795c
jmp 0x79724f
mov ebx, dword [esp + 0x8c]
cmp edi, ebp
mov esi, dword [esp + 0x1c]
je 0x79795c
mov eax, dword [esp + 0x4c]
lea ecx, [eax + ebx*2]
cmp edi, ecx
jae 0x79795c
mov ebx, 3
push ebx
push 0x4bd874
push edi
call fcn.0081f4e4
add esp, 0xc
test eax, eax
jne 0x79730a
mov eax, dword [0x4e901c]
sub dword [esp + 0x18], ebx
add edi, 6
cmp eax, ebp
jne 0x79729e
push 0xd
call dword [fcn.004b4140]
mov edx, dword [esp + 0x1c]
push eax
push edx
call dword [fcn.004b4144]
mov esi, dword [esp + 0x30]
cmp esi, ebp
mov ebx, eax
mov eax, dword [esp + 0x34]
mov dword [esp + 0x20], ebx
je 0x7972de
mov edx, dword [esp + 0x38]
mov ecx, eax
sub ecx, esi
sub edx, esi
sar ecx, 2
sar edx, 2
cmp ecx, edx
jae 0x7972de
mov dword [eax], ebx
add eax, 4
mov dword [esp + 0x34], eax
jmp 0x797952
cmp esi, eax
mov ebx, eax
jbe 0x7972e9
call fcn.0081e954
push ebx
lea eax, [esp + 0x30]
push eax
lea eax, [esp + 0x28]
push eax
lea ecx, [esp + 0xa8]
push ecx
lea eax, [esp + 0x3c]
call fcn.007c8e68
jmp 0x797952
push 4
push 0x4bd87c
push edi
call fcn.0081f4e4
add esp, 0xc
test eax, eax
jne 0x797397
mov eax, dword [esp + 0x34]
sub dword [esp + 0x18], 4
add edi, 8
cmp dword [esp + 0x30], eax
mov esi, eax
jbe 0x79733b
call fcn.0081e954
mov eax, dword [esp + 0x34]
lea ecx, [esp + 0x2c]
mov ebx, ecx
lea ecx, [esi - 4]
cmp ecx, eax
mov dword [esp + 0x24], esi
ja 0x797352
cmp ecx, dword [esp + 0x30]
jae 0x797357
call fcn.0081e954
add esi, 0xfffffffc
cmp esi, dword [ebx + 8]
jb 0x797364
call fcn.0081e954
mov edx, dword [esi]
mov eax, dword [esp + 0x1c]
push edx
push eax
call dword [fcn.004b4144]
mov eax, dword [esp + 0x30]
cmp eax, ebp
je 0x797952
mov ecx, dword [esp + 0x34]
sub ecx, eax
sar ecx, 2
je 0x797952
sub dword [esp + 0x34], 4
jmp 0x797952
push ebx
push 0x4bd888
push edi
call fcn.0081f4e4
add esp, 0xc
test eax, eax
jne 0x7973e9
mov eax, dword [0x4e9020]
sub dword [esp + 0x18], ebx
add dword [esp + 0x40], 1
add edi, 6
cmp eax, ebp
jne 0x7973c7
push 0xd
call dword [fcn.004b4140]
mov edx, dword [esp + 0x1c]
push eax
push edx
call dword [fcn.004b4144]
lea ebx, [esp + 0x20]
lea esi, [esp + 0x2c]
mov dword [esp + 0x20], eax
call fcn.007dc608
jmp 0x797952
mov ebx, 4
push ebx
push 0x4bd890
push edi
call fcn.0081f4e4
add esp, 0xc
test eax, eax
jne 0x79744a
sub dword [esp + 0x18], ebx
add edi, 8
cmp dword [esp + 0x40], ebp
je 0x797413
sub dword [esp + 0x40], 1
lea eax, [esp + 0x2c]
call fcn.00799a48
mov eax, dword [eax]
push eax
push esi
call dword [fcn.004b4144]
mov eax, dword [esp + 0x30]
cmp eax, ebp
je 0x797952
mov ecx, dword [esp + 0x34]
sub ecx, eax
sar ecx, 2
je 0x797952
sub dword [esp + 0x34], ebx
jmp 0x797952
push 5
push 0x4bd89c
push edi
call fcn.0081f4e4
add esp, 0xc
test eax, eax
jne 0x79749d
sub dword [esp + 0x18], 5
add edi, 0xa
push 0x22
push edi
call fcn.0081ee3f
add esp, 8
cmp eax, ebp
je 0x797952
sub eax, edi
sar eax, 1
mov ebp, eax
push ebp
lea edx, [esp + 0xa8]
push edi
push edx
call fcn.0081f588
mov word [esp + ebp*2 + 0xb0], 0
jmp 0x79753c
push ebx
push 0x4bd8a8
push edi
call fcn.0081f4e4
add esp, 0xc
test eax, eax
jne 0x7974ee
sub dword [esp + 0x18], ebx
lea eax, [esp + 0x50]
add edi, 8
call fcn.00799a48
mov edx, dword [eax]
push edx
push esi
call dword [0x4b4124]
mov eax, dword [esp + 0x54]
cmp eax, ebp
je 0x797952
mov ecx, dword [esp + 0x58]
sub ecx, eax
sar ecx, 2
je 0x797952
sub dword [esp + 0x58], ebx
jmp 0x797952
push 9
push 0x4bd8b4
push edi
call fcn.0081f4e4
add esp, 0xc
test eax, eax
jne 0x79757e
sub dword [esp + 0x18], 9
add edi, 0x12
push 0x22
push edi
call fcn.0081ee3f
add esp, 8
cmp eax, ebp
je 0x797952
sub eax, edi
sar eax, 1
mov ebp, eax
push ebp
lea edx, [esp + 0xa8]
push edi
push edx
call fcn.0081f588
mov word [esp + ebp*2 + 0xb0], 0
add esp, 0xc
lea ecx, [esp + 0xa4]
call fcn.00795958
push eax
mov eax, dword [esp + 0x20]
push eax
call dword [0x4b4124]
lea ebx, [esp + 0x20]
lea esi, [esp + 0x50]
mov dword [esp + 0x20], eax
call fcn.007dc608
mov ecx, strncpy
sub ecx, ebp
add dword [esp + 0x18], ecx
lea edi, [edi + ebp*2 + 4]
xor ebp, ebp
jmp 0x797952
push 8
push 0x4bd8c8
push edi
call fcn.0081f4e4
add esp, 0xc
test eax, eax
jne 0x7975bb
sub dword [esp + 0x18], 8
lea eax, [esp + 0x50]
add edi, 0x10
call fcn.00799a48
mov edx, dword [eax]
push edx
push esi
call dword [0x4b4124]
lea ecx, [esp + 0x50]
call fcn.00799a98
jmp 0x797952
push 5
push 0x4bd8dc
push edi
call fcn.0081f4e4
add esp, 0xc
test eax, eax
jne 0x797821
sub dword [esp + 0x18], 5
lea ecx, [esp + 0x28]
add edi, 0xa
call fcn.00792ec8
push 0x3e
push edi
mov byte [esp + 0x138], 4
call fcn.0081ee3f
mov ebx, eax
add esp, 8
cmp ebx, ebp
je 0x79780b
push edi
lea ecx, [esp + 0x2c]
call fcn.0079a6a8
mov esi, ebx
sub esi, edi
mov eax, esi
sar eax, 1
push eax
lea ecx, [esp + 0x94]
push ecx
lea ecx, [esp + 0x30]
call fcn.007998e8
push eax
lea ecx, [esp + 0x2c]
mov byte [esp + 0x134], 5
call fcn.00792d38
lea ecx, [esp + 0x90]
mov byte [esp + 0x130], 4
call fcn.007929b8
lea edi, [esp + 0x28]
call fcn.00799728
lea edx, [esp + 0x44]
add esi, 2
push edx
sar esi, 1
sub dword [esp + 0x1c], esi
mov ecx, 0x4bd8e8
lea edx, [esp + 0x2c]
lea edi, [ebx + 2]
call fcn.00795d58
add esp, 4
mov byte [esp + 0x130], 6
mov eax, dword [esp + 0x44]
cmp dword [eax - 0xc], ebp
je 0x797802
lea ecx, [esp + 0x44]
push 0x4bd8f4
push ecx
call fcn.00799968
add esp, 8
test al, al
je 0x7976c8
call fcn.00793ab8
mov edx, dword [esp + 0x1c]
push eax
push edx
call dword [fcn.004b4144]
lea ebx, [esp + 0x20]
lea esi, [esp + 0x2c]
mov dword [esp + 0x20], eax
call fcn.007dc608
jmp 0x797802
lea eax, [esp + 0x44]
push 0x4bd8f8
push eax
call fcn.00799968
add esp, 8
test al, al
je 0x797705
call fcn.00793ad8
mov ecx, dword [esp + 0x1c]
push eax
push ecx
call dword [fcn.004b4144]
lea ebx, [esp + 0x20]
lea esi, [esp + 0x2c]
mov dword [esp + 0x20], eax
call fcn.007dc608
jmp 0x797802
lea edx, [esp + 0xa4]
push edx
push 0x5c
call fcn.00793a98
push eax
call dword [0x4b4148]
mov eax, dword [esp + 0x44]
push eax
call fcn.0081ee72
lea ecx, [esp + 0x40]
add esp, 4
neg eax
push ecx
mov ecx, 0x4bd8fc
lea edx, [esp + 0x2c]
mov dword [esp + 0xa8], eax
call fcn.00795d58
add esp, 4
mov bl, 7
mov byte [esp + 0x130], bl
mov eax, dword [esp + 0x3c]
cmp dword [eax - 0xc], ebp
je 0x797769
push eax
call fcn.0081ee72
add esp, 4
mov dword [esp + 0xb4], eax
lea edx, [esp + 0x88]
push edx
mov ecx, 0x4bd90c
lea edx, [esp + 0x2c]
call fcn.00795d58
add esp, 4
push eax
lea ecx, [esp + 0x40]
mov byte [esp + 0x134], 8
call fcn.00792d38
lea ecx, [esp + 0x88]
mov byte [esp + 0x130], bl
call fcn.007929b8
mov eax, dword [esp + 0x3c]
cmp dword [eax - 0xc], 0
lea edx, [esp + 0xa4]
setne cl
push edx
mov byte [esp + 0xbd], cl
call dword [fcn.004b413c]
mov ebp, eax
lea ebx, [esp + 0x20]
lea esi, [esp + 0x78]
mov dword [esp + 0x20], ebp
call fcn.007dc608
mov eax, dword [esp + 0x1c]
push ebp
push eax
call dword [fcn.004b4144]
lea ebx, [esp + 0x20]
lea esi, [esp + 0x2c]
mov dword [esp + 0x20], eax
call fcn.007dc608
lea ecx, [esp + 0x3c]
call fcn.007929b8
xor ebp, ebp
lea ecx, [esp + 0x44]
call fcn.007929b8
lea ecx, [esp + 0x28]
mov byte [esp + 0x130], 3
call fcn.007929b8
jmp 0x797952
push 7
push 0x4bd91c
push edi
call fcn.0081f4e4
add esp, 0xc
test eax, eax
jne 0x79785e
sub dword [esp + 0x18], 7
lea eax, [esp + 0x2c]
add edi, 0xe
call fcn.00799a48
mov ecx, dword [eax]
push ecx
push esi
call dword [fcn.004b4144]
lea ecx, [esp + 0x2c]
call fcn.00799a98
jmp 0x797952
cmp word [edi], 0x3c
lea eax, [edi + 2]
je 0x797869
mov eax, edi
push 0x3c
push eax
call fcn.0081ee3f
mov ebx, eax
add esp, 8
cmp ebx, ebp
je 0x79789b
mov edx, dword [esp + 0x48]
mov esi, ebx
sub esi, edi
sar esi, 1
push esi
push edi
push edx
call fcn.0081f588
mov eax, dword [esp + 0x54]
add esp, 0xc
mov word [eax + esi*2], bp
mov edi, ebx
jmp 0x7978b9
mov ecx, dword [esp + 0x48]
sub ecx, edi
lea esp, [esp]
movzx eax, word [edi]
mov word [ecx + edi], ax
add edi, 2
cmp ax, bp
jne 0x7978a8
xor edi, edi
mov ebx, dword [esp + 0x48]
mov esi, dword [esp + 0x1c]
push 0x824
lea ecx, [esp + 0x6c]
push ecx
push 0xffffffffffffffff
push ebx
push esi
call dword [0x4b470c]
mov eax, ebx
lea edx, [eax + 2]
mov cx, word [eax]
add eax, 2
cmp cx, bp
jne 0x7978da
sub eax, edx
lea edx, [esp + 0x94]
push edx
sar eax, 1
push eax
push ebx
push esi
call dword [fcn.004b4120]
cmp dword [esp + 0x40], ebp
mov eax, dword [esp + 0x68]
mov ecx, dword [esp + 0x94]
je 0x79792f
mov edx, dword [esp + 0x60]
mov esi, dword [esp + 0x6c]
mov dword [edx + 0x1c], eax
mov dword [edx + 0x20], esi
mov esi, dword [esp + 0x70]
mov dword [edx + 0x24], esi
mov esi, dword [esp + 0x74]
mov dword [edx + 0x28], esi
mov esi, dword [edx + 0x1c]
add esi, ecx
mov dword [edx + 0x24], esi
lea eax, [eax + ecx + 1]
mov dword [esp + 0x68], eax
mov eax, ebx
lea edx, [eax + 2]
mov cx, word [eax]
add eax, 2
cmp cx, bp
jne 0x79793c
sub eax, edx
sar eax, 1
sub dword [esp + 0x18], eax
mov word [ebx], bp
cmp dword [esp + 0x18], ebp
jg 0x797248
mov ecx, dword [esp + 0x4c]
push ecx
call fcn.007f7cd4
mov edx, dword [esp + 0x4c]
add esp, 4
push edx
call fcn.007f7cd4
mov edi, dword [fcn.004b414c]
add esp, 4
xor esi, esi
mov ecx, dword [esp + 0x7c]
cmp ecx, ebp
je 0x7979a1
mov eax, dword [esp + 0x80]
sub eax, ecx
sar eax, 2
cmp esi, eax
jae 0x7979a1
mov eax, dword [ecx + esi*4]
push eax
call edi
add esi, 1
jmp 0x79797e
mov eax, dword [esp + 0x54]
cmp eax, ebp
je 0x7979b9
push eax
call fcn.007f7cd4
mov ecx, dword [esp + 0x80]
add esp, 4
mov eax, dword [esp + 0x30]
cmp eax, ebp
mov dword [esp + 0x54], ebp
mov dword [esp + 0x58], ebp
mov dword [esp + 0x5c], ebp
je 0x7979dd
push eax
call fcn.007f7cd4
mov ecx, dword [esp + 0x80]
add esp, 4
cmp ecx, ebp
mov dword [esp + 0x30], ebp
mov dword [esp + 0x34], ebp
mov dword [esp + 0x38], ebp
je 0x7979f6
push ecx
call fcn.007f7cd4
add esp, 4
mov ecx, dword [esp + 0x128]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebp
pop ebx
mov ecx, dword [esp + reloc.MSVCRT.dll_strncpy]
xor ecx, esp
call fcn.0081e2f5
add esp, 0x120
ret