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

Disassembly:
sub esp, 0xc4
mov eax, dword [0x100955e4]
xor eax, esp
mov dword [esp + 0xc0], eax
mov ecx, dword [esp + 0xc8]
mov edx, dword [esp + 0xcc]
push ebx
push ebp
mov eax, dword [ecx]
xor ebx, ebx
push esi
mov esi, dword [ecx + 0xc]
push edi
mov eax, dword [eax]
mov edi, dword [esp + 0xe0]
mov dword [esp + 0x4c], eax
mov dword [esp + 0x34], ecx
mov ebp, dword [eax]
xor eax, eax
mov dword [esp + 0x24], edx
mov dword [esp + 0x1c], edi
mov dword [esp + 0x28], ebp
mov dword [esp + 0x20], 0
mov dword [esp + 0x2c], ebx
mov dword [esp + 0x18], eax
mov dword [esp + 0x68], esi
cmp byte [ebp + 0x51], al
je 0x10079a6f
lea eax, [ebx + 7]
jmp 0x1007a171
mov eax, dword [esi + 0x24]
mov dword [esp + 0x48], eax
and al, 0x20
movzx eax, al
neg eax
sbb eax, eax
and eax, 0xfffffe59
add eax, 0x1bf
test byte [edi + 0x38], 4
je 0x10079a92
and eax, 0xffffffc3
movzx ebx, word [esi + 0x1a]
movzx ebp, word [esi + 0x18]
mov dword [esp + 0x58], ebx
movzx ebx, word [esi + 0x1c]
mov dword [esp + 0x5c], ebx
movzx ebx, word [esi + 0x2a]
mov dword [esp + 0x64], ebx
movzx ebx, word [esi + 0x28]
mov dword [esp + 0x60], ebx
mov ebx, dword [esi]
mov dword [esp + 0x50], ebx
mov ebx, dword [esi + 4]
push edi
mov dword [esp + 0x58], ebx
movzx ebx, word [esi + 0x16]
push eax
mov dword [esp + 0x40], ebx
lea eax, [esp + 0x78]
movzx ebx, bp
push ebx
push dword [edx + 0x2c]
mov dword [esp + 0x54], ebp
push dword [ecx + 4]
mov dword [esp + 0x28], ebx
push eax
call fcn.1007cac0
mov ebp, eax
add esp, 0x18
xor eax, eax
mov word [esi + 0x12], ax
mov eax, dword [edi + 8]
movzx eax, word [eax]
mov ecx, eax
mov dword [esp + 0x6c], ecx
cmp cx, 0xa
jg 0x10079b10
mov dword [esp + 0x40], 0
jmp 0x10079b27
cwde
cdq
push edx
push eax
call fcn.1004cf40
add esp, 8
sub ax, 0x21
movzx eax, ax
mov dword [esp + 0x40], eax
mov eax, dword [esp + 0xe4]
mov ecx, 0x100
mov dword [esp + 0x30], eax
test ebp, ebp
je 0x1007a05d
movzx edx, word [ebp + 0xc]
mov eax, edx
mov dword [esp + 0x10], 0
mov dword [esp + 0x3c], eax
cmp ax, cx
jne 0x10079b80
mov eax, dword [edi + 4]
movsx ecx, word [eax + ebx*2]
test ecx, ecx
js 0x10079b77
mov eax, dword [edi + 0xc]
add ecx, ecx
mov eax, dword [eax + 4]
mov al, byte [eax + ecx*8 + 0xc]
test al, al
jne 0x1007a03e
jmp 0x10079b80
cmp ecx, 0xffffffff
je 0x1007a03e
mov ecx, dword [esi + 8]
mov eax, dword [esi + 0xc]
and ecx, dword [ebp + 0x20]
and eax, dword [ebp + 0x24]
or ecx, eax
jne 0x1007a03e
mov eax, 0x100
test word [ebp + 0xa], ax
je 0x10079ba8
cmp edx, 0x10
je 0x1007a03e
mov eax, dword [esp + 0x24]
test byte [eax + 0x24], 8
je 0x10079bbf
mov eax, dword [ebp]
test byte [eax + 4], 1
je 0x1007a03e
cmp byte [edi + 0x36], 0
je 0x10079bd8
movzx eax, word [edi + 0x32]
dec eax
cmp ebx, eax
jne 0x10079bd8
mov ebx, dword [esp + 0x34]
or dword [ebx + 0x14], 2
jmp 0x10079be0
mov eax, dword [esp + 0x34]
or dword [eax + 0x14], 1
mov eax, dword [esp + 0x48]
mov ebx, dword [esp + 0x28]
mov dword [esi + 0x24], eax
mov eax, dword [esp + 0x44]
mov word [esi + 0x18], ax
mov eax, dword [esp + 0x58]
mov word [esi + 0x1a], ax
mov eax, dword [esp + 0x5c]
mov word [esi + 0x1c], ax
mov eax, dword [esp + 0x60]
mov word [esi + 0x28], ax
movzx eax, ax
inc eax
push eax
push esi
push ebx
call fcn.1007b540
add esp, 0xc
test eax, eax
jne 0x1007a061
movzx ecx, word [esi + 0x28]
mov eax, dword [esi + 0x30]
mov edx, dword [esp + 0x54]
mov edi, dword [esp + 0x50]
mov dword [eax + ecx*4], ebp
mov ax, word [esi + 0x28]
mov ecx, dword [esi + 8]
inc ax
mov word [esi + 0x28], ax
not ecx
or edx, dword [ebp + 0x24]
or edi, dword [ebp + 0x20]
movzx ebx, ax
and edi, ecx
mov eax, dword [esi + 0xc]
not eax
mov dword [esi], edi
and edx, eax
mov eax, dword [esp + 0x3c]
mov dword [esi + 4], edx
test al, 1
je 0x10079d21
mov edx, dword [ebp]
test dword [edx + 4], 0x800
je 0x10079cf9
lea edi, [ebx - 1]
mov dword [esp + 0x10], 0x2e
xor ecx, ecx
test edi, edi
jle 0x10079d1a
mov ebx, dword [esi + 0x30]
mov esi, dword [esp + 0x10]
mov eax, dword [ebx + ecx*4]
test eax, eax
je 0x10079ca3
mov eax, dword [eax]
sub eax, edx
neg eax
sbb eax, eax
and esi, eax
inc ecx
cmp ecx, edi
jl 0x10079c92
mov dword [esp + 0x10], esi
mov esi, dword [esp + 0x68]
mov ebx, dword [esp + 0x10]
mov edi, dword [esp + 0x1c]
test byte [edi + 0x38], 0x80
je 0x10079ce9
push ebx
call fcn.1001dfc0
mov edx, dword [esp + 0x18]
add esp, 4
movsx ecx, ax
mov eax, dword [edi + 8]
movsx eax, word [eax + edx*2]
add eax, 0xa
add ecx, eax
mov eax, dword [esp + 0x40]
cwde
add eax, ebx
cmp ecx, eax
jl 0x1007a03c
or dword [esi + 0x24], 4
mov ebx, dword [esi + 0x24]
mov ecx, dword [esp + 0x18]
jmp 0x10079e71
mov eax, dword [edx + 0x14]
test eax, eax
je 0x10079cb0
mov eax, dword [eax]
test eax, eax
je 0x10079cb0
cdq
push edx
push eax
call fcn.1004cf40
movsx ebx, ax
add esp, 8
mov dword [esp + 0x10], ebx
jmp 0x10079cb4
mov ebx, 0x2e
jmp 0x10079cb4
mov edi, dword [esp + 0x1c]
test al, 0x82
je 0x10079d9e
mov eax, dword [edi + 4]
mov ecx, dword [esp + 0x14]
movsx eax, word [eax + ecx*2]
mov ecx, dword [esi + 0x24]
or ecx, 1
mov dword [esi + 0x24], ecx
cmp eax, 0xffffffff
je 0x10079d8a
mov ebx, ecx
test eax, eax
js 0x10079d95
cmp word [esp + 0x30], 0
jne 0x10079d95
movzx edx, word [edi + 0x32]
lea eax, [edx - 1]
cmp dword [esp + 0x14], eax
jne 0x10079d95
test byte [edi + 0x38], 8
jne 0x10079d8a
cmp edx, 1
jne 0x10079d76
cmp byte [edi + 0x36], 0
je 0x10079d76
cmp word [esp + 0x3c], 2
je 0x10079d8a
mov ebx, ecx
mov ecx, dword [esp + 0x18]
or ebx, 0x10000
mov dword [esi + 0x24], ebx
jmp 0x10079e71
mov ebx, ecx
or ebx, 0x1000
mov dword [esi + 0x24], ebx
mov ecx, dword [esp + 0x18]
jmp 0x10079e71
mov ebx, dword [esi + 0x24]
test eax, 0x100
je 0x10079db7
mov ecx, dword [esp + 0x18]
or ebx, 8
mov dword [esi + 0x24], ebx
jmp 0x10079e71
push ebp
push dword [esp + 0x18]
test al, 0x24
mov eax, dword [esp + 0x2c]
push edi
je 0x10079e39
or ebx, 0x22
mov dword [esi + 0x24], ebx
push dword [eax + 0x2c]
push dword [esp + 0x5c]
call fcn.1007c920
mov word [esi + 0x1a], ax
xor ebx, ebx
mov eax, 0x100
mov dword [esp + 0x2c], ebp
add esp, 0x14
mov dword [esp + 0x2c], ebx
test word [ebp + 0xa], ax
je 0x10079e30
movzx eax, word [esi + 0x28]
lea ebx, [ebp + 0x30]
inc eax
mov dword [esp + 0x2c], ebx
push eax
push esi
push dword [esp + 0x30]
call fcn.1007b540
add esp, 0xc
test eax, eax
jne 0x1007a05d
movzx ecx, word [esi + 0x28]
mov eax, dword [esi + 0x30]
mov dword [eax + ecx*4], ebx
mov eax, 1
inc word [esi + 0x28]
or dword [esi + 0x24], 0x10
mov word [esi + 0x1c], ax
mov ebx, dword [esi + 0x24]
mov ecx, dword [esp + 0x18]
jmp 0x10079e71
or ebx, 0x12
mov dword [esi + 0x24], ebx
push dword [eax + 0x2c]
push dword [esp + 0x5c]
call fcn.1007c920
mov ebx, dword [esi + 0x24]
add esp, 0x14
mov word [esi + 0x1c], ax
mov dword [esp + 0x2c], ebp
test bl, 0x20
je 0x10079e6b
movzx ecx, word [esi + 0x28]
mov eax, dword [esi + 0x30]
mov ecx, dword [eax + ecx*4 - 8]
jmp 0x10079e6d
xor ecx, ecx
mov dword [esp + 0x18], ecx
test bl, 2
je 0x10079f06
movzx eax, word [esi + 0x16]
movsx edi, ax
test ecx, ecx
je 0x10079e95
movzx ecx, word [ecx + 8]
test cx, cx
jg 0x10079e92
add eax, ecx
jmp 0x10079e95
sub eax, 0x14
mov ebx, dword [esp + 0x2c]
movzx ecx, ax
test ebx, ebx
je 0x10079eb3
movzx ecx, word [ebx + 8]
test cx, cx
jg 0x10079ead
add eax, ecx
jmp 0x10079eb0
add eax, 0xffffffec
movzx ecx, ax
mov ebp, dword [esp + 0x18]
movzx edx, cx
test ebp, ebp
je 0x10079ed6
cmp word [ebp + 8], 0
jle 0x10079ed6
test ebx, ebx
je 0x10079ed6
cmp word [ebx + 8], 0
jle 0x10079ed6
lea eax, [ecx - 0x14]
movzx edx, ax
xor ecx, ecx
test ebp, ebp
setne cl
xor eax, eax
test ebx, ebx
setne al
add ecx, eax
sub edi, ecx
cmp dx, 0xa
jge 0x10079ef3
mov edx, 0xa
movsx eax, dx
cmp eax, edi
jge 0x10079efc
mov edi, eax
mov ebx, dword [esi + 0x24]
movzx eax, di
mov edi, eax
jmp 0x10079f5f
inc word [esi + 0x18]
movzx ecx, word [ebp + 8]
movzx edx, word [esi + 0x18]
test cx, cx
jg 0x10079f35
mov eax, dword [edi + 4]
mov ebp, dword [esp + 0x14]
cmp word [eax + ebp*2], 0
jl 0x10079f35
mov ebp, dword [esp + 0x10]
sub ecx, ebp
add word [esi + 0x16], cx
movzx edi, word [esi + 0x16]
jmp 0x10079f67
mov eax, dword [edi + 8]
mov cx, word [esi + 0x16]
sub cx, word [eax + edx*2 - 2]
add cx, word [eax + edx*2]
test dword [esp + 0x3c], 0x100
movzx eax, cx
mov word [esi + 0x16], cx
movzx edi, cx
je 0x10079f63
add eax, 0xa
movzx edi, ax
mov word [esi + 0x16], ax
mov ebp, dword [esp + 0x10]
mov eax, dword [esp + 0x1c]
movsx eax, word [eax + 0x30]
mov edx, eax
shl edx, 4
sub edx, eax
mov eax, dword [esp + 0x24]
mov eax, dword [eax + 0x10]
movsx ecx, word [eax + 0x2e]
mov eax, edx
cdq
idiv ecx
inc eax
add eax, edi
push eax
push dword [esp + 0x44]
call fcn.1004cfe0
add esp, 8
movzx ecx, ax
mov word [esi + 0x14], ax
movzx eax, ax
test ebx, 0x140
jne 0x10079fb8
lea eax, [edi + 0x10]
push eax
push ecx
call fcn.1004cfe0
add esp, 8
movzx eax, ax
push dword [esp + 0x6c]
movzx ebx, bp
mov ebp, dword [esp + 0x38]
add eax, ebx
add eax, dword [esp + 0x34]
mov word [esi + 0x14], ax
lea eax, [edi + ebx]
add eax, dword [esp + 0x34]
mov word [esi + 0x16], ax
push esi
push dword [ebp + 4]
call fcn.1007b3f0
push esi
push ebp
call fcn.1007b210
add esp, 0x14
mov dword [esp + 0x20], eax
test byte [esi + 0x24], 2
je 0x10079ffe
mov eax, dword [esp + 0x38]
movzx ecx, ax
jmp 0x1007a001
movzx ecx, di
mov edi, dword [esp + 0x1c]
mov word [esi + 0x16], cx
test byte [esi + 0x24], 0x10
jne 0x1007a02e
mov ax, word [esi + 0x18]
cmp ax, word [edi + 0x34]
jae 0x1007a02e
mov eax, dword [esp + 0x30]
add eax, ebx
push eax
push edi
push dword [esp + 0x2c]
push ebp
call fcn.10079a00
add esp, 0x10
mov eax, dword [esp + 0x38]
mov ebx, dword [esp + 0x14]
mov word [esi + 0x16], ax
jmp 0x1007a03e
mov ebx, edx
lea eax, [esp + 0x70]
push eax
call fcn.1007cbc0
add esp, 4
mov ebp, eax
cmp dword [esp + 0x20], 0
mov ecx, 0x100
je 0x10079b37
mov ebx, dword [esp + 0x28]
mov eax, dword [esp + 0x50]
mov ecx, dword [esp + 0x44]
mov ebp, dword [esp + 0x64]
mov edx, dword [esp + 0x60]
mov dword [esi], eax
mov eax, dword [esp + 0x54]
mov dword [esi + 4], eax
mov eax, dword [esp + 0x58]
mov word [esi + 0x1a], ax
mov eax, dword [esp + 0x5c]
mov word [esi + 0x1c], ax
mov eax, dword [esp + 0x48]
mov dword [esi + 0x24], eax
mov eax, dword [esp + 0x38]
mov word [esi + 0x18], cx
mov word [esi + 0x2a], bp
mov word [esi + 0x16], ax
mov word [esi + 0x28], dx
cmp cx, bp
jne 0x1007a16b
mov ebp, dword [esp + 0x14]
movzx ecx, word [edi + 0x32]
lea eax, [ebp + 1]
cmp eax, ecx
jae 0x1007a16b
test byte [edi + 0x38], 0x40
jne 0x1007a16b
mov eax, 0x4000
test word [ebx + 0x4c], ax
jne 0x1007a16b
mov eax, dword [edi + 8]
cmp word [eax + ebp*2 + 2], 0x2a
jl 0x1007a16b
movzx eax, dx
inc eax
push eax
push esi
push ebx
call fcn.1007b540
mov ebx, eax
add esp, 0xc
test ebx, ebx
jne 0x1007a16f
movzx ecx, word [esi + 0x28]
mov eax, dword [esi + 0x30]
inc word [esi + 0x18]
inc word [esi + 0x2a]
mov edx, dword [esp + 0x30]
mov dword [eax + ecx*4], ebx
add edx, 5
inc word [esi + 0x28]
or dword [esi + 0x24], 0x8000
mov eax, dword [edi + 8]
mov cx, word [eax + ebp*2]
sub cx, word [eax + ebp*2 + 2]
movzx eax, cx
sub word [esi + 0x16], ax
add eax, edx
mov ecx, dword [esp + 0x34]
push eax
push edi
push dword [esp + 0x2c]
push ecx
call fcn.10079a00
mov eax, dword [esp + 0x48]
add esp, 0x10
mov word [esi + 0x16], ax
mov eax, dword [esp + 0x44]
mov word [esi + 0x18], ax
mov eax, dword [esp + 0x64]
mov word [esi + 0x2a], ax
mov eax, dword [esp + 0x48]
mov dword [esi + 0x24], eax
jmp 0x1007a16f
mov ebx, dword [esp + 0x20]
mov eax, ebx
mov ecx, dword [esp + 0xd0]
pop edi
pop esi
pop ebp
pop ebx
xor ecx, esp
call fcn.100843e0
add esp, 0xc4
ret