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

Disassembly:
mov ecx, dword fs:[0x14]
mov ecx, dword [ecx]
cmp esp, dword [ecx + 8]
jbe 0x4670fb
add esp, 0xffffff80
mov edx, dword [esp + 0x9c]
test edx, edx
sete bl
mov ebp, dword [esp + 0x98]
test ebp, ebp
xchg esi, ebx
sete bl
xchg esi, ebx
and ebx, esi
test bl, bl
je 0x46684f
xor eax, eax
jmp 0x466856
mov eax, dword [esp + 0xa0]
mov ebx, dword [esp + 0xa4]
mov ebx, dword [ebx]
lea ecx, [ebx - 0x3c]
neg ecx
cmp ecx, 0x20
sbb ebx, ebx
lea esi, [ecx - 0x20]
mov dword [esp + 0x60], esi
cmp esi, 0x20
sbb edi, edi
xchg esi, ebx
neg ebx
xchg esi, ebx
mov dword [esp + 0x5c], esi
cmp esi, 0x20
sbb esi, esi
shl edx, cl
shl ebp, cl
and ebp, ebx
mov dword [esp + 0x58], ebp
mov ecx, dword [esp + 0x60]
mov ebp, dword [esp + 0x98]
shl ebp, cl
and ebp, edi
mov ecx, dword [esp + 0x5c]
mov edi, dword [esp + 0x98]
shr edi, cl
and edi, esi
and edx, ebx
or edx, edi
or edx, ebp
mov ebx, dword [esp + 0x58]
jmp 0x4668c6
shl edx, 1
mov ebp, ebx
shr ebx, 0x1f
or edx, ebx
shl ebp, 1
dec eax
mov ebx, ebp
test edx, edx
xchg ebp, ebx
setne bl
xchg ebp, ebx
test ebx, ebx
xchg esi, ebx
setne bl
xchg esi, ebx
or ebp, esi
xchg ebp, eax
test al, al
xchg ebp, eax
je 0x4668f6
test edx, 0x10000000
xchg ebp, ebx
sete bl
xchg ebp, ebx
and ebp, 1
xchg ebp, eax
test al, al
xchg ebp, eax
jne 0x4668b8
mov ebp, dword [esp + 0x90]
cmp ebp, 0xf
jae 0x466a7f
mov dword [esp + 0x54], edx
mov dword [esp + 0x50], ebx
shl ebp, 2
mov dword [esp + 0x4c], ebp
cmp ebp, 0x20
sbb edi, edi
mov dword [esp + 0x60], edi
lea ecx, [ebp - 0x20]
mov dword [esp + 0x5c], ecx
neg ecx
mov dword [esp + 0x58], ecx
cmp ecx, 0x20
sbb esi, esi
mov edi, dword [esp + 0x5c]
cmp edi, 0x20
sbb edx, edx
mov dword [esp + 0x5c], edx
lea edx, [ebp - 0x3c]
neg edx
mov dword [esp + 0x48], edx
cmp edx, 0x20
sbb ebp, ebp
mov dword [esp + 0x44], ebp
lea ebp, [edx - 0x20]
mov dword [esp + 0x40], ebp
xchg ebp, ebx
neg ebx
xchg ebp, ebx
mov dword [esp + 0x3c], ebp
cmp ebp, 0x20
sbb edx, edx
mov dword [esp + 0x38], edx
mov edx, dword [esp + 0x40]
cmp edx, 0x20
sbb edx, edx
mov dword [esp + 0x34], edx
mov ecx, edi
mov edi, ebx
shl ebx, cl
mov ecx, dword [esp + 0x58]
shr edi, cl
and edi, esi
mov ecx, dword [esp + 0x4c]
mov esi, dword [esp + 0x54]
shl esi, cl
mov edx, dword [esp + 0x60]
and esi, edx
mov ebp, dword [esp + 0x5c]
and ebp, ebx
or esi, edi
or esi, ebp
and esi, 0xfffffff
cmp esi, 0x8000000
seta bl
mov byte [esp + 0x27], bl
xchg ebp, ebx
sete bl
xchg ebp, ebx
xchg ebp, eax
mov byte [esp + 0x26], al
xchg ebp, eax
mov esi, dword [esp + 0x50]
mov edi, esi
shl esi, cl
and esi, edx
mov ecx, dword [esp + 0x3c]
mov edx, dword [esp + 0x54]
shl edx, cl
mov ebx, dword [esp + 0x38]
and edx, ebx
mov ecx, dword [esp + 0x40]
mov ebx, dword [esp + 0x54]
shr ebx, cl
mov ebp, dword [esp + 0x34]
and ebx, ebp
mov ecx, dword [esp + 0x48]
shr edi, cl
mov ebp, dword [esp + 0x44]
and edi, ebp
or edx, edi
or edx, ebx
mov ebx, edx
and edx, 1
or edx, esi
test edx, edx
seta dl
mov esi, dword [esp + 0x54]
shr esi, cl
and esi, ebp
movzx edi, byte [esp + 0x26]
and edi, edx
movzx edx, byte [esp + 0x27]
or edi, edx
xchg edi, eax
test al, al
xchg edi, eax
je 0x466a26
add ebx, 1
adc esi, 0
mov edx, ecx
mov ecx, dword [esp + 0x3c]
mov edi, ebx
shr ebx, cl
mov ecx, edi
mov edi, dword [esp + 0x38]
and ebx, edi
mov edi, ecx
mov ecx, edx
shl esi, cl
and esi, ebp
or ebx, esi
mov ecx, dword [esp + 0x40]
mov esi, edi
shl edi, cl
mov ecx, ebp
mov ebp, dword [esp + 0x34]
and edi, ebp
or edi, ebx
mov ebx, ecx
mov ecx, edx
shl esi, cl
and esi, ebx
test edi, 0x20000000
je 0x466a72
shr esi, 1
mov ecx, edi
shl edi, 0x1f
or esi, edi
shr ecx, 1
inc eax
jmp 0x466a74
mov ecx, edi
mov ebp, dword [esp + 0x90]
mov edx, ecx
mov ebx, esi
movzx ecx, byte [esp + 0x94]
cmp cl, 0x58
jne 0x466a94
lea esi, [0x4b44d7]
jmp 0x466a9a
lea esi, [0x4b44e7]
mov dword [esp + 0x74], esi
mov dword [esp + 0x4c], eax
mov dword [esp + 0x60], edx
mov dword [esp + 0x5c], ebx
movzx edi, byte [esp + 0x95]
xchg edi, eax
test al, al
xchg edi, eax
je 0x466b45
mov edi, dword [esp + 0x88]
inc edi
mov esi, dword [esp + 0x8c]
cmp esi, edi
jb 0x466ae4
mov dword [esp + 0x6c], eax
mov eax, dword [esp + 0x84]
mov dword [esp + 0x7c], eax
mov eax, dword [esp + 0x6c]
jmp 0x466b3a
mov eax, dword [esp + 0x84]
mov dword [esp], eax
mov dword [esp + 4], edi
mov dword [esp + 8], esi
mov dword [esp + 0xc], 1
lea eax, [0x4a5860]
mov dword [esp + 0x10], eax
call fcn.00446c30
mov eax, dword [esp + 0x14]
mov edi, dword [esp + 0x18]
mov ecx, dword [esp + 0x1c]
mov edx, dword [esp + 0x60]
mov ebx, dword [esp + 0x5c]
mov ebp, dword [esp + 0x90]
mov dword [esp + 0x7c], eax
mov esi, ecx
mov eax, dword [esp + 0x4c]
movzx ecx, byte [esp + 0x94]
mov ebp, dword [esp + 0x7c]
mov byte [edi + ebp - 1], 0x2d
jmp 0x466b5a
mov esi, dword [esp + 0x8c]
mov ebp, dword [esp + 0x84]
mov edi, dword [esp + 0x88]
add edi, 3
cmp esi, edi
jae 0x466ba3
mov dword [esp], ebp
mov dword [esp + 4], edi
mov dword [esp + 8], esi
mov dword [esp + 0xc], 3
lea eax, [0x4a5860]
mov dword [esp + 0x10], eax
call fcn.00446c30
mov ebp, dword [esp + 0x14]
mov edi, dword [esp + 0x18]
mov esi, dword [esp + 0x1c]
mov eax, dword [esp + 0x4c]
movzx ecx, byte [esp + 0x94]
mov edx, dword [esp + 0x60]
mov ebx, 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 + 0x60]
shl edx, 4
shr ebx, 0x1c
or ebx, edx
mov dword [esp + 0x60], ebx
mov edx, dword [esp + 0x5c]
shl edx, 4
mov dword [esp + 0x5c], edx
mov ecx, dword [esp + 0x90]
test ecx, ecx
jge 0x466c48
test ebx, ebx
setne bl
test edx, edx
setne dl
or edx, ebx
test dl, dl
je 0x466c3e
lea ecx, [edi + 1]
cmp esi, ecx
jae 0x466c28
mov dword [esp], ebp
mov dword [esp + 4], ecx
mov dword [esp + 8], esi
mov dword [esp + 0xc], 1
lea eax, [0x4a5860]
mov dword [esp + 0x10], eax
call fcn.00446c30
mov ebp, dword [esp + 0x14]
mov ecx, dword [esp + 0x18]
mov esi, dword [esp + 0x1c]
mov eax, dword [esp + 0x4c]
mov byte [ecx + ebp - 1], 0x2e
mov edi, dword [esp + 0x74]
mov edx, dword [esp + 0x5c]
mov ebx, dword [esp + 0x60]
jmp 0x46706b
test ecx, ecx
mov edx, dword [esp + 0x5c]
mov ebx, dword [esp + 0x60]
jle 0x466ca8
inc edi
cmp esi, edi
jae 0x466c90
mov dword [esp], ebp
mov dword [esp + 4], edi
mov dword [esp + 8], esi
mov dword [esp + 0xc], 1
lea eax, [0x4a5860]
mov dword [esp + 0x10], eax
call fcn.00446c30
mov ebp, dword [esp + 0x14]
mov edi, dword [esp + 0x18]
mov esi, dword [esp + 0x1c]
mov eax, dword [esp + 0x4c]
mov ecx, dword [esp + 0x90]
mov edx, dword [esp + 0x5c]
mov ebx, dword [esp + 0x60]
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 0x466fe5
movzx ecx, byte [esp + 0x94]
mov edx, ecx
or ecx, 0x20
cmp dl, cl
jne 0x466cc0
mov ecx, 0x70
jmp 0x466cc5
mov ecx, 0x50
lea edx, [edi + 1]
cmp esi, edx
jae 0x466d07
mov byte [esp + 0x23], cl
mov dword [esp], ebp
mov dword [esp + 4], edx
mov dword [esp + 8], esi
mov dword [esp + 0xc], 1
lea eax, [0x4a5860]
mov dword [esp + 0x10], eax
call fcn.00446c30
mov ebp, dword [esp + 0x14]
mov edx, dword [esp + 0x18]
mov esi, dword [esp + 0x1c]
mov eax, dword [esp + 0x4c]
movzx ecx, byte [esp + 0x23]
mov byte [edx + ebp - 1], cl
test eax, eax
jge 0x466d18
neg eax
mov ecx, 0x2d
jmp 0x466d1d
mov ecx, 0x2b
mov dword [esp + 0x4c], eax
inc edx
cmp esi, edx
jae 0x466d61
mov byte [esp + 0x23], cl
mov dword [esp], ebp
mov dword [esp + 4], edx
mov dword [esp + 8], esi
mov dword [esp + 0xc], 1
lea eax, [0x4a5860]
mov dword [esp + 0x10], eax
call fcn.00446c30
mov ebp, dword [esp + 0x14]
mov edx, dword [esp + 0x18]
mov esi, dword [esp + 0x1c]
mov eax, dword [esp + 0x4c]
movzx ecx, byte [esp + 0x23]
mov byte [edx + ebp - 1], cl
cmp eax, 0x64
jge 0x466de0
lea ecx, [edx + 2]
mov edx, eax
mov eax, 0xcccccccd
mov ebx, edx
imul edx
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 0x466dcd
mov dword [esp + 0x4c], edx
mov dword [esp + 0x30], edi
mov dword [esp], ebp
mov dword [esp + 4], ecx
mov dword [esp + 8], esi
mov dword [esp + 0xc], 2
lea eax, [0x4a5860]
mov dword [esp + 0x10], eax
call fcn.00446c30
mov ebp, dword [esp + 0x14]
mov ecx, dword [esp + 0x18]
mov esi, dword [esp + 0x1c]
mov edx, dword [esp + 0x4c]
mov edi, dword [esp + 0x30]
lea eax, [edx + 0x30]
mov byte [ecx + ebp - 2], al
lea eax, [edi + 0x30]
mov byte [ecx + ebp - 1], al
jmp 0x466f9f
cmp eax, 0x3e8
jge 0x466ea5
lea ecx, [edx + 3]
mov edx, eax
mov eax, 0xcccccccd
mov ebx, edx
imul edx
add edx, ebx
mov edi, edx
sar edx, 3
mov dword [esp + 0x30], edx
mov eax, 0xcccccccd
imul edx
sar edi, 0x1f
mov eax, ebp
mov ebp, dword [esp + 0x30]
add edx, ebp
sar edx, 3
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 + 0x30], ebx
cmp esi, ecx
jae 0x466e75
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, [0x4a5860]
mov dword [esp + 0x10], eax
call fcn.00446c30
mov ebp, dword [esp + 0x14]
mov ecx, dword [esp + 0x18]
mov esi, dword [esp + 0x1c]
mov ebx, dword [esp + 0x30]
mov edi, dword [esp + 0x4c]
mov eax, ebp
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 + 0x30]
add edx, 0x30
mov byte [ecx + edi - 1], dl
mov ebp, edi
jmp 0x466f9f
mov dword [esp + 0x78], ebp
lea ecx, [edx + 4]
mov edx, 0x51eb851f
imul edx
sar edx, 5
movzx ebx, dl
imul ebx, ebx, 0x19a
shr ebx, 0xc
lea ebx, [ebx + ebx*4]
shl ebx, 1
sub edx, ebx
mov byte [esp + 0x25], dl
mov eax, 0xcccccccd
mov ebx, dword [esp + 0x4c]
mov edi, edx
imul ebx
add edx, ebx
mov dword [esp + 0x30], edx
sar edx, 3
mov dword [esp + 0x2c], edx
mov eax, 0xcccccccd
imul edx
mov eax, edi
mov edi, dword [esp + 0x2c]
add edx, edi
sar edx, 3
mov ebp, dword [esp + 0x30]
sar ebp, 0x1f
sub edx, ebp
lea edx, [edx + edx*4]
shl edx, 1
mov ebp, edi
sub edi, edx
lea edx, [ebp + ebp*4]
shl edx, 1
mov ebp, ebx
sub ebx, edx
cmp esi, ecx
jb 0x466f1f
mov edx, dword [esp + 0x78]
jmp 0x466f6c
mov dword [esp + 0x30], edi
mov dword [esp + 0x2c], ebx
mov eax, dword [esp + 0x78]
mov dword [esp], eax
mov dword [esp + 4], ecx
mov dword [esp + 8], esi
mov dword [esp + 0xc], 4
lea eax, [0x4a5860]
mov dword [esp + 0x10], eax
call fcn.00446c30
mov ebp, dword [esp + 0x14]
mov ecx, dword [esp + 0x18]
mov esi, dword [esp + 0x1c]
movzx eax, byte [esp + 0x25]
mov ebx, dword [esp + 0x2c]
mov edi, dword [esp + 0x30]
mov edx, ebp
mov ebp, dword [esp + 0x4c]
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, [edi + 0x30]
mov byte [ecx + ebp - 2], dl
lea edx, [ebx + 0x30]
mov byte [ecx + ebp - 1], dl
mov dword [esp + 0xa8], ebp
mov dword [esp + 0xac], ecx
mov dword [esp + 0xb0], esi
sub esp, 0xffffff80
ret
mov byte [edi + ebp - 1], bl
inc edx
mov ebx, dword [esp + 0x5c]
shl ebx, 4
mov eax, dword [esp + 0x60]
shr eax, 0x1c
or ebx, eax
mov eax, dword [esp + 0x60]
shl eax, 4
mov ecx, dword [esp + 0x90]
mov dword [esp + 0x28], edx
mov edx, eax
mov eax, dword [esp + 0x4c]
mov dword [esp + 0x60], edx
mov edx, dword [esp + 0x28]
cmp ecx, edx
jle 0x466ca8
mov dword [esp + 0x5c], ebx
inc edi
shr ebx, 0x1c
and ebx, 0xf
mov ecx, dword [esp + 0x74]
movzx ebx, byte [ecx + ebx]
cmp esi, edi
jae 0x466fb8
mov byte [esp + 0x24], bl
mov dword [esp], ebp
mov dword [esp + 4], edi
mov dword [esp + 8], esi
mov dword [esp + 0xc], 1
lea eax, [0x4a5860]
mov dword [esp + 0x10], eax
call fcn.00446c30
mov ebp, dword [esp + 0x14]
mov edi, dword [esp + 0x18]
mov esi, dword [esp + 0x1c]
mov eax, dword [esp + 0x4c]
mov ecx, dword [esp + 0x74]
mov edx, dword [esp + 0x28]
movzx ebx, byte [esp + 0x24]
jmp 0x466fb8
mov byte [ecx + ebp - 1], bl
shl edx, 4
mov ebx, dword [esp + 0x60]
shr ebx, 0x1c
or ebx, edx
mov edx, dword [esp + 0x60]
shl edx, 4
mov dword [esp + 0x60], edx
mov dword [esp + 0x7c], ebp
test ebx, ebx
xchg ebp, ebx
setne bl
xchg ebp, ebx
test edx, edx
setne dl
or ebp, edx
xchg ebp, eax
test al, al
xchg ebp, eax
je 0x4670f0
inc ecx
mov edx, ebx
shr ebx, 0x1c
and ebx, 0xf
movzx ebx, byte [edi + ebx]
cmp esi, ecx
jb 0x4670a0
mov ebp, dword [esp + 0x7c]
jmp 0x467054
mov dword [esp + 0x5c], edx
mov byte [esp + 0x24], bl
mov eax, dword [esp + 0x7c]
mov dword [esp], eax
mov dword [esp + 4], ecx
mov dword [esp + 8], esi
mov dword [esp + 0xc], 1
lea eax, [0x4a5860]
mov dword [esp + 0x10], eax
call fcn.00446c30
mov ebp, dword [esp + 0x14]
mov ecx, dword [esp + 0x18]
mov esi, dword [esp + 0x1c]
mov eax, dword [esp + 0x4c]
mov edx, dword [esp + 0x5c]
movzx ebx, byte [esp + 0x24]
mov edi, dword [esp + 0x74]
jmp 0x467054
mov ebp, dword [esp + 0x7c]
mov edi, ecx
jmp 0x466ca8
call fcn.0045c480
jmp fcn.00466810