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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x4c
mov eax, dword [0x67f864]
xor eax, esp
mov dword [esp + 0x48], eax
push ebx
push esi
mov esi, dword [ebp + 8]
push edi
xor edi, edi
cmp si, 4
mov ebx, ecx
mov dword [esp + 0x38], edi
je 0x46bb51
cmp si, 5
je 0x46bb51
mov dword [ebx + 0x6c], edi
test esi, 0x800
je 0x46bb9d
push edi
push edi
push 0xb
call fcn.00467260
mov edx, eax
add esp, 0xc
cmp edx, edi
je 0x46bc43
movzx ecx, si
and ecx, 0xfffff7ff
call fcn.00474370
push edi
push edi
push edx
push ebx
xor ecx, ecx
call fcn.0046b440
add esp, 0x10
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x48]
xor ecx, esp
call fcn.005ce60a
mov esp, ebp
pop ebp
ret
mov edi, dword [ebx + 0x34]
mov edx, dword [ebx + 0x38]
movzx eax, si
add eax, 0xfffffffe
cmp eax, 0x1a
mov dword [esp + 0x14], edi
mov dword [esp + 0x10], edx
ja case.0x46bbb6.19
jmp dword [eax*4 + 0x46c264]
mov eax, dword [ebx + 0x2c]
mov ecx, dword [eax + 0x38]
mov dword [esp + 0x14], 0
mov dword [esp + 0x10], ecx
mov edi, dword [esp + 0x14]
mov edx, dword [esp + 0x10]
cmp edi, edx
jle 0x46bbf6
mov dword [esp + 0x14], edx
xor edx, edx
cmp dword [ebx + 0x58], edx
mov dword [esp + 0x10], edi
sete dl
mov dword [ebx + 0x58], edx
mov edi, dword [esp + 0x14]
mov edx, dword [esp + 0x10]
push edx
mov eax, edi
mov ecx, ebx
call fcn.0046aee0
add esp, 4
cmp dword [esp + 0x38], 0
je 0x46bc43
mov ecx, dword [esp + 0x3c]
mov edx, dword [esp + 0x40]
lea eax, [ebx + 0xbc]
mov dword [eax], ecx
mov ecx, dword [esp + 0x44]
mov dword [eax + 4], edx
mov edx, dword [esp + 0x48]
mov dword [eax + 8], ecx
mov ecx, dword [esp + 0x4c]
mov dword [eax + 0xc], edx
mov dx, word [esp + 0x50]
mov dword [eax + 0x10], ecx
mov word [eax + 0x14], dx
lea edx, [ebx + 0x3c]
call fcn.00473680
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x48]
xor ecx, esp
call fcn.005ce60a
mov esp, ebp
pop ebp
ret
xor eax, eax
cmp si, 5
sete al
cmp dword [ebx + 0x6c], 0
lea eax, [eax*4 - 2]
mov dword [esp + 0x1c], eax
je 0x46bc88
mov ecx, dword [ebx + 0x88]
mov edx, dword [ebx + 0x8c]
mov dword [esp + 0x18], ecx
mov dword [esp + 0x24], edx
jmp 0x46bd1e
cmp edi, edx
jne 0x46bc9c
mov eax, dword [ebx + 0x78]
mov ecx, dword [ebx + 0x7c]
mov dword [esp + 0x18], eax
mov dword [esp + 0x28], ecx
jmp 0x46bcc9
cmp dword [ebx + 0x58], 0
jne 0x46bca4
mov edx, edi
lea eax, [esp + 0x28]
push eax
lea ecx, [esp + 0x1c]
push ecx
push edx
mov edx, dword [ebx + 0x2c]
sub esp, 0x24
mov edi, esp
mov ecx, 9
mov esi, ebx
push edx
rep movsd dword es:[edi], dword [esi]
call fcn.00467e70
add esp, 0x34
movsx ecx, word [esp + 0x18]
movsx eax, word [esp + 0x28]
add eax, ecx
cdq
sub eax, edx
movsx edx, word [esp + 0x1a]
sar eax, 1
mov word [esp + 0x18], ax
movsx eax, word [esp + 0x2a]
add eax, edx
cdq
sub eax, edx
sar eax, 1
mov word [esp + 0x1a], ax
mov edx, dword [esp + 0x18]
lea eax, [esp + 0x34]
push eax
mov eax, dword [ebx + 0x2c]
lea ecx, [esp + 0x28]
push ecx
push edx
sub esp, 0x24
mov edi, esp
mov ecx, 9
mov esi, ebx
push eax
rep movsd dword es:[edi], dword [esi]
call fcn.00467ff0
add esp, 0x34
movsx esi, word [ebx + 0x1e]
mov eax, dword [ebx + 0x2c]
mov edx, dword [eax + 0x34]
mov ecx, esi
sub ecx, dword [eax + 0x30]
mov eax, dword [esp + 0x24]
add edx, esi
cmp dword [esp + 0x1c], 0
mov si, word [esp + 0x1a]
mov dword [esp + 0x30], ecx
mov dword [esp + 0x2c], edx
mov dword [esp + 0x20], eax
jle 0x46bd5f
movsx edi, si
cmp edi, ecx
jge 0x46bd5a
mov si, cx
mov word [esp + 0x1a], si
cmp dword [esp + 0x1c], 0
jge 0x46bd70
movsx edi, si
cmp edi, edx
jl 0x46bd70
lea esi, [edx - 1]
mov word [esp + 0x1a], si
movsx edi, si
cmp edi, ecx
jl 0x46bdd9
jmp 0x46bd84
mov edx, dword [esp + 0x2c]
cmp edi, edx
jge 0x46bdd3
add si, word [esp + 0x1c]
lea ecx, [esp + 0x34]
push ecx
mov word [esp + 0x1e], si
mov eax, dword [esp + 0x1c]
lea edx, [esp + 0x24]
push edx
push eax
sub esp, 0x24
mov edi, esp
mov ecx, 9
mov esi, ebx
rep movsd dword es:[edi], dword [esi]
mov ecx, dword [ebx + 0x2c]
push ecx
call fcn.00467ff0
mov eax, dword [esp + 0x54]
add esp, 0x34
cmp eax, dword [esp + 0x24]
jne 0x46bdf4
mov si, word [esp + 0x1a]
movsx edi, si
cmp edi, dword [esp + 0x30]
jge 0x46bd80
cmp eax, dword [esp + 0x24]
jne 0x46bdf4
cmp word [ebp + 8], 5
jne 0x46bde8
mov edx, dword [ebx + 0x2c]
mov eax, dword [edx + 0x38]
jmp 0x46bdea
xor eax, eax
cmp eax, dword [esp + 0x24]
je 0x46bbcf
cmp dword [ebp + 0xc], 0
mov ecx, 1
je 0x46be0b
cmp dword [ebx + 0x58], 0
jne 0x46be12
mov dword [esp + 0x14], eax
jmp 0x46be16
mov dword [esp + 0x14], eax
mov dword [ebx + 0x58], ecx
mov dword [esp + 0x10], eax
mov dword [ebx + 0x8c], eax
mov eax, dword [esp + 0x18]
mov dword [ebx + 0x6c], ecx
mov dword [ebx + 0x88], eax
jmp 0x46bbcf
test edi, edi
je case.0x46bbb6.19
mov edx, dword [ebx + 0x2c]
push 0
lea ecx, [esp + 0x18]
push ecx
push ebx
push edx
lea ecx, [esp + 0x20]
mov edx, edi
mov esi, edi
call fcn.00467d20
mov edi, dword [esp + 0x24]
add esp, 0x10
cmp esi, edi
jne 0x46be79
mov ecx, dword [ebx + 0x2c]
push 0
lea eax, [esp + 0x18]
push eax
push ebx
push ecx
lea edx, [esi - 1]
lea ecx, [esp + 0x20]
call fcn.00467d20
mov edi, dword [esp + 0x24]
add esp, 0x10
cmp dword [ebp + 0xc], 0
je 0x46bf46
mov edx, dword [ebx + 0x38]
mov dword [esp + 0x10], edx
jmp 0x46bbd3
mov eax, dword [ebx + 0x2c]
cmp edx, dword [eax + 0x38]
jge case.0x46bbb6.19
push 0
lea ecx, [esp + 0x18]
push ecx
push ebx
push eax
lea ecx, [esp + 0x20]
mov esi, edx
call fcn.00467d20
mov edx, dword [esp + 0x20]
add esp, 0x10
cmp esi, edx
jne 0x46bed9
mov eax, dword [ebx + 0x2c]
push 0
lea edx, [esp + 0x18]
push edx
push ebx
lea edx, [esi + 1]
push eax
lea ecx, [esp + 0x20]
call fcn.00467d20
mov edx, dword [esp + 0x20]
add esp, 0x10
cmp dword [ebp + 0xc], 0
je 0x46bfb2
mov ecx, dword [ebx + 0x34]
mov dword [esp + 0x14], ecx
mov edi, ecx
jmp case.0x46bbb6.19
cmp dword [ebp + 0xc], 0
je 0x46bf42
cmp dword [ebx + 0x58], 0
je 0x46bf27
sub edx, 1
xor ecx, ecx
test edx, edx
setle cl
sub ecx, 1
and ecx, edx
mov edx, dword [ebx + 0x2c]
mov eax, dword [edx + 0x38]
cmp ecx, eax
mov dword [esp + 0x10], ecx
jl 0x46bbd3
mov dword [esp + 0x10], eax
jmp 0x46bbd3
sub edi, 1
mov eax, 0
sets al
sub eax, 1
and eax, edi
mov dword [esp + 0x14], eax
mov edi, eax
jmp case.0x46bbb6.19
cmp edx, edi
je 0x46bf4f
mov dword [esp + 0x10], edi
jmp 0x46bbf2
sub edi, 1
mov eax, 0
sets al
sub eax, 1
and eax, edi
mov dword [esp + 0x14], eax
mov dword [esp + 0x10], eax
jmp 0x46bbee
cmp dword [ebp + 0xc], 0
je 0x46bfae
cmp dword [ebx + 0x58], 0
je 0x46bf92
mov ecx, dword [ebx + 0x2c]
mov eax, dword [ecx + 0x38]
add edx, 1
cmp edx, eax
jl case.0x46bbb6.19
mov dword [esp + 0x10], eax
jmp 0x46bbd3
mov eax, dword [ebx + 0x2c]
mov eax, dword [eax + 0x38]
add edi, 1
cmp edi, eax
jl case.0x46bbb6.19
mov dword [esp + 0x14], eax
mov edi, eax
jmp case.0x46bbb6.19
cmp edx, edi
je 0x46bfbd
mov dword [esp + 0x14], edx
mov edi, edx
jmp 0x46bbf6
mov ecx, dword [ebx + 0x2c]
mov eax, dword [ecx + 0x38]
add edx, 1
cmp edx, eax
jl 0x46bfd0
mov dword [esp + 0x10], eax
mov edx, eax
mov dword [esp + 0x14], edx
mov edi, edx
jmp 0x46bbf6
cmp edx, edi
jne 0x46c009
cmp si, 6
jne 0x46bff6
test edi, edi
je case.0x46bbb6.19
sub edi, 1
mov dword [esp + 0x14], edi
jmp 0x46c009
mov eax, dword [ebx + 0x2c]
cmp edx, dword [eax + 0x38]
jge case.0x46bbb6.19
add edx, 1
mov dword [esp + 0x10], edx
lea ecx, [esp + 0x14]
push ecx
lea eax, [esp + 0x14]
mov ecx, ebx
call fcn.0046b7c0
add esp, 4
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x48]
xor ecx, esp
call fcn.005ce60a
mov esp, ebp
pop ebp
ret
mov edx, dword [ebp + 0xc]
push edx
lea edi, [esp + 0x14]
lea esi, [esp + 0x18]
call fcn.0046ba10
add esp, 4
jmp 0x46bbcf
cmp si, 0xb
jne 0x46c051
xor eax, eax
jmp 0x46c057
mov eax, dword [ebx + 0x2c]
mov eax, dword [eax + 0x38]
cmp dword [ebp + 0xc], 0
je 0x46bf5f
cmp dword [ebx + 0x58], 0
je 0x46bf37
mov dword [esp + 0x10], eax
jmp 0x46bbd3
mov eax, 8
jmp 0x46c0aa
mov eax, 3
jmp 0x46c0aa
mov eax, 2
jmp 0x46c0aa
mov eax, 4
jmp 0x46c0aa
mov eax, 0xa
jmp 0x46c0aa
mov eax, 0xc
jmp 0x46c0aa
mov eax, 6
jmp 0x46c0aa
mov eax, 5
imul eax, eax, 0x5c
lea ecx, [esp + 0x30]
push ecx
lea edx, [esp + 0x38]
push edx
mov edx, dword [eax + 0x62cfa0]
lea ecx, [esp + 0x34]
push ecx
call edx
add esp, 0xc
test eax, eax
je 0x46bc43
mov ecx, dword [esp + 0x30]
mov edx, dword [esp + 0x34]
push ecx
mov ecx, dword [esp + 0x30]
push edx
push eax
push ebx
call fcn.0046b440
add esp, 0x10
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x48]
xor ecx, esp
call fcn.005ce60a
mov esp, ebp
pop ebp
ret
cmp edi, edx
je 0x46c11c
lea eax, [esp + 0x14]
push eax
lea eax, [esp + 0x14]
call fcn.0046b7c0
mov ecx, dword [esp + 0x14]
add esp, 4
cmp dword [esp + 0x14], ecx
jne 0x46bbcf
mov edx, dword [ebx + 0x3c]
mov ecx, dword [ebx + 0x44]
mov eax, dword [ebx + 0x40]
mov dword [esp + 0x3c], edx
mov edx, dword [ebx + 0x48]
mov dword [esp + 0x48], edx
xor edx, edx
cmp dword [ebx + 0x9c], edx
mov dword [esp + 0x44], ecx
mov cx, word [ebx + 0x50]
setne dl
mov dword [esp + 0x40], eax
mov eax, dword [ebx + 0x4c]
mov word [esp + 0x50], cx
xor edi, edi
mov esi, ebx
mov dword [esp + 0x4c], eax
mov word [esp + 0x50], 0
mov dword [esp + 0x38], edx
call fcn.0046ae00
call fcn.0046aa00
mov eax, dword [ebp + 0xc]
mov ecx, dword [esp + 0x14]
push eax
push ebx
push ecx
lea edx, [ebx + 0x2c]
push edx
call fcn.004675b0
add esp, 0x10
test eax, eax
jne 0x46c198
push 0xffffffffffffffff
call dword [sym.imp.USER32.dll_MessageBeep]
call fcn.0046aa40
jmp 0x46bbcf
mov eax, dword [ebx + 0x98]
mov esi, dword [esp + 0x14]
mov ecx, dword [ebx + 0x94]
push eax
add esi, 1
push ebx
mov dword [esp + 0x1c], esi
call ecx
add esp, 8
mov dword [esp + 0x10], esi
call fcn.0046aa40
jmp 0x46bbcf
mov dword [esp + 0x1c], 0
jmp 0x46c1e0
mov dword [esp + 0x1c], 1
jmp 0x46c1e0
mov dword [esp + 0x1c], 2
xor edi, edi
mov esi, ebx
call fcn.0046ae00
mov edx, dword [esp + 0x1c]
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x14]
push edx
push eax
push ecx
mov ecx, ebx
mov ebx, dword [ebx + 0x2c]
call fcn.004695b0
add esp, 0xc
test eax, eax
je 0x46c248
call fcn.0046aa00
mov edx, dword [esi + 0x98]
mov eax, dword [esi + 0x94]
push edx
push esi
call eax
mov ecx, dword [esp + 0x18]
add esp, 8
cmp dword [esp + 0x14], ecx
jne 0x46bc43
mov ebx, esi
call fcn.0046aa40
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x48]
xor ecx, esp
call fcn.005ce60a
mov esp, ebp
pop ebp
ret
push 0xffffffffffffffff
call dword [sym.imp.USER32.dll_MessageBeep]
mov ecx, dword [esp + 0x54]
pop edi
pop esi
pop ebx
xor ecx, esp
call fcn.005ce60a
mov esp, ebp
pop ebp
ret