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

Disassembly:
mov ecx, dword fs:[0x14]
mov ecx, dword [ecx]
lea eax, [esp - 0x2c]
cmp eax, dword [ecx + 8]
jbe 0x479f15
sub esp, 0xac
mov dword [esp + 0xbc], 0
mov dword [esp + 0xc0], 0
mov dword [esp + 0xc4], 0
mov dword [esp + 0xc8], 0
mov dword [esp + 0xcc], 0
mov dword [esp + 0xd0], 0
mov dword [esp + 0xd4], 0
mov byte [esp + 0xd8], 0
mov eax, dword [esp + 0xb0]
mov dword [esp], eax
call fcn.004796c0
mov eax, dword [esp + 4]
mov dword [esp + 0xb0], eax
test byte [eax], al
mov eax, dword [eax + 0xc]
mov dword [esp + 0x50], eax
test eax, eax
je 0x47983e
jmp 0x47989c
lea eax, [0x4b0dde]
mov dword [esp + 0xbc], eax
mov dword [esp + 0xc0], 3
mov dword [esp + 0xc4], 0
mov dword [esp + 0xc8], 0
mov dword [esp + 0xcc], 0x80000000
mov dword [esp + 0xd0], 0xffffffff
mov dword [esp + 0xd4], 0x7fffffff
mov byte [esp + 0xd8], 0
add esp, 0xac
ret
jmp 0x47989e
mov edx, dword [esp + 0xb0]
test byte [edx], al
mov edx, dword [edx + 0x38]
mov dword [esp + 0x84], edx
test edx, edx
setne dl
mov byte [esp + 0x3e], dl
jne 0x4798be
jmp 0x4798fa
mov edx, dword [esp + 0xb0]
test byte [edx], al
mov ebx, dword [edx + 0x2c]
mov edx, dword [edx + 0x28]
mov ebp, dword [esp + 0xb8]
mov esi, dword [esp + 0xb4]
cmp ebp, ebx
xchg edi, ebx
setg bl
xchg edi, ebx
cmp ebp, ebx
sete bl
cmp esi, edx
setae dl
and ebx, edx
or edi, ebx
xchg edi, eax
mov byte [esp + 0x3e], al
xchg edi, eax
jmp 0x4798fc
jmp 0x4798fc
movzx edx, byte [esp + 0x3e]
mov byte [esp + 0x3f], dl
test dl, dl
jne 0x47990b
jmp 0x479947
mov edx, dword [esp + 0xb0]
test byte [edx], al
mov ebx, dword [esp + 0xb8]
mov ebp, dword [esp + 0xb4]
mov esi, dword [edx + 0x34]
mov edx, dword [edx + 0x30]
cmp esi, ebx
xchg edi, ebx
setg bl
xchg edi, ebx
cmp esi, ebx
sete bl
cmp edx, ebp
seta dl
and ebx, edx
or edi, ebx
xchg edi, eax
mov byte [esp + 0x3f], al
xchg edi, eax
jmp 0x479949
jmp 0x479949
movzx edx, byte [esp + 0x3f]
test dl, dl
jne 0x479957
jmp 0x4799db
mov eax, dword [esp + 0x84]
test byte [eax], al
mov ecx, dword [eax]
mov eax, dword [eax + 4]
mov dword [esp + 0xbc], ecx
mov dword [esp + 0xc0], eax
mov eax, dword [esp + 0x84]
test byte [eax], al
mov eax, dword [eax + 8]
mov dword [esp + 0xc4], eax
mov eax, dword [esp + 0xb0]
test byte [eax], al
mov ecx, dword [eax + 0x28]
mov eax, dword [eax + 0x2c]
mov dword [esp + 0xc8], ecx
mov dword [esp + 0xcc], eax
mov eax, dword [esp + 0xb0]
test byte [eax], al
mov ecx, dword [eax + 0x30]
mov eax, dword [eax + 0x34]
mov dword [esp + 0xd0], ecx
mov dword [esp + 0xd4], eax
mov eax, dword [esp + 0x84]
test byte [eax], al
movzx eax, byte [eax + 0xc]
mov byte [esp + 0xd8], al
add esp, 0xac
ret
jmp 0x4799dd
mov edx, dword [esp + 0xb0]
test byte [edx], al
mov edx, dword [edx + 0x18]
mov dword [esp + 0x50], edx
test edx, edx
sete dl
mov byte [esp + 0x3f], dl
je 0x4799fa
jmp 0x4799fc
jmp 0x479a46
mov edx, dword [esp + 0xb0]
test byte [edx], al
mov ebx, dword [esp + 0xb8]
mov ebp, dword [esp + 0xb4]
mov ecx, dword [edx + 0x18]
mov edx, dword [edx + 0x14]
test ecx, ecx
ja 0x479a22
jmp 0x479f0d
mov esi, dword [edx + 4]
mov edx, dword [edx]
cmp esi, ebx
xchg edi, ebx
setg bl
xchg edi, ebx
cmp esi, ebx
sete bl
cmp edx, ebp
seta dl
and ebx, edx
or edi, ebx
xchg edi, eax
mov byte [esp + 0x3f], al
xchg edi, eax
jmp 0x479a46
movzx edx, byte [esp + 0x3f]
test dl, dl
jne 0x479a54
jmp 0x479b4b
mov eax, dword [esp + 0xb0]
mov dword [esp], eax
call fcn.00479f20
mov eax, dword [esp + 4]
mov dword [esp + 0x50], eax
mov ecx, dword [esp + 0xb0]
test byte [ecx], al
mov edx, dword [ecx + 0xc]
mov ecx, dword [ecx + 8]
cmp edx, eax
ja 0x479a83
jmp 0x479f06
shl eax, 4
lea edx, [ecx + eax]
mov dword [esp + 0x80], edx
mov edx, dword [esp + 0x80]
test byte [edx], al
mov ebx, dword [edx]
mov edx, dword [edx + 4]
mov dword [esp + 0xbc], ebx
mov dword [esp + 0xc0], edx
mov edx, dword [esp + 0x80]
test byte [edx], al
mov edx, dword [edx + 8]
mov dword [esp + 0xc4], edx
mov dword [esp + 0xc8], 0
mov dword [esp + 0xcc], 0x80000000
mov edx, dword [esp + 0xb0]
test byte [edx], al
mov edx, dword [edx + 0x18]
mov dword [esp + 0x50], edx
test edx, edx
jg 0x479aeb
jmp 0x479b18
mov edx, dword [esp + 0xb0]
test byte [edx], al
mov ecx, dword [edx + 0x18]
mov edx, dword [edx + 0x14]
test ecx, ecx
ja 0x479b03
jmp 0x479eff
mov eax, dword [edx]
mov ecx, dword [edx + 4]
mov dword [esp + 0xd0], eax
mov dword [esp + 0xd4], ecx
jmp 0x479b30
mov dword [esp + 0xd0], 0xffffffff
mov dword [esp + 0xd4], 0x7fffffff
jmp 0x479b30
mov eax, dword [esp + 0x80]
test byte [eax], al
movzx eax, byte [eax + 0xc]
mov byte [esp + 0xd8], al
add esp, 0xac
ret
jmp 0x479b4d
mov edx, dword [esp + 0xb0]
test byte [edx], al
mov ebx, dword [edx + 0x14]
mov ebp, dword [edx + 0x18]
mov edx, dword [edx + 0x1c]
mov dword [esp + 0xa0], ebx
mov dword [esp + 0xa4], ebp
mov dword [esp + 0xa8], edx
mov dword [esp + 0xd0], 0xffffffff
mov dword [esp + 0xd4], 0x7fffffff
mov dword [esp + 0x44], 0
mov edx, dword [esp + 0xa4]
mov dword [esp + 0x48], edx
jmp 0x479b9f
mov edx, dword [esp + 0x48]
sub edx, dword [esp + 0x44]
cmp edx, 1
jg 0x479bb1
jmp 0x479c52
mov edx, dword [esp + 0x48]
sub edx, dword [esp + 0x44]
mov ebx, edx
shr edx, 0x1f
lea eax, [ebx + edx]
sar eax, 1
add eax, dword [esp + 0x44]
mov dword [esp + 0x40], eax
mov edx, dword [esp + 0xa0]
mov ecx, dword [esp + 0xa4]
cmp ecx, eax
ja 0x479be2
jmp 0x479efa
lea ebx, [eax + eax*2]
lea ebp, [edx + ebx*4]
mov ebp, dword [ebp + 4]
lea edx, [edx + ebx*4]
mov edx, dword [edx]
mov dword [esp + 0x54], edx
mov dword [esp + 0x58], ebp
mov ebx, dword [esp + 0xb8]
cmp ebx, ebp
xchg esi, ebx
setl bl
xchg esi, ebx
cmp ebx, ebp
sete bl
mov edi, dword [esp + 0xb4]
cmp edi, edx
xchg edi, ebx
setb bl
xchg edi, ebx
and ebx, edi
or esi, ebx
xchg esi, eax
test al, al
xchg esi, eax
jne 0x479c29
jmp 0x479c41
mov dword [esp + 0xd0], edx
mov dword [esp + 0xd4], ebp
mov edx, dword [esp + 0x40]
mov dword [esp + 0x48], edx
jmp 0x479c4b
mov edx, dword [esp + 0x40]
mov dword [esp + 0x44], edx
jmp 0x479c4b
jmp 0x479c4d
jmp 0x479b9f
mov edx, dword [esp + 0xb0]
test byte [edx], al
mov ebx, dword [edx + 8]
mov ecx, dword [edx + 0xc]
mov eax, dword [esp + 0x44]
mov edx, dword [esp + 0xa4]
mov ebp, dword [esp + 0xa0]
cmp eax, edx
jb 0x479c7c
jmp 0x479ef3
lea edx, [eax + eax*2]
lea edx, [ebp + edx*4 + 8]
movzx eax, byte [edx]
cmp ecx, eax
ja 0x479c8f
jmp 0x479eee
shl eax, 4
lea edx, [ebx + eax]
mov dword [esp + 0x7c], edx
test byte [edx], al
add ebx, eax
mov ebx, dword [ebx]
mov edx, dword [edx + 4]
mov dword [esp + 0xbc], ebx
mov dword [esp + 0xc0], edx
mov edx, dword [esp + 0x7c]
test byte [edx], al
mov edx, dword [edx + 8]
mov dword [esp + 0xc4], edx
mov eax, dword [esp + 0x44]
mov edx, dword [esp + 0xa0]
mov ecx, dword [esp + 0xa4]
cmp eax, ecx
jb 0x479cdb
jmp 0x479ee9
lea eax, [eax + eax*2]
lea ecx, [edx + eax*4]
lea eax, [edx + eax*4]
mov eax, dword [eax]
mov ecx, dword [ecx + 4]
mov dword [esp + 0xc8], eax
mov dword [esp + 0xcc], ecx
mov eax, dword [esp + 0x7c]
test byte [eax], al
movzx eax, byte [eax + 0xc]
mov byte [esp + 0xd8], al
mov eax, dword [esp + 0xa4]
mov dword [esp + 0x50], eax
dec eax
cmp dword [esp + 0x44], eax
sete al
mov byte [esp + 0x3e], al
je 0x479d23
jmp 0x479d3a
mov eax, dword [esp + 0xb0]
test byte [eax], al
mov eax, dword [eax + 0x24]
test eax, eax
setne al
mov byte [esp + 0x3e], al
jmp 0x479d3c
jmp 0x479d3c
movzx eax, byte [esp + 0x3e]
test al, al
jne 0x479d4a
jmp 0x479ee0
mov dword [esp + 0x98], 0
mov dword [esp + 0x9c], 0
mov eax, dword [esp + 0xb0]
test byte [eax], al
mov ecx, dword [eax + 0x20]
mov eax, dword [eax + 0x24]
mov dword [esp + 0x90], ecx
mov dword [esp + 0x94], eax
mov edx, dword [esp + 0xd0]
mov ebx, dword [esp + 0xb4]
mov ebp, dword [esp + 0xd4]
mov esi, dword [esp + 0xb8]
mov dword [esp], ecx
mov dword [esp + 4], eax
mov dword [esp + 0xc], ebp
mov dword [esp + 8], edx
mov dword [esp + 0x14], esi
mov dword [esp + 0x10], ebx
call fcn.0047a1b0
mov eax, dword [esp + 0x20]
movzx ecx, byte [esp + 0x34]
mov byte [esp + 0x3d], cl
movzx edx, byte [esp + 0x35]
mov byte [esp + 0x3c], dl
mov ebx, dword [esp + 0x18]
mov ebp, dword [esp + 0x1c]
mov esi, dword [esp + 0x24]
mov edi, dword [esp + 0x28]
mov edx, dword [esp + 0x2c]
mov ecx, dword [esp + 0x30]
mov dword [esp + 0x98], ebx
mov dword [esp + 0x9c], ebp
mov dword [esp + 0x50], eax
mov dword [esp + 0x78], edi
mov dword [esp + 0x74], esi
mov dword [esp + 0x70], ecx
mov dword [esp + 0x6c], edx
movzx eax, byte [esp + 0x3d]
mov byte [esp + 0x3f], al
movzx eax, byte [esp + 0x3c]
mov byte [esp + 0x3e], al
mov eax, dword [esp + 0x98]
mov ecx, dword [esp + 0x9c]
mov dword [esp + 0x88], eax
mov dword [esp + 0x8c], ecx
mov eax, dword [esp + 0x50]
mov dword [esp + 0x4c], eax
mov eax, dword [esp + 0x74]
mov ecx, dword [esp + 0x78]
mov dword [esp + 0x5c], eax
mov dword [esp + 0x60], ecx
mov eax, dword [esp + 0x6c]
mov ecx, dword [esp + 0x70]
mov dword [esp + 0x64], eax
mov dword [esp + 0x68], ecx
movzx eax, byte [esp + 0x3f]
mov byte [esp + 0x3b], al
movzx eax, byte [esp + 0x3e]
mov byte [esp + 0x3a], al
movzx eax, byte [esp + 0x3a]
test al, al
jne 0x479e78
jmp 0x479ede
mov eax, dword [esp + 0x88]
mov ecx, dword [esp + 0x8c]
mov dword [esp + 0xbc], eax
mov dword [esp + 0xc0], ecx
mov eax, dword [esp + 0x4c]
mov dword [esp + 0xc4], eax
mov eax, dword [esp + 0x5c]
mov ecx, dword [esp + 0x60]
mov dword [esp + 0xc8], eax
mov dword [esp + 0xcc], ecx
mov eax, dword [esp + 0x64]
mov ecx, dword [esp + 0x68]
mov dword [esp + 0xd0], eax
mov dword [esp + 0xd4], ecx
movzx eax, byte [esp + 0x3b]
mov byte [esp + 0xd8], al
add esp, 0xac
ret
jmp 0x479ee2
jmp 0x479ee2
add esp, 0xac
ret
call fcn.0045d960
call fcn.0045d960
mov ecx, edx
call fcn.0045d960
call fcn.0045d960
xor eax, eax
call fcn.0045d960
mov ecx, edx
call fcn.0045d960
xor eax, eax
call fcn.0045d960
nop
call fcn.0045c4a0
jmp fcn.004797a0