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

Disassembly:
mov ecx, dword fs:[0x14]
mov ecx, dword [ecx]
cmp esp, dword [ecx + 8]
jbe 0x491d14
add esp, 0xffffff80
mov eax, dword [esp + 0x9c]
test eax, eax
sete dl
mov ebx, dword [esp + 0x98]
test ebx, ebx
xchg ebp, ebx
sete bl
xchg ebp, ebx
and edx, ebp
test dl, dl
je 0x49145f
xor ecx, ecx
jmp 0x491466
mov ecx, dword [esp + 0xa0]
mov dword [esp + 0x60], ecx
mov edx, dword [esp + 0xa4]
mov edx, dword [edx]
add edx, 0xffffffc4
neg edx
cmp edx, 0x20
sbb ebp, ebp
lea esi, [edx - 0x20]
mov dword [esp + 0x5c], esi
cmp esi, 0x20
sbb edi, edi
mov dword [esp + 0x58], edi
xchg esi, ebx
neg ebx
xchg esi, ebx
cmp esi, 0x20
sbb edi, edi
mov ecx, edx
shl eax, cl
mov ecx, esi
mov esi, ebx
shr ebx, cl
and ebx, edi
and eax, ebp
or eax, ebx
mov ecx, edx
mov edx, esi
shl esi, cl
and esi, ebp
mov ecx, dword [esp + 0x5c]
shl edx, cl
mov ebx, dword [esp + 0x58]
and edx, ebx
or edx, eax
mov eax, dword [esp + 0x60]
jmp 0x4914d2
shl edx, 1
mov ebx, esi
shr esi, 0x1f
or edx, esi
shl ebx, 1
dec eax
mov esi, ebx
test edx, edx
setne bl
test esi, esi
xchg ebp, ebx
setne bl
xchg ebp, ebx
or ebx, ebp
test bl, bl
je 0x4914f6
test edx, 0x10000000
sete bl
and ebx, 1
test bl, bl
jne 0x4914c4
mov ebx, dword [esp + 0x90]
cmp ebx, 0xf
jae 0x49166f
mov dword [esp + 0x54], edx
mov dword [esp + 0x50], esi
mov dword [esp + 0x4c], eax
shl ebx, 2
cmp ebx, 0x20
sbb edi, edi
mov dword [esp + 0x5c], edi
lea ecx, [ebx - 0x20]
mov dword [esp + 0x58], ecx
neg ecx
cmp ecx, 0x20
sbb ebp, ebp
mov eax, dword [esp + 0x58]
cmp eax, 0x20
sbb eax, eax
mov dword [esp + 0x48], eax
lea eax, [ebx - 0x3c]
neg eax
mov dword [esp + 0x44], eax
cmp eax, 0x20
sbb edi, edi
mov dword [esp + 0x40], edi
lea edi, [eax - 0x20]
mov dword [esp + 0x3c], edi
cmp edi, 0x20
sbb eax, eax
mov dword [esp + 0x38], eax
xchg edi, ebx
neg ebx
xchg edi, ebx
mov dword [esp + 0x34], edi
cmp edi, 0x20
sbb edi, edi
mov dword [esp + 0x30], edi
shr esi, cl
and esi, ebp
mov ecx, ebx
mov ebp, edx
shl edx, cl
mov edi, dword [esp + 0x5c]
and edx, edi
or edx, esi
mov ecx, dword [esp + 0x58]
mov esi, dword [esp + 0x50]
shl esi, cl
mov ecx, eax
mov eax, dword [esp + 0x48]
and eax, esi
or eax, edx
and eax, 0xfffffff
cmp eax, 0x8000000
seta al
mov byte [esp + 0x27], al
sete dl
mov byte [esp + 0x26], dl
mov esi, ecx
mov ecx, ebx
mov eax, dword [esp + 0x50]
mov ebx, eax
shl eax, cl
and eax, edi
mov ecx, dword [esp + 0x44]
shr ebx, cl
mov edi, dword [esp + 0x40]
and ebx, edi
mov ecx, dword [esp + 0x3c]
shr ebp, cl
and ebp, esi
mov ecx, dword [esp + 0x34]
mov esi, dword [esp + 0x54]
shl esi, cl
mov edx, dword [esp + 0x30]
and esi, edx
or esi, ebx
or esi, ebp
mov ebx, esi
and esi, 1
or esi, eax
test esi, esi
seta al
mov ebp, ecx
mov ecx, dword [esp + 0x44]
mov esi, dword [esp + 0x54]
shr esi, cl
and esi, edi
movzx edi, byte [esp + 0x26]
and edi, eax
movzx eax, byte [esp + 0x27]
or edi, eax
xchg edi, eax
test al, al
xchg edi, eax
je 0x491616
add ebx, 1
adc esi, 0
mov eax, ecx
mov ecx, ebp
mov edi, ebx
shr ebx, cl
and ebx, edx
mov ecx, eax
shl esi, cl
mov edx, dword [esp + 0x40]
and esi, edx
or ebx, esi
mov ecx, dword [esp + 0x3c]
mov ebp, edi
shl edi, cl
mov esi, dword [esp + 0x38]
and edi, esi
or edi, ebx
mov ecx, eax
shl ebp, cl
and ebp, edx
test edi, 0x20000000
je 0x49165e
shr ebp, 1
mov ecx, edi
shl edi, 0x1f
or ebp, edi
shr ecx, 1
mov edx, dword [esp + 0x4c]
lea eax, [edx + 1]
jmp 0x491664
mov ecx, edi
mov eax, dword [esp + 0x4c]
mov ebx, dword [esp + 0x90]
mov esi, ebp
mov edx, ecx
movzx ecx, byte [esp + 0x94]
cmp cl, 0x58
jne 0x491684
lea ebp, [0x5142b9]
jmp 0x49168a
lea ebp, [0x5142c9]
mov dword [esp + 0x5c], esi
mov dword [esp + 0x74], ebp
mov dword [esp + 0x60], eax
mov dword [esp + 0x58], edx
movzx edi, byte [esp + 0x95]
xchg edi, eax
test al, al
xchg edi, eax
je 0x491735
mov edi, dword [esp + 0x88]
inc edi
mov eax, dword [esp + 0x8c]
cmp eax, edi
jb 0x4916d4
mov dword [esp + 0x6c], eax
mov eax, dword [esp + 0x84]
mov dword [esp + 0x7c], eax
mov eax, dword [esp + 0x6c]
jmp 0x49172a
mov ecx, dword [esp + 0x84]
mov dword [esp], ecx
mov dword [esp + 4], edi
mov dword [esp + 8], eax
mov dword [esp + 0xc], 1
lea eax, [0x4f9460]
mov dword [esp + 0x10], eax
call fcn.0044f980
mov eax, dword [esp + 0x14]
mov edi, dword [esp + 0x18]
mov ecx, dword [esp + 0x1c]
mov edx, dword [esp + 0x58]
mov ebx, dword [esp + 0x90]
mov ebp, dword [esp + 0x74]
mov esi, dword [esp + 0x5c]
mov dword [esp + 0x7c], eax
mov eax, ecx
movzx ecx, byte [esp + 0x94]
mov ebp, dword [esp + 0x7c]
mov byte [edi + ebp - 1], 0x2d
jmp 0x49174a
mov eax, dword [esp + 0x8c]
mov ebp, dword [esp + 0x84]
mov edi, dword [esp + 0x88]
add edi, 3
cmp eax, edi
jae 0x491796
mov dword [esp], ebp
mov dword [esp + 4], edi
mov dword [esp + 8], eax
mov dword [esp + 0xc], 3
lea eax, [0x4f9460]
mov dword [esp + 0x10], eax
call fcn.0044f980
mov ebp, dword [esp + 0x14]
mov edi, dword [esp + 0x18]
mov eax, dword [esp + 0x1c]
movzx ecx, byte [esp + 0x94]
mov edx, dword [esp + 0x58]
mov ebx, dword [esp + 0x90]
mov esi, dword [esp + 0x5c]
mov byte [edi + ebp - 3], 0x30
mov byte [edi + ebp - 2], cl
shr edx, 0x1c
and edx, 1
add edx, 0x30
mov byte [edi + ebp - 1], dl
mov edx, dword [esp + 0x58]
shl edx, 4
shr esi, 0x1c
or esi, edx
mov dword [esp + 0x58], esi
mov edx, dword [esp + 0x5c]
shl edx, 4
mov dword [esp + 0x5c], edx
test ebx, ebx
jge 0x491834
test esi, esi
setne cl
test edx, edx
setne dl
or edx, ecx
test dl, dl
je 0x491826
lea ecx, [edi + 1]
cmp eax, ecx
jae 0x491814
mov dword [esp], ebp
mov dword [esp + 4], ecx
mov dword [esp + 8], eax
mov dword [esp + 0xc], 1
lea eax, [0x4f9460]
mov dword [esp + 0x10], eax
call fcn.0044f980
mov ebp, dword [esp + 0x14]
mov ecx, dword [esp + 0x18]
mov eax, dword [esp + 0x1c]
mov esi, dword [esp + 0x58]
mov byte [ecx + ebp - 1], 0x2e
mov ebx, dword [esp + 0x74]
mov edx, dword [esp + 0x5c]
jmp 0x491c90
test ebx, ebx
movzx ecx, byte [esp + 0x94]
mov edx, dword [esp + 0x5c]
jle 0x491898
inc edi
cmp eax, edi
jae 0x491880
mov dword [esp], ebp
mov dword [esp + 4], edi
mov dword [esp + 8], eax
mov dword [esp + 0xc], 1
lea eax, [0x4f9460]
mov dword [esp + 0x10], eax
call fcn.0044f980
mov ebp, dword [esp + 0x14]
mov edi, dword [esp + 0x18]
mov eax, dword [esp + 0x1c]
movzx ecx, byte [esp + 0x94]
mov edx, dword [esp + 0x5c]
mov ebx, dword [esp + 0x90]
mov esi, dword [esp + 0x58]
mov byte [edi + ebp - 1], 0x2e
mov dword [esp + 0x64], eax
xor eax, eax
mov dword [esp + 0x28], eax
mov eax, dword [esp + 0x64]
jmp 0x491bfd
mov dword [esp + 0x7c], ebp
mov dword [esp + 0x4c], edi
mov dword [esp + 0x2c], eax
mov byte [esp], cl
call fcn.0048daf0
movzx eax, byte [esp + 0x94]
cmp byte [esp + 4], al
jne 0x4918c1
mov eax, 0x70
jmp 0x4918c6
mov eax, 0x50
mov ecx, dword [esp + 0x4c]
inc ecx
mov edx, dword [esp + 0x2c]
cmp edx, ecx
jb 0x4918d9
mov ebp, dword [esp + 0x7c]
jmp 0x491916
mov byte [esp + 0x23], al
mov eax, dword [esp + 0x7c]
mov dword [esp], eax
mov dword [esp + 4], ecx
mov dword [esp + 8], edx
mov dword [esp + 0xc], 1
lea eax, [0x4f9460]
mov dword [esp + 0x10], eax
call fcn.0044f980
mov ebp, dword [esp + 0x14]
mov ecx, dword [esp + 0x18]
mov eax, dword [esp + 0x1c]
mov edx, eax
movzx eax, byte [esp + 0x23]
mov byte [ecx + ebp - 1], al
mov ebx, dword [esp + 0x60]
test ebx, ebx
jge 0x49192b
neg ebx
mov eax, 0x2d
jmp 0x491930
mov eax, 0x2b
mov dword [esp + 0x60], ebx
inc ecx
cmp edx, ecx
jae 0x491974
mov byte [esp + 0x23], al
mov dword [esp], ebp
mov dword [esp + 4], ecx
mov dword [esp + 8], edx
mov dword [esp + 0xc], 1
lea eax, [0x4f9460]
mov dword [esp + 0x10], eax
call fcn.0044f980
mov ebp, dword [esp + 0x14]
mov ecx, dword [esp + 0x18]
mov edx, dword [esp + 0x1c]
movzx eax, byte [esp + 0x23]
mov ebx, dword [esp + 0x60]
mov byte [ecx + ebp - 1], al
cmp ebx, 0x64
jge 0x4919f3
add ecx, 2
mov eax, 0xcccccccd
mov esi, edx
imul ebx
add edx, ebx
sar edx, 3
mov edi, ebx
sar ebx, 0x1f
sub edx, ebx
lea ebx, [edx + edx*4]
shl ebx, 1
sub edi, ebx
cmp esi, ecx
jae 0x4919e0
mov dword [esp + 0x60], edx
mov dword [esp + 0x4c], edi
mov dword [esp], ebp
mov dword [esp + 4], ecx
mov dword [esp + 8], esi
mov dword [esp + 0xc], 2
lea eax, [0x4f9460]
mov dword [esp + 0x10], eax
call fcn.0044f980
mov ebp, dword [esp + 0x14]
mov ecx, dword [esp + 0x18]
mov edx, dword [esp + 0x1c]
mov edi, dword [esp + 0x4c]
mov esi, edx
mov edx, dword [esp + 0x60]
lea eax, [edx + 0x30]
mov byte [ecx + ebp - 2], al
lea eax, [edi + 0x30]
mov byte [ecx + ebp - 1], al
jmp 0x491bb7
cmp ebx, 0x3e8
jge 0x491ab9
add ecx, 3
mov eax, 0xcccccccd
mov esi, edx
imul ebx
add edx, ebx
mov edi, edx
sar edx, 3
mov dword [esp + 0x4c], edx
mov eax, 0xcccccccd
imul edx
mov eax, ebp
mov ebp, dword [esp + 0x4c]
add edx, ebp
sar edx, 3
sar edi, 0x1f
sub edx, edi
lea edx, [edx + edx*4]
shl edx, 1
mov edi, ebp
sub ebp, edx
lea edx, [edi + edi*4]
shl edx, 1
mov edi, ebx
sub ebx, edx
mov dword [esp + 0x4c], ebx
cmp esi, ecx
jae 0x491a89
mov dword [esp + 0x2c], ebp
mov dword [esp], eax
mov dword [esp + 4], ecx
mov dword [esp + 8], esi
mov dword [esp + 0xc], 3
lea eax, [0x4f9460]
mov dword [esp + 0x10], eax
call fcn.0044f980
mov ebp, dword [esp + 0x14]
mov ecx, dword [esp + 0x18]
mov edx, dword [esp + 0x1c]
mov ebx, dword [esp + 0x4c]
mov edi, dword [esp + 0x60]
mov eax, ebp
mov esi, edx
mov ebp, dword [esp + 0x2c]
mov edx, eax
mov eax, edi
mov ebx, 0x51eb851f
mov edi, edx
imul ebx
sar edx, 5
add edx, 0x30
mov byte [ecx + edi - 3], dl
lea edx, [ebp + 0x30]
mov byte [ecx + edi - 2], dl
mov edx, dword [esp + 0x4c]
add edx, 0x30
mov byte [ecx + edi - 1], dl
mov ebp, edi
jmp 0x491bb7
mov dword [esp + 0x78], ebp
add ecx, 4
mov eax, ebx
mov esi, 0x51eb851f
mov edi, edx
imul esi
sar edx, 5
movzx esi, dl
imul esi, esi, 0x19a
shr esi, 0xc
lea esi, [esi + esi*4]
shl esi, 1
sub edx, esi
mov byte [esp + 0x25], dl
mov eax, 0xcccccccd
mov esi, edx
imul ebx
add edx, ebx
mov dword [esp + 0x4c], edx
sar edx, 3
mov dword [esp + 0x2c], edx
mov eax, 0xcccccccd
imul edx
mov eax, esi
mov esi, dword [esp + 0x2c]
add edx, esi
sar edx, 3
mov ebp, dword [esp + 0x4c]
sar ebp, 0x1f
sub edx, ebp
lea edx, [edx + edx*4]
shl edx, 1
mov ebp, esi
sub esi, edx
lea edx, [ebp + ebp*4]
shl edx, 1
mov ebp, ebx
sub ebx, edx
cmp edi, ecx
jb 0x491b33
mov edx, dword [esp + 0x78]
jmp 0x491b82
mov dword [esp + 0x4c], esi
mov dword [esp + 0x2c], ebx
mov eax, dword [esp + 0x78]
mov dword [esp], eax
mov dword [esp + 4], ecx
mov dword [esp + 8], edi
mov dword [esp + 0xc], 4
lea eax, [0x4f9460]
mov dword [esp + 0x10], eax
call fcn.0044f980
mov ebp, dword [esp + 0x14]
mov ecx, dword [esp + 0x18]
mov edx, dword [esp + 0x1c]
movzx eax, byte [esp + 0x25]
mov ebx, dword [esp + 0x2c]
mov esi, dword [esp + 0x4c]
mov edi, edx
mov edx, ebp
mov ebp, dword [esp + 0x60]
mov dword [esp + 0x7c], edx
mov eax, 0x4189374c
imul ebp
sar edx, 8
add edx, 0x30
mov ebp, dword [esp + 0x7c]
mov byte [ecx + ebp - 4], dl
movzx edx, byte [esp + 0x25]
add edx, 0x30
mov byte [ecx + ebp - 3], dl
lea edx, [esi + 0x30]
mov byte [ecx + ebp - 2], dl
lea edx, [ebx + 0x30]
mov byte [ecx + ebp - 1], dl
mov esi, edi
mov dword [esp + 0xa8], ebp
mov dword [esp + 0xac], ecx
mov dword [esp + 0xb0], esi
sub esp, 0xffffff80
ret
xchg esi, eax
mov byte [edi + ebp - 1], al
xchg esi, eax
inc ecx
mov esi, dword [esp + 0x5c]
shl esi, 4
shr edx, 0x1c
or esi, edx
mov edx, dword [esp + 0x58]
shl edx, 4
mov ebx, dword [esp + 0x90]
mov dword [esp + 0x28], ecx
movzx ecx, byte [esp + 0x94]
mov ecx, dword [esp + 0x28]
cmp ebx, ecx
jle 0x491c6a
mov dword [esp + 0x5c], esi
mov dword [esp + 0x58], edx
inc edi
shr esi, 0x1c
and esi, 0xf
mov ebx, dword [esp + 0x74]
movzx esi, byte [ebx + esi]
cmp eax, edi
jae 0x491bd0
xchg esi, eax
mov byte [esp + 0x24], al
xchg esi, eax
mov dword [esp], ebp
mov dword [esp + 4], edi
mov dword [esp + 8], eax
mov dword [esp + 0xc], 1
lea eax, [0x4f9460]
mov dword [esp + 0x10], eax
call fcn.0044f980
mov ebp, dword [esp + 0x14]
mov edi, dword [esp + 0x18]
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x28]
mov edx, dword [esp + 0x58]
mov ebx, dword [esp + 0x74]
movzx esi, byte [esp + 0x24]
jmp 0x491bd0
movzx ecx, byte [esp + 0x94]
jmp 0x491898
xchg esi, eax
mov byte [ecx + ebp - 1], al
xchg esi, eax
shl edx, 4
mov esi, dword [esp + 0x5c]
mov edi, esi
shr esi, 0x1c
or esi, edx
shl edi, 4
mov edx, edi
mov dword [esp + 0x5c], edx
test esi, esi
xchg edi, ebx
setne bl
xchg edi, ebx
test edx, edx
setne dl
or edi, edx
xchg edi, eax
test al, al
xchg edi, eax
je 0x491d05
inc ecx
mov edx, esi
shr esi, 0x1c
and esi, 0xf
movzx esi, byte [ebx + esi]
cmp eax, ecx
jae 0x491c77
xchg esi, eax
mov byte [esp + 0x24], al
xchg esi, eax
mov dword [esp + 0x58], edx
mov dword [esp], ebp
mov dword [esp + 4], ecx
mov dword [esp + 8], eax
mov dword [esp + 0xc], 1
lea eax, [0x4f9460]
mov dword [esp + 0x10], eax
call fcn.0044f980
mov ebp, dword [esp + 0x14]
mov ecx, dword [esp + 0x18]
mov eax, dword [esp + 0x1c]
mov edx, dword [esp + 0x58]
mov ebx, dword [esp + 0x74]
movzx esi, byte [esp + 0x24]
jmp 0x491c77
mov edi, ecx
movzx ecx, byte [esp + 0x94]
jmp 0x491898
call fcn.00467570
jmp fcn.00491420