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

Disassembly:
push 0xffffffffffffffff
push 0x55fd59
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x54
mov al, byte [esp + 0x64]
push ebx
push ebp
push esi
push edi
xor edi, edi
mov esi, ecx
mov byte [esp + 0x54], al
mov dword [esp + 0x58], edi
mov dword [esp + 0x5c], edi
mov dword [esp + 0x60], edi
push 6
push 0x59ccf4
lea ecx, [esp + 0x28]
mov dword [esp + 0x74], edi
call fcn.005318a0
push 6
push 0x59c0fc
lea ecx, [esp + 0x24]
mov byte [esp + 0x74], 1
call fcn.005318a0
push 6
push 0x59c0f4
lea ecx, [esp + 0x20]
mov byte [esp + 0x74], 2
call fcn.005318a0
mov ecx, dword [0x59ccec]
mov dx, word [0x59ccf0]
mov al, byte [0x59ccf2]
mov dword [esp + 0x3c], ecx
mov ecx, dword [0x59cce4]
push edi
mov dword [esp + 0x48], ecx
mov ecx, dword [0x59ccdc]
mov word [esp + 0x44], dx
mov dx, word [0x59cce8]
mov byte [esp + 0x46], al
mov al, byte [0x59ccea]
push edi
push ecx
mov dword [esp + 0x58], ecx
mov word [esp + 0x54], dx
mov dx, word [0x59cce0]
mov byte [esp + 0x56], al
mov al, byte [0x59cce2]
mov ecx, esp
mov dword [esp + 0x40], esp
push 6
push 0x59b910
mov byte [esp + 0x80], 3
mov byte [esp + 0x28], 0
mov word [esp + 0x64], dx
mov byte [esp + 0x66], al
call fcn.005318a0
push ecx
mov byte [esp + 0x7c], 4
mov ecx, esp
mov dword [esp + 0x40], esp
push 6
push 0x59c0ec
call fcn.005318a0
mov ecx, 0x5c6628
mov byte [esp + 0x7c], 3
call fcn.00533b90
mov ecx, esi
call fcn.0052cfd0
mov edi, dword [esp + 0x74]
and edi, 0xff
mov dword [esp + 0x34], edi
lea ecx, [edi + edi*2]
lea ebp, [edi + ecx*4]
shl ebp, 2
mov dx, word [ebp + 0x5726c0]
mov al, byte [ebp + 0x5726ca]
mov word [esp + 0x2c], dx
mov byte [esp + 0x13], al
mov al, byte [ebp + 0x5726e8]
mov cl, byte [ebp + 0x5726d4]
mov bx, word [ebp + 0x5726c4]
cmp al, 1
mov byte [esp + 0x28], cl
mov dword [esp + 0x24], 1
jb 0x40dd02
movsx edx, word [esp + 0x24]
mov ecx, esi
mov al, byte [edx + ebp + 0x5726e8]
push eax
call fcn.0040e8c0
test ax, ax
je 0x40de98
mov eax, dword [esp + 0x24]
movzx cx, byte [ebp + 0x5726e8]
inc eax
cmp ax, cx
mov dword [esp + 0x24], eax
jle 0x40dccf
test bx, bx
je 0x40dd62
xor edx, edx
lea ecx, [esp + 0x18]
mov dl, bh
push edx
push 4
call fcn.00531ad0
push ebx
push 5
lea ecx, [esp + 0x20]
call fcn.00531ad0
push 0
push 1
push ecx
mov ecx, esp
mov dword [esp + 0x3c], esp
push 6
push 0x59b910
call fcn.005318a0
push ecx
lea eax, [esp + 0x28]
mov ecx, esp
mov dword [esp + 0x34], esp
push eax
mov byte [esp + 0x80], 5
call fcn.00531810
mov ecx, 0x5c6628
mov byte [esp + 0x7c], 3
call fcn.00533b90
cmp byte [esp + 0x74], 0x17
jne 0x40dd6e
mov byte [esp + 0x14], 0x31
push 0
push 0
push ecx
mov ecx, esp
mov dword [esp + 0x3c], esp
push 6
push 0x59b910
call fcn.005318a0
push ecx
mov byte [esp + 0x7c], 6
mov ecx, esp
mov dword [esp + 0x34], esp
push 6
push 0x59c0e4
call fcn.005318a0
mov ecx, 0x5c6628
mov byte [esp + 0x7c], 3
call fcn.00533b90
mov bl, byte [esp + 0x13]
mov al, byte [esp + 0x28]
cmp al, bl
jbe 0x40ddee
mov eax, dword [esp + 0x28]
lea ecx, [edi + edi*2]
and eax, 0xff
push 2
lea edx, [edi + ecx*4]
lea ecx, [eax + edx*2]
lea edx, [esi + 0xc]
push edx
mov ax, word [ecx*2 + 0x5726d4]
movsx eax, ax
lea eax, [eax + eax*4]
lea ecx, [eax*4 + 0x59c334]
push ecx
lea ecx, [esi + 0x78]
call fcn.0043cb50
mov eax, dword [esp + 0x74]
lea edx, [esp + 0x54]
push edx
push eax
mov ecx, esi
call fcn.0040e600
mov ecx, dword [esp + 0x2c]
push ecx
push 5
lea ecx, [esp + 0x28]
call fcn.00531ad0
xor dx, dx
mov dl, bl
mov word [esp + 0x74], dx
push ecx
lea eax, [esp + 0x24]
mov ecx, esp
mov dword [esp + 0x34], esp
push eax
call fcn.00531810
mov ecx, dword [0x5c6634]
call fcn.005396d0
mov ax, word [esp + 0x74]
cmp ax, 1
jl 0x40de79
lea edi, [ebp + 0x5726cb]
movsx ebx, ax
mov cl, byte [edi]
push ecx
push 5
lea ecx, [esp + 0x24]
call fcn.00531ad0
push 1
push ecx
lea edx, [esp + 0x24]
mov ecx, esp
mov dword [esp + 0x38], esp
push edx
call fcn.00531810
mov ecx, dword [0x5c6634]
call fcn.00539850
inc edi
dec ebx
jne 0x40de49
mov al, byte [esp + 0x54]
sub esp, 0x10
mov edi, esp
mov dword [esp + 0x40], esp
mov dword [esp + 0x40], edi
mov byte [edi], al
mov ecx, dword [esp + 0x68]
test ecx, ecx
jne 0x40deef
xor eax, eax
jmp 0x40def8
lea ecx, [esp + 0x18]
mov byte [esp + 0x6c], 2
call fcn.00531940
lea ecx, [esp + 0x1c]
mov byte [esp + 0x6c], 1
call fcn.00531940
lea ecx, [esp + 0x20]
mov byte [esp + 0x6c], 0
call fcn.00531940
mov eax, dword [esp + 0x5c]
mov esi, dword [esp + 0x58]
cmp esi, eax
mov dword [esp + 0x6c], 0xffffffff
mov edi, eax
je 0x40e151
mov ecx, esi
call fcn.00531940
add esi, 4
cmp esi, edi
jne 0x40dedc
jmp 0x40e14d
mov eax, dword [esp + 0x6c]
sub eax, ecx
sar eax, 2
test eax, eax
jge 0x40defe
xor eax, eax
lea ecx, [eax*4]
push ecx
call fcn.00556a96
mov dword [edi + 4], eax
mov ecx, dword [esp + 0x70]
mov ebx, dword [esp + 0x6c]
add esp, 4
mov edi, eax
cmp ebx, ecx
mov dword [esp + 0x38], ecx
mov dword [esp + 0x3c], edi
je 0x40df53
mov dword [esp + 0x48], edi
test edi, edi
mov byte [esp + 0x7c], 7
je 0x40df3c
push ebx
mov ecx, edi
call fcn.00531810
mov eax, dword [esp + 0x38]
add ebx, 4
add edi, 4
cmp ebx, eax
mov byte [esp + 0x7c], 3
mov dword [esp + 0x3c], edi
jne 0x40df27
mov eax, dword [esp + 0x40]
mov ecx, esi
mov dword [eax + 8], edi
mov dword [eax + 0xc], edi
call fcn.0040e420
test ax, ax
je 0x40e0ff
mov ecx, dword [0x5c6634]
call fcn.00539bf0
mov di, ax
inc edi
test di, di
je 0x40de19
mov eax, dword [esp + 0x34]
mov ecx, eax
sub ecx, 0x13
je 0x40e095
sub ecx, 4
je 0x40dff3
dec ecx
je 0x40e1cc
lea edx, [eax + eax*2]
movsx ecx, di
lea eax, [eax + edx*4]
lea edx, [ecx + eax*2]
mov al, byte [edx*2 + 0x5726d4]
cmp al, 0xff
mov byte [esp + 0x24], al
je 0x40dfdd
lea eax, [esi + 0xc]
push 2
push eax
mov eax, dword [esp + 0x2c]
and eax, 0xff
lea ecx, [eax + eax*4]
lea edx, [ecx*4 + 0x59c334]
lea ecx, [esi + 0x78]
push edx
call fcn.0043cb50
movzx ax, byte [ebp + 0x5726ca]
cmp di, ax
je 0x40e162
jmp 0x40de19
movsx ecx, di
dec ecx
je 0x40e048
dec ecx
je 0x40e008
dec ecx
je 0x40e307
jmp 0x40de19
movzx cx, byte [esp + 0x14]
cmp cx, word [ebp + 0x5726d8]
jbe 0x40e088
mov al, byte [esp + 0x14]
lea edx, [esi + 0xc]
dec al
push 2
mov byte [esp + 0x18], al
push edx
mov eax, dword [esp + 0x1c]
and eax, 0xff
lea eax, [eax + eax*4]
lea ecx, [eax*4 + 0x59c334]
push ecx
lea ecx, [esi + 0x78]
call fcn.0043cb50
jmp 0x40de19
movzx dx, byte [esp + 0x14]
cmp dx, word [ebp + 0x5726d6]
jae 0x40e088
mov bl, byte [esp + 0x14]
lea eax, [esi + 0xc]
inc bl
push 2
mov byte [esp + 0x18], bl
push eax
mov eax, dword [esp + 0x1c]
and eax, 0xff
lea ecx, [eax + eax*4]
lea edx, [ecx*4 + 0x59c334]
lea ecx, [esi + 0x78]
push edx
call fcn.0043cb50
jmp 0x40de19
push 0
call dword [sym.imp.USER32.dll_MessageBeep]
jmp 0x40de19
movsx eax, di
mov al, byte [eax*2 + 0x572ab0]
cmp al, 0xff
mov byte [esp + 0x24], al
je 0x40e0c9
mov eax, dword [esp + 0x24]
lea ecx, [esi + 0xc]
and eax, 0xff
push 2
push ecx
lea ecx, [esi + 0x78]
lea edx, [eax + eax*4]
lea eax, [edx*4 + 0x59c334]
push eax
call fcn.0043cb50
push 0x1f4
call fcn.0043d4c0
add esp, 4
lea ecx, [esi + 0xc]
push 2
push ecx
push 0x59c334
lea ecx, [esi + 0x78]
call fcn.0043cb50
movzx dx, byte [ebp + 0x5726ca]
cmp di, dx
je 0x40e394
jmp 0x40de19
lea ecx, [esp + 0x18]
mov byte [esp + 0x6c], 2
call fcn.00531940
lea ecx, [esp + 0x1c]
mov byte [esp + 0x6c], 1
call fcn.00531940
lea ecx, [esp + 0x20]
mov byte [esp + 0x6c], 0
call fcn.00531940
mov eax, dword [esp + 0x5c]
mov esi, dword [esp + 0x58]
cmp esi, eax
mov dword [esp + 0x6c], 0xffffffff
mov edi, eax
je 0x40e151
mov ecx, esi
call fcn.00531940
add esi, 4
cmp esi, edi
jne 0x40e13f
mov esi, dword [esp + 0x58]
push esi
call fcn.00556360
add esp, 4
xor ax, ax
jmp 0x40e406
lea eax, [esi + 0xc]
push 2
push eax
push 0x59c334
lea ecx, [esi + 0x78]
call fcn.0043cb50
lea ecx, [esp + 0x18]
mov byte [esp + 0x6c], 2
call fcn.00531940
lea ecx, [esp + 0x1c]
mov byte [esp + 0x6c], 1
call fcn.00531940
lea ecx, [esp + 0x20]
mov byte [esp + 0x6c], 0
call fcn.00531940
mov eax, dword [esp + 0x5c]
mov esi, dword [esp + 0x58]
cmp esi, eax
mov dword [esp + 0x6c], 0xffffffff
mov edi, eax
je 0x40e3f9
mov ecx, esi
call fcn.00531940
add esi, 4
cmp esi, edi
jne 0x40e1b9
jmp 0x40e3f5
push 0
push 0
push ecx
mov ecx, esp
mov dword [esp + 0x80], esp
push 6
push 0x59b910
call fcn.005318a0
push ecx
mov byte [esp + 0x7c], 8
mov ecx, esp
mov dword [esp + 0x48], esp
push 6
push 0x59ccd4
call fcn.005318a0
mov ecx, 0x5c6628
mov byte [esp + 0x7c], 3
call fcn.00533b90
lea edi, [esi + 0xc]
push 2
lea ecx, [esp + 0x40]
add esi, 0x78
push edi
push ecx
mov ecx, esi
call fcn.0043cb50
push 0xc8
call fcn.0043d4c0
add esp, 4
lea edx, [esp + 0x44]
mov ecx, esi
push 2
push edi
push edx
call fcn.0043cb50
push 0xc8
call fcn.0043d4c0
add esp, 4
mov ebx, 7
push 2
lea eax, [esp + 0x50]
push edi
push eax
mov ecx, esi
call fcn.0043cb50
push 0xc8
call fcn.0043d4c0
add esp, 4
dec ebx
jne 0x40e250
push 0
push 1
push ecx
mov ecx, esp
mov dword [esp + 0x80], esp
push 6
push 0x59b910
call fcn.005318a0
push ecx
mov byte [esp + 0x7c], 9
mov ecx, esp
mov dword [esp + 0x48], esp
push 6
push 0x59cccc
call fcn.005318a0
mov ecx, 0x5c6628
mov byte [esp + 0x7c], 3
call fcn.00533b90
lea ecx, [esp + 0x18]
mov byte [esp + 0x6c], 2
call fcn.00531940
lea ecx, [esp + 0x1c]
mov byte [esp + 0x6c], 1
call fcn.00531940
lea ecx, [esp + 0x20]
mov byte [esp + 0x6c], 0
call fcn.00531940
mov eax, dword [esp + 0x5c]
mov esi, dword [esp + 0x58]
cmp esi, eax
mov dword [esp + 0x6c], 0xffffffff
mov edi, eax
je 0x40e3f9
mov ecx, esi
call fcn.00531940
add esi, 4
cmp esi, edi
jne 0x40e2f4
jmp 0x40e3f5
lea ecx, [eax + eax*2]
lea edx, [eax + ecx*4]
movsx eax, di
lea ecx, [eax + edx*2]
mov al, byte [ecx*2 + 0x5726d4]
cmp al, 0xff
mov byte [esp + 0x24], al
je 0x40e344
mov eax, dword [esp + 0x24]
lea edx, [esi + 0xc]
and eax, 0xff
push 2
push edx
lea eax, [eax + eax*4]
lea ecx, [eax*4 + 0x59c334]
push ecx
lea ecx, [esi + 0x78]
call fcn.0043cb50
lea ecx, [esp + 0x18]
mov byte [esp + 0x6c], 2
call fcn.00531940
lea ecx, [esp + 0x1c]
mov byte [esp + 0x6c], 1
call fcn.00531940
lea ecx, [esp + 0x20]
mov byte [esp + 0x6c], 0
call fcn.00531940
mov eax, dword [esp + 0x5c]
mov esi, dword [esp + 0x58]
cmp esi, eax
mov dword [esp + 0x6c], 0xffffffff
mov edi, eax
je 0x40e3f9
mov ecx, esi
call fcn.00531940
add esi, 4
cmp esi, edi
jne 0x40e384
jmp 0x40e3f5
lea edx, [esi + 0xc]
push 2
push edx
push 0x59c334
lea ecx, [esi + 0x78]
call fcn.0043cb50
lea ecx, [esp + 0x18]
mov byte [esp + 0x6c], 2
call fcn.00531940
lea ecx, [esp + 0x1c]
mov byte [esp + 0x6c], 1
call fcn.00531940
lea ecx, [esp + 0x20]
mov byte [esp + 0x6c], 0
call fcn.00531940
mov eax, dword [esp + 0x5c]
mov esi, dword [esp + 0x58]
cmp esi, eax
mov dword [esp + 0x6c], 0xffffffff
mov edi, eax
je 0x40e3f9
mov ecx, esi
call fcn.00531940
add esi, 4
cmp esi, edi
jne 0x40e3e7
mov esi, dword [esp + 0x58]
push esi
call fcn.00556360
add esp, 4
mov ax, 1
mov ecx, dword [esp + 0x64]
pop edi
pop esi
pop ebp
mov dword fs:[0], ecx
pop ebx
add esp, 0x60
ret 4