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

Disassembly:
mov ecx, dword fs:[0x14]
mov ecx, dword [ecx]
lea eax, [esp - 0x58]
cmp eax, dword [ecx + 8]
jbe 0x46beb2
sub esp, 0xd8
mov edx, dword [esp + 0xe0]
test edx, edx
sete bl
mov ebp, dword [esp + 0xe4]
test ebp, ebp
xchg esi, ebx
sete bl
xchg esi, ebx
and esi, ebx
xchg esi, eax
test al, al
xchg esi, eax
jne 0x46b68d
mov ecx, dword [esp + 0xe8]
test ecx, ecx
jg 0x46b2e4
xor ebx, ebx
sub ebx, edx
and ebx, edx
mov eax, 0xb4ca8b09
mov esi, edx
mul ebx
xor edi, edi
sub edi, esi
mov edi, 0
sbb edi, ebp
mov eax, ecx
neg ecx
and edi, ebp
imul ebx, ebx, 0x3f79d71
add edx, ebx
imul ebx, edi, 0xb4ca8b09
add edx, ebx
shr edx, 0x1a
lea ebx, [0x4be3c0]
movzx edx, byte [ebx + edx]
cmp edx, ecx
jl 0x46b2e8
cmp ecx, 0x20
sbb edx, edx
add eax, 0x20
neg eax
mov dword [esp + 0xbc], eax
cmp eax, 0x20
sbb ebx, ebx
mov dword [esp + 0xb8], ebx
lea edi, [ecx - 0x20]
xchg edi, ebx
neg ebx
xchg edi, ebx
cmp edi, 0x20
sbb ebx, ebx
mov eax, dword [esp + 0xdc]
mov dword [esp], eax
mov eax, ebp
shr ebp, cl
and ebp, edx
mov dword [esp + 8], ebp
shr esi, cl
and esi, edx
mov ecx, edi
mov edx, eax
shl eax, cl
and eax, ebx
or eax, esi
mov ecx, dword [esp + 0xbc]
shr edx, cl
mov ebx, dword [esp + 0xb8]
and edx, ebx
or edx, eax
mov dword [esp + 4], edx
mov dword [esp + 0x10], ebp
mov dword [esp + 0xc], edx
mov dword [esp + 0x18], ebp
mov dword [esp + 0x14], edx
mov word [esp + 0x1c], 1
call fcn.0046bec0
add esp, 0xd8
ret
mov eax, ecx
mov esi, edx
mov edx, dword [esp + 0xec]
mov ebx, dword [edx]
lea ecx, [ebx - 0x20]
mov edi, ecx
neg ecx
cmp ecx, 0x20
sbb eax, eax
cmp edi, 0x20
sbb edx, edx
mov esi, 1
shr esi, cl
mov ecx, edi
mov edi, 1
shl edi, cl
and edi, edx
and esi, eax
or esi, edi
cmp ebp, esi
setne al
cmp ebx, 0x20
sbb edx, edx
mov ecx, ebx
mov esi, 1
shl esi, cl
and edx, esi
mov esi, dword [esp + 0xe0]
cmp esi, edx
setne dl
or edx, eax
test dl, dl
je 0x46b34f
mov eax, dword [esp + 0xec]
mov edx, dword [esp + 0xe8]
jmp 0x46b369
mov eax, dword [esp + 0xec]
mov edx, dword [eax + 8]
sub edx, ecx
lea ecx, [edx + 1]
mov edx, dword [esp + 0xe8]
cmp edx, ecx
jne 0x46b3cf
shl ebp, 1
mov ecx, esi
shr esi, 0x1f
or esi, ebp
mov dword [esp + 0xbc], esi
mov ebx, ecx
shl ecx, 1
mov dword [esp + 0xb8], ecx
mov ebp, ecx
add ecx, 0xffffffff
mov edi, esi
adc esi, 0xffffffff
add ebp, 1
adc edi, 0
dec edx
mov dword [esp + 0xd0], eax
mov eax, dword [esp + 0xb8]
mov dword [esp + 0x80], eax
mov dword [esp + 0xc8], ecx
mov ecx, dword [esp + 0xbc]
mov dword [esp + 0x84], ecx
mov eax, dword [esp + 0xd0]
mov ecx, dword [esp + 0xc8]
jmp 0x46b434
shl ebp, 2
mov edi, esi
shr edi, 0x1e
or edi, ebp
mov dword [esp + 0xbc], edi
mov ecx, esi
shl ecx, 2
mov dword [esp + 0xb8], ecx
mov ebp, ecx
add ecx, 0xffffffff
mov ebx, edi
adc edi, 0xffffffff
add ebp, 2
adc ebx, 0
add edx, 0xfffffffe
mov dword [esp + 0xc0], eax
mov eax, dword [esp + 0xb8]
mov dword [esp + 0x80], eax
mov esi, edi
mov edi, ebx
mov ebx, dword [esp + 0xbc]
mov dword [esp + 0x84], ebx
mov ebx, dword [esp + 0xe0]
mov eax, dword [esp + 0xc0]
test edx, edx
je 0x46b64a
mov dword [esp + 0x4c], edx
mov dword [esp + 0x7c], esi
mov dword [esp + 0x2c], edi
mov dword [esp + 0x28], ebp
mov dword [esp + 0x78], ecx
neg edx
imul edx, edx, 0x13441
sar edx, 0x12
mov dword [esp + 0x24], edx
lea ebx, [edx + 1]
mov dword [esp + 0x34], ebx
lea edx, [0x4bc178]
cmp eax, edx
jne 0x46b50f
mov dword [esp], ecx
mov eax, dword [esp + 0x4c]
mov dword [esp + 4], eax
mov dword [esp + 8], ebx
call fcn.0046c3d0
movzx eax, byte [esp + 0x14]
mov byte [esp + 0x22], al
mov ecx, dword [esp + 0xc]
mov dword [esp + 0x38], ecx
mov edx, dword [esp + 0x80]
mov dword [esp], edx
mov ebx, dword [esp + 0x4c]
mov dword [esp + 4], ebx
mov ebp, dword [esp + 0x34]
mov dword [esp + 8], ebp
call fcn.0046c3d0
movzx eax, byte [esp + 0x14]
mov byte [esp + 0x21], al
mov ecx, dword [esp + 0xc]
mov dword [esp + 0x90], ecx
mov edx, dword [esp + 0x28]
mov dword [esp], edx
mov ebx, dword [esp + 0x4c]
mov dword [esp + 4], ebx
mov ebx, dword [esp + 0x34]
mov dword [esp + 8], ebx
call fcn.0046c3d0
mov eax, dword [esp + 0x10]
movzx ecx, byte [esp + 0x14]
mov edx, dword [esp + 0xc]
xor ebx, ebx
mov ebp, dword [esp + 0x38]
xor esi, esi
mov edi, dword [esp + 0x90]
xor ebx, ebx
mov dword [esp + 0x48], ebx
jmp 0x46b5cc
mov dword [esp + 4], esi
mov dword [esp], ecx
mov eax, dword [esp + 0x4c]
mov dword [esp + 8], eax
mov dword [esp + 0xc], ebx
call fcn.0046c4e0
movzx eax, byte [esp + 0x1c]
mov byte [esp + 0x22], al
mov ecx, dword [esp + 0x10]
mov dword [esp + 0x3c], ecx
mov edx, dword [esp + 0x14]
mov dword [esp + 0x40], edx
mov ebx, dword [esp + 0x84]
mov dword [esp + 4], ebx
mov ebp, dword [esp + 0x80]
mov dword [esp], ebp
mov esi, dword [esp + 0x4c]
mov dword [esp + 8], esi
mov edi, dword [esp + 0x34]
mov dword [esp + 0xc], edi
call fcn.0046c4e0
movzx eax, byte [esp + 0x1c]
mov byte [esp + 0x21], al
mov ecx, dword [esp + 0x10]
mov dword [esp + 0x54], ecx
mov edx, dword [esp + 0x14]
mov dword [esp + 0x58], edx
mov ebx, dword [esp + 0x2c]
mov dword [esp + 4], ebx
mov ebp, dword [esp + 0x28]
mov dword [esp], ebp
mov esi, dword [esp + 0x4c]
mov dword [esp + 8], esi
mov esi, dword [esp + 0x34]
mov dword [esp + 0xc], esi
call fcn.0046c4e0
movzx ecx, byte [esp + 0x1c]
mov eax, dword [esp + 0x18]
mov edx, dword [esp + 0x10]
mov ebx, dword [esp + 0x14]
mov ebp, dword [esp + 0x3c]
mov esi, dword [esp + 0x58]
mov edi, dword [esp + 0x54]
mov dword [esp + 0x48], ebx
mov ebx, dword [esp + 0x40]
test eax, eax
jge 0x46be99
mov dword [esp + 0x44], edx
mov edx, dword [esp + 0x34]
cmp edx, 0x37
jle 0x46b5f1
xor ecx, ecx
xor ecx, ecx
mov byte [esp + 0x21], cl
xor ecx, ecx
mov byte [esp + 0x22], cl
xor ecx, ecx
mov dword [esp + 0x50], eax
mov dword [esp + 0x40], ebx
mov dword [esp + 0x54], edi
mov dword [esp + 0x58], esi
mov dword [esp + 0x3c], ebp
mov edi, dword [esp + 0x24]
add edi, 0x19
cmp edi, 0x18
jae 0x46b63e
mov edi, dword [esp + 0x78]
test edi, edi
xchg esi, ebx
sete bl
xchg esi, ebx
mov ebp, dword [esp + 0x7c]
test ebp, ebp
sete bl
neg edx
mov dword [esp + 0x74], edx
and ebx, esi
test bl, bl
jne 0x46bc0d
xor ebx, ebx
jmp 0x46bb14
movzx edx, byte [esp + 0x21]
movzx edi, byte [esp + 0x22]
jmp 0x46b6a9
mov eax, dword [esp + 0xdc]
mov dword [esp], eax
mov dword [esp + 8], esi
mov dword [esp + 4], ecx
mov eax, dword [esp + 0x84]
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x80]
mov dword [esp + 0xc], eax
mov dword [esp + 0x18], edi
mov dword [esp + 0x14], ebp
mov word [esp + 0x1c], 1
call fcn.0046bec0
add esp, 0xd8
ret
mov eax, dword [esp + 0xdc]
mov dword [eax + 0xc], 0
mov dword [eax + 0x10], 0
add esp, 0xd8
ret
mov byte [esp + 0x20], cl
xchg edi, eax
mov byte [esp + 0x22], al
xchg edi, eax
mov byte [esp + 0x21], dl
neg eax
mov dword [esp + 0xb4], eax
cmp eax, 0x20
sbb edi, edi
mov dword [esp + 0xbc], edi
mov edx, dword [esp + 0x50]
add edx, 0x20
neg edx
mov dword [esp + 0xb8], edx
cmp edx, 0x20
sbb esi, esi
mov dword [esp + 0xb0], esi
lea ebp, [eax - 0x20]
xchg ebp, ebx
neg ebx
xchg ebp, ebx
cmp ebp, 0x20
sbb ebx, ebx
mov dword [esp + 0xac], ebx
mov ecx, ebp
mov edi, 1
shr edi, cl
and edi, ebx
mov ecx, edx
mov ebx, 1
shl ebx, cl
and ebx, esi
or ebx, edi
mov ecx, eax
mov edi, 1
shl edi, cl
mov eax, dword [esp + 0xbc]
and edi, eax
add edi, 0xffffffff
mov dword [esp + 0x30], edi
adc ebx, 0xffffffff
mov dword [esp + 0xa8], ebx
mov ecx, edx
mov edi, dword [esp + 0x40]
shr edi, cl
and edi, esi
mov ecx, ebp
mov ebx, dword [esp + 0x40]
shl ebx, cl
mov esi, dword [esp + 0xac]
and ebx, esi
mov ecx, dword [esp + 0xb4]
mov edx, dword [esp + 0x3c]
shr edx, cl
and edx, eax
or edx, ebx
or edi, edx
mov dword [esp + 0xbc], edi
mov edx, dword [esp + 0x40]
shr edx, cl
and edx, eax
mov dword [esp + 0xa4], edx
mov ecx, ebp
mov edx, dword [esp + 0x58]
shl edx, cl
and edx, esi
mov ecx, dword [esp + 0xb4]
mov edi, dword [esp + 0x54]
shr edi, cl
and edi, eax
mov ecx, dword [esp + 0xb8]
mov ebx, dword [esp + 0x58]
shr ebx, cl
mov esi, dword [esp + 0xb0]
and ebx, esi
or edi, edx
or ebx, edi
mov dword [esp + 0xb8], ebx
mov edx, ecx
mov ecx, dword [esp + 0xb4]
mov edi, dword [esp + 0x58]
shr edi, cl
and edi, eax
mov dword [esp + 0xb0], edi
mov edi, dword [esp + 0xa8]
mov ebx, dword [esp + 0x58]
and ebx, edi
mov dword [esp + 0x8c], ebx
mov ebx, dword [esp + 0x30]
mov edi, dword [esp + 0x54]
and edi, ebx
mov dword [esp + 0x88], edi
mov ecx, edx
mov edi, dword [esp + 0x48]
mov edx, edi
shr edi, cl
and edi, esi
mov ecx, ebp
mov ebp, edx
shl edx, cl
mov esi, dword [esp + 0xac]
and edx, esi
mov ecx, dword [esp + 0xb4]
mov esi, dword [esp + 0x44]
shr esi, cl
and esi, eax
or esi, edx
or edi, esi
mov edx, ebp
shr ebp, cl
and ebp, eax
mov eax, dword [esp + 0x44]
and eax, ebx
mov esi, dword [esp + 0xa8]
and edx, esi
mov ecx, ebx
movzx ebx, byte [esp + 0x20]
test bl, bl
je 0x46b887
mov dword [esp + 0xa0], edi
mov dword [esp + 0x9c], ebp
test edx, edx
xchg esi, ebx
seta bl
xchg esi, ebx
xchg ebp, ebx
sete bl
xchg ebp, ebx
test eax, eax
xchg edi, ebx
seta bl
xchg edi, ebx
and ebp, edi
or ebp, esi
test bl, bl
mov esi, dword [esp + 0xa8]
mov edi, dword [esp + 0xa0]
mov ebx, ebp
mov ebp, dword [esp + 0x9c]
jmp 0x46b88c
mov ebx, 1
je 0x46b8b2
test edx, edx
sete dl
test eax, eax
sete al
and eax, edx
test al, al
je 0x46b8b2
mov eax, dword [esp + 0xe0]
test eax, 1
sete bl
and ebx, 1
jmp 0x46b8b9
mov eax, dword [esp + 0xe0]
test bl, bl
jne 0x46b8c3
add edi, 0xffffffff
adc ebp, 0xffffffff
mov dword [esp + 0x48], ebp
mov dword [esp + 0x44], edi
movzx edx, byte [esp + 0x21]
test dl, dl
je 0x46b993
mov ebx, dword [esp + 0x50]
inc ebx
neg ebx
lea edi, [ebx - 0x20]
mov dword [esp + 0xac], edi
xchg edi, ebx
neg ebx
xchg edi, ebx
cmp edi, 0x20
sbb ebp, ebp
mov eax, dword [esp + 0xac]
cmp eax, 0x20
sbb edx, edx
mov ecx, edi
mov esi, 1
shr esi, cl
mov ecx, eax
mov eax, 1
shl eax, cl
and esi, ebp
and eax, edx
or eax, esi
mov edx, dword [esp + 0x8c]
cmp eax, edx
sete al
xchg ebp, ebx
setb bl
xchg ebp, ebx
cmp ebx, 0x20
sbb esi, esi
mov ecx, ebx
mov ebx, 1
shl ebx, cl
and ebx, esi
mov esi, dword [esp + 0x88]
cmp ebx, esi
xchg edi, ebx
setb bl
xchg edi, ebx
and edi, eax
or edi, ebp
xchg edi, eax
test al, al
xchg edi, eax
je 0x46b966
mov eax, dword [esp + 0xb8]
mov ecx, 1
jmp 0x46ba16
cmp ebx, esi
sete cl
and ecx, eax
test cl, cl
je 0x46b985
mov eax, dword [esp + 0xb8]
test eax, 1
setne cl
jmp 0x46ba16
mov eax, dword [esp + 0xb8]
xor ecx, ecx
jmp 0x46ba16
mov ebx, dword [esp + 0x50]
inc ebx
neg ebx
cmp ebx, 0x20
sbb edi, edi
lea ebp, [ebx - 0x20]
mov dword [esp + 0xac], ebp
cmp ebp, 0x20
sbb eax, eax
xchg ebp, ebx
neg ebx
xchg ebp, ebx
cmp ebp, 0x20
sbb edx, edx
mov ecx, ebx
mov esi, dword [esp + 0x8c]
shr esi, cl
test edi, esi
xchg esi, ebx
sete bl
xchg esi, ebx
xchg esi, eax
mov byte [esp + 0x23], al
xchg esi, eax
mov esi, dword [esp + 0x88]
mov ebx, esi
shr esi, cl
and esi, edi
mov ecx, ebp
mov ebp, dword [esp + 0x8c]
mov edi, ebp
shl ebp, cl
and ebp, edx
or ebp, esi
mov ecx, dword [esp + 0xac]
mov edx, edi
shr edi, cl
and edi, eax
or edi, ebp
cmp edi, 1
sete cl
movzx eax, byte [esp + 0x23]
and ecx, eax
mov eax, dword [esp + 0xb8]
mov esi, ebx
movzx ebx, byte [esp + 0x22]
test bl, bl
je 0x46ba76
mov ebx, dword [esp + 0x40]
mov ebp, dword [esp + 0xa8]
test ebp, ebx
sete bl
mov ebp, dword [esp + 0x3c]
mov edi, dword [esp + 0x30]
test edi, ebp
xchg ebp, ebx
sete bl
xchg ebp, ebx
and ebp, ebx
xchg ebp, eax
test al, al
xchg ebp, eax
je 0x46ba76
mov ebx, dword [esp + 0xe0]
test ebx, 1
sete bl
and ebx, 1
test bl, bl
je 0x46ba76
movzx ebx, byte [esp + 0x21]
test bl, bl
mov edi, dword [esp + 0xbc]
mov ebx, dword [esp + 0xa4]
jmp 0x46ba93
mov edi, dword [esp + 0xbc]
add edi, 1
mov ebx, dword [esp + 0xa4]
adc ebx, 0
movzx ebp, byte [esp + 0x21]
xchg ebp, eax
test al, al
xchg ebp, eax
je 0x46baa7
test edx, edx
sete dl
test esi, esi
xchg ebp, ebx
sete bl
xchg ebp, ebx
and ebp, edx
jmp 0x46baa9
xor ebp, ebp
mov edx, dword [esp + 0xdc]
mov dword [esp], edx
mov dword [esp + 8], ebx
mov dword [esp + 4], edi
mov ebx, dword [esp + 0xb0]
mov dword [esp + 0x10], ebx
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0x48]
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0x44]
mov dword [esp + 0x14], eax
xchg ebp, eax
mov byte [esp + 0x1c], al
xchg ebp, eax
mov byte [esp + 0x1d], cl
call fcn.0046bec0
mov eax, dword [esp + 0xdc]
mov ecx, dword [eax + 0x10]
mov edx, dword [esp + 0x24]
sub ecx, edx
dec ecx
mov dword [eax + 0x10], ecx
add esp, 0xd8
ret
inc ebx
mov edx, dword [esp + 0x74]
mov edi, dword [esp + 0x94]
mov eax, dword [esp + 0x50]
cmp ebx, edx
jge 0x46bc0d
mov dword [esp + 0x70], ebp
mov dword [esp + 0x64], edi
mov eax, 0xcccccccd
mul ebp
shr edx, 2
mov dword [esp + 0xbc], edx
lea esi, [edx + edx*4]
sub ebp, esi
mov eax, 0x33333333
mul ebp
mov dword [esp + 0xb8], edx
mov dword [esp + 0xb0], eax
mov eax, 0xcccccccd
mul edi
shr edx, 2
mov dword [esp + 0xac], edx
lea esi, [edx + edx*4]
sub edi, esi
add ebp, edi
mov eax, 0xcccccccd
mov edi, edx
mul ebp
shr edx, 2
mov dword [esp + 0xa4], edx
add edi, 0
mov ebp, dword [esp + 0xb0]
add ebp, edi
mov dword [esp + 0x98], ebp
add ebp, edx
mov dword [esp + 0x94], ebp
mov eax, ebp
mov esi, 5
mul esi
mov esi, dword [esp + 0xac]
add esi, 0
mov esi, dword [esp + 0xbc]
adc esi, 0
mov ebp, dword [esp + 0xb0]
add ebp, edi
mov ebp, dword [esp + 0xb8]
adc ebp, esi
mov esi, dword [esp + 0x98]
mov edi, dword [esp + 0xa4]
add esi, edi
adc ebp, 0
mov esi, dword [esp + 0x64]
cmp eax, esi
xchg esi, ebx
setne bl
xchg esi, ebx
lea edi, [ebp + ebp*4]
add edx, edi
mov edi, dword [esp + 0x70]
cmp edi, edx
setne dl
or edx, esi
test dl, dl
je 0x46bb04
mov eax, dword [esp + 0x50]
mov edx, dword [esp + 0x74]
movzx ebx, byte [esp + 0x22]
jmp 0x46bc12
mov ebx, 1
mov byte [esp + 0x22], bl
mov ebp, dword [esp + 0x84]
test ebp, ebp
xchg esi, ebx
sete bl
xchg esi, ebx
mov edi, dword [esp + 0x80]
test edi, edi
sete bl
and ebx, esi
test bl, bl
jne 0x46bd4b
xor ebx, ebx
jmp 0x46bc50
inc ebx
mov edx, dword [esp + 0x74]
mov edi, dword [esp + 0x94]
mov eax, dword [esp + 0x50]
cmp ebx, edx
jge 0x46bd4b
mov dword [esp + 0x60], edi
mov dword [esp + 0x6c], ebp
mov eax, 0xcccccccd
mul ebp
shr edx, 2
mov dword [esp + 0xbc], edx
lea esi, [edx + edx*4]
sub ebp, esi
mov eax, 0x33333333
mul ebp
mov dword [esp + 0xb8], edx
mov dword [esp + 0xb0], eax
mov eax, 0xcccccccd
mul edi
shr edx, 2
mov dword [esp + 0xac], edx
lea esi, [edx + edx*4]
sub edi, esi
add ebp, edi
mov eax, ebp
mov edi, 0xcccccccd
mov ebp, edx
mul edi
shr edx, 2
mov dword [esp + 0xa4], edx
add ebp, 0
mov esi, dword [esp + 0xb0]
add esi, ebp
mov dword [esp + 0x98], esi
add esi, edx
mov dword [esp + 0x94], esi
mov eax, esi
mov edi, 5
mul edi
mov edi, dword [esp + 0xac]
add edi, 0
mov edi, dword [esp + 0xbc]
adc edi, 0
mov esi, dword [esp + 0xb0]
add esi, ebp
mov ebp, dword [esp + 0xb8]
adc ebp, edi
mov esi, dword [esp + 0x98]
mov edi, dword [esp + 0xa4]
add esi, edi
adc ebp, 0
mov esi, dword [esp + 0x60]
cmp eax, esi
xchg esi, ebx
setne bl
xchg esi, ebx
lea edi, [ebp + ebp*4]
add edx, edi
mov edi, dword [esp + 0x6c]
cmp edi, edx
setne dl
or edx, esi
test dl, dl
je 0x46bc40
mov eax, dword [esp + 0x50]
mov edx, dword [esp + 0x74]
movzx ebx, byte [esp + 0x21]
jmp 0x46bd50
mov ebx, 1
mov byte [esp + 0x21], bl
mov ebp, dword [esp + 0x2c]
test ebp, ebp
xchg esi, ebx
sete bl
xchg esi, ebx
mov edi, dword [esp + 0x28]
test edi, edi
sete bl
and esi, ebx
xchg esi, eax
test al, al
xchg esi, eax
jne 0x46bd76
xor ebx, ebx
jmp 0x46bda6
mov ecx, 1
mov ebx, dword [esp + 0x40]
mov ebp, dword [esp + 0x3c]
mov esi, dword [esp + 0x58]
movzx edx, byte [esp + 0x21]
movzx edi, byte [esp + 0x22]
jmp 0x46b6a9
inc ebx
mov edx, dword [esp + 0x74]
mov edi, dword [esp + 0x94]
mov eax, dword [esp + 0x50]
cmp ebx, edx
jge 0x46bd76
mov dword [esp + 0x68], ebp
mov dword [esp + 0x5c], edi
mov eax, 0xcccccccd
mul ebp
shr edx, 2
mov dword [esp + 0xbc], edx
lea esi, [edx + edx*4]
sub ebp, esi
mov eax, 0x33333333
mul ebp
mov dword [esp + 0xb8], edx
mov dword [esp + 0xb0], eax
mov eax, 0xcccccccd
mul edi
shr edx, 2
mov dword [esp + 0xac], edx
lea esi, [edx + edx*4]
sub edi, esi
add ebp, edi
mov eax, ebp
mov edi, 0xcccccccd
mov ebp, edx
mul edi
shr edx, 2
mov dword [esp + 0xa4], edx
add ebp, 0
mov esi, dword [esp + 0xb0]
add esi, ebp
mov dword [esp + 0x98], esi
add esi, edx
mov dword [esp + 0x94], esi
mov eax, esi
mov edi, 5
mul edi
mov edi, dword [esp + 0xac]
add edi, 0
mov edi, dword [esp + 0xbc]
adc edi, 0
mov esi, dword [esp + 0xb0]
add esi, ebp
mov ebp, dword [esp + 0xb8]
adc ebp, edi
mov esi, dword [esp + 0x98]
mov edi, dword [esp + 0xa4]
add esi, edi
adc ebp, 0
lea esi, [ebp + ebp*4]
add edx, esi
mov esi, dword [esp + 0x68]
cmp esi, edx
setne dl
mov esi, dword [esp + 0x5c]
cmp eax, esi
xchg esi, ebx
setne bl
xchg esi, ebx
or esi, edx
xchg esi, eax
test al, al
xchg esi, eax
je 0x46bd96
mov eax, dword [esp + 0x50]
jmp 0x46bd7b
lea eax, [0x4e6920]
mov dword [esp], eax
lea eax, [0x51e0f8]
mov dword [esp + 4], eax
call fcn.0042f290
nop
call fcn.00451710
jmp fcn.0046b1c0