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

Disassembly:
and al, 0xb8
add byte [eax], al
add byte [eax], al
jne 0x4796c5
mov eax, dword [esp + 0x74]
mov edx, dword [esp + 0x7c]
add eax, dword [esp + 0x88]
add edx, edx
sub eax, edx
imul dword [esp + 0x58]
lea ecx, [eax + eax*8]
or al, 0xc0
test ecx, ecx
jl 0x47968b
mov eax, dword [esp + 0x6c]
mov edx, dword [esp + 0x6c]
shl eax, 7
shl edx, 8
add eax, ecx
mov ecx, edx
mov eax, dword [esp + 0x6c]
mov edx, dword [esp + 0x6c]
insb byte es:[edi], dx
shl eax, 7
shl edx, 8
sub eax, ecx
mov ecx, edx
cdq
idiv ecx
test ebx, ebx
jle 0x4796bb
mov ecx, ebx
mov edx, 1
shl edx, cl
cmp eax, edx
jl 0x4796bb
mov ecx, ebx
mov eax, 1
shl eax, cl
dec eax
neg eax
mov word [esp + 0xb8], ax
mov edx, dword [esp + 0x50]
mov ebx, dword [edx + 0x10]
test ebx, ebx
je 0x479770
cmp word [esp + 0xaa], 0
jne 0x479770
mov eax, dword [esp + 0x70]
sub eax, dword [esp + 0x78]
sub eax, dword [esp + 0x84]
test byte [esp + eax*4], ah
add byte [eax], al
add byte [ebx], al
test byte [esp + ecx*4], ah
add byte [eax], al
add bh, dh
insb byte es:[edi], dx
and al, 0x58
lea ecx, [eax + eax*4]
test ecx, ecx
jl 0x479736
mov eax, dword [esp + 0x68]
mov edx, dword [esp + 0x68]
shl eax, 7
shl edx, 8
add eax, ecx
mov ecx, edx
cdq
idiv ecx
test ebx, ebx
jle 0x479768
mov ecx, ebx
mov edx, 1
shl edx, cl
cmp eax, edx
jl 0x479768
mov ecx, ebx
mov eax, 1
shl eax, cl
dec eax
jmp 0x479768
mov eax, dword [esp + 0x68]
mov edx, dword [esp + 0x68]
shl eax, 7
shl edx, 8
sub eax, ecx
mov ecx, edx
cdq
idiv ecx
test ebx, ebx
jle 0x479766
pop ss
mov ecx, ebx
mov edx, 1
shl edx, cl
cmp eax, edx
jl 0x479766
mov ecx, ebx
mov eax, 1
shl eax, cl
dec eax
neg eax
mov word [esp + 0xaa], ax
mov edx, dword [esp + 0x50]
mov ebx, dword [edx + 0x14]
test ebx, ebx
je 0x479815
cmp word [esp + 0x9c], 0
jne 0x479815
add esi, dword [esp + 0x80]
mov eax, dword [esp + 0x7c]
add eax, eax
sub esi, eax
imul esi, dword [esp + 0x58]
lea ecx, [esi + esi*8]
test ecx, ecx
jl 0x4797db
mov eax, dword [esp + 0x60]
mov edx, dword [esp + 0x60]
shl eax, 7
shl edx, 8
add eax, ecx
mov ecx, edx
cdq
idiv ecx
test ebx, ebx
jle 0x47980d
mov ecx, ebx
mov edx, 1
shl edx, cl
cmp eax, edx
jl 0x47980d
mov ecx, ebx
mov eax, 1
mov eax, dword [esp + 0x60]
mov edx, dword [esp + 0x60]
shl eax, 7
shl edx, 8
sub eax, ecx
mov ecx, edx
cdq
idiv ecx
test ebx, ebx
jle 0x47980b
mov ecx, ebx
mov edx, 1
shl edx, cl
cmp eax, edx
jl 0x47980b
mov ecx, ebx
mov eax, 1
shl eax, cl
dec eax
neg eax
mov word [esp + 0x9c], ax
mov edx, dword [esp + 0x38]
push edx
mov eax, dword [esp + 0x40]
push eax
lea ecx, [esp + 0xa0]
mov edx, dword [esp + 0x48]
mov eax, dword [esp + 8]
call dword [esp + 0x4c]
mov edx, dword [esp + 0x74]
mov dword [esp + 0x70], edx
mov ecx, dword [esp + 0x78]
mov dword [esp + 0x74], ecx
mov esi, dword [esp + 0x7c]
mov eax, dword [esp + 0x80]
mov dword [esp + 0x7c], eax
mov edx, dword [esp + 0x88]
mov dword [esp + 0x84], edx
mov ecx, dword [esp + 0x8c]
mov dword [esp + 0x88], ecx
add dword [esp + 0x2c], 0x80
add dword [esp + 0x30], 0x80
add dword [esp + 0x34], 0x80
and al, 0x34
add byte [eax], 0
add byte [ebx - 0x74bfdbbc], cl
push eax
and al, 1
push esp
and al, 0x3c
inc dword [esp + 0x10]
mov ecx, dword [esp + 0x10]
cmp ecx, dword [esp + 0x14]
jbe 0x479484
mov eax, dword [esp + 0x40]
mov edx, dword [eax + 0x24]
shl edx, 2
add dword [esp + 0x38], edx
inc dword [esp + 0x1c]
add dword [esp + 0x94], 4
mov ecx, dword [esp + 0x1c]
cmp ecx, dword [esp + 0x20]
jl 0x4793be
inc dword [esp + 0x18]
add dword [esp + 0x40], 0x54
mov eax, dword [esp]
mov edx, dword [eax + 0x24]
cmp edx, dword [esp + 0x18]
jg 0x479212
mov ecx, dword [esp]
inc dword [ecx + 0x9c]
add byte [eax], al