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

Disassembly:
push ebp
mov ebp, esp
sub esp, 0xc
push esi
xor edx, edx
xor esi, esi
cmp dword [ebp + 0x14], edx
jle 0x43b809
push ebx
mov ebx, dword [ebp + 0xc]
push edi
mov edi, dword [ebp + 0x10]
lea esp, [esp]
movsx ecx, word [edi + esi*4]
test ecx, ecx
je case.0x43ad14.35
movsx eax, word [edi + esi*4 + 2]
and ecx, 0xff
dec ecx
or edx, 1
cmp ecx, 0x3e
ja case.0x43ad14.35
jmp dword [ecx*4 + 0x43b810]
add dword [ebx], eax
jmp case.0x43ad14.35
add dword [ebx + 4], eax
jmp case.0x43ad14.35
add dword [ebx + 8], eax
jmp case.0x43ad14.35
add dword [ebx + 0xc], eax
jmp case.0x43ad14.35
add dword [ebx + 0x10], eax
jmp case.0x43ad14.35
add dword [ebx + 0x14], eax
jmp case.0x43ad14.35
add dword [ebx + 4], eax
add dword [ebx + 8], eax
add dword [ebx + 0xc], eax
add dword [ebx + 0x10], eax
add dword [ebx + 0x14], eax
add dword [ebx + 0x18], eax
jmp case.0x43ad14.35
add dword [ebx + 0x20], eax
jmp case.0x43ad14.35
add dword [ebx + 0x24], eax
jmp case.0x43ad14.35
add dword [ebx + 0x28], eax
jmp case.0x43ad14.35
add dword [ebx + 0x2c], eax
jmp case.0x43ad14.35
add dword [ebx + 0x30], eax
jmp case.0x43ad14.35
add dword [ebx + 0x34], eax
jmp case.0x43ad14.35
add dword [ebx + 0x38], eax
jmp case.0x43ad14.35
add dword [ebx + 0x20], eax
add dword [ebx + 0x24], eax
add dword [ebx + 0x28], eax
add dword [ebx + 0x2c], eax
add dword [ebx + 0x30], eax
add dword [ebx + 0x34], eax
add dword [ebx + 0x38], eax
add dword [ebx + 0x3c], eax
jmp case.0x43ad14.35
add dword [ebx + 0x44], eax
jmp case.0x43ad14.35
add dword [ebx + 0x48], eax
jmp case.0x43ad14.35
add dword [ebx + 0x4c], eax
jmp case.0x43ad14.35
add dword [ebx + 0x50], eax
jmp case.0x43ad14.35
add dword [ebx + 0x54], eax
jmp case.0x43ad14.35
add dword [ebx + 0x58], eax
jmp case.0x43ad14.35
add dword [ebx + 0x5c], eax
jmp case.0x43ad14.35
add dword [ebx + 0x44], eax
add dword [ebx + 0x48], eax
add dword [ebx + 0x4c], eax
add dword [ebx + 0x50], eax
add dword [ebx + 0x54], eax
add dword [ebx + 0x58], eax
add dword [ebx + 0x5c], eax
add dword [ebx + 0x60], eax
jmp case.0x43ad14.35
add dword [ebx + 0x64], eax
jmp case.0x43ad14.35
add dword [ebx + 0x68], eax
jmp case.0x43ad14.35
add dword [ebx + 0x6c], eax
jmp case.0x43ad14.35
mov dword [ebx + 0x70], eax
jmp case.0x43ad14.35
mov dword [ebx + 0x74], eax
jmp case.0x43ad14.35
mov dword [ebx + 0x78], eax
jmp case.0x43ad14.35
add dword [ebx + 0x9c], eax
jmp case.0x43ad14.35
add dword [ebx + 0xa0], eax
jmp case.0x43ad14.35
add dword [ebx + 0x80], eax
jmp case.0x43ad14.35
add dword [ebx + 0x84], eax
jmp case.0x43ad14.35
add dword [ebx + 0x88], eax
jmp case.0x43ad14.35
add dword [ebx + 0x8c], eax
jmp case.0x43ad14.35
add dword [ebx + 0x90], eax
jmp case.0x43ad14.35
add dword [ebx + 0x80], eax
add dword [ebx + 0x84], eax
add dword [ebx + 0x88], eax
add dword [ebx + 0x8c], eax
add dword [ebx + 0x90], eax
add dword [ebx + 0x94], eax
jmp case.0x43ad14.35
mov dword [ebx + 0x98], eax
jmp case.0x43ad14.35
add dword [ebx + 0xa8], eax
jmp case.0x43ad14.35
add dword [ebx + 0xac], eax
jmp case.0x43ad14.35
add dword [ebx + 0xb0], eax
jmp case.0x43ad14.35
add dword [ebx + 0xb4], eax
jmp case.0x43ad14.35
add dword [ebx + 0xb8], eax
jmp case.0x43ad14.35
add dword [ebx + 0xbc], eax
jmp case.0x43ad14.35
add dword [ebx + 0xc0], eax
jmp case.0x43ad14.35
add dword [ebx + 0xc4], eax
jmp case.0x43ad14.35
add dword [ebx + 0xc8], eax
jmp case.0x43ad14.35
add dword [ebx + 0xcc], eax
jmp case.0x43ad14.35
add dword [ebx + 0xd0], eax
jmp case.0x43ad14.35
mov ecx, eax
sar ecx, 8
mov byte [ebx + 0xd4], cl
mov byte [ebx + 0xd5], al
jmp case.0x43ad14.35
mov ecx, eax
sar ecx, 8
mov byte [ebx + 0xd6], cl
mov byte [ebx + 0xd7], al
jmp case.0x43ad14.35
mov ecx, eax
sar ecx, 8
mov byte [ebx + 0xd8], cl
mov byte [ebx + 0xd9], al
jmp case.0x43ad14.35
add dword [ebx + 0xda], eax
jmp case.0x43ad14.35
add dword [ebx + 0xde], eax
inc esi
cmp esi, dword [ebp + 0x14]
jl 0x43acf0
mov dword [ebp - 8], edx
test edx, edx
je 0x43b800
mov eax, dword [ebx + 0xc8]
mov esi, dword [ebp + 8]
test eax, eax
je 0x43af99
push 0
push 1
push esi
push 0x5ddb
push eax
call fcn.0040f8d0
add esp, 0x14
mov eax, dword [ebx + 0xcc]
test eax, eax
je 0x43afb6
push 0
push 1
push esi
push 0x5ddd
push eax
call fcn.0040f8d0
add esp, 0x14
mov eax, dword [ebx + 0xd0]
test eax, eax
je 0x43afd6
push 0
push reloc.DSOUND.dll_DirectSoundCreate
push esi
push 0x5ddc
push eax
call fcn.0040f8d0
add esp, 0x14
mov eax, dword [ebx + 4]
test eax, eax
je 0x43aff0
push 0
push 1
push esi
push 0x5dc6
push eax
call fcn.0040f8d0
add esp, 0x14
mov eax, dword [ebx + 8]
test eax, eax
je 0x43b00a
push 0
push 1
push esi
push 0x5dc7
push eax
call fcn.0040f8d0
add esp, 0x14
mov eax, dword [ebx + 0x14]
test eax, eax
je 0x43b024
push 0
push 1
push esi
push 0x5dca
push eax
call fcn.0040f8d0
add esp, 0x14
mov eax, dword [ebx + 0xc]
test eax, eax
je 0x43b03e
push 0
push 1
push esi
push 0x5dc8
push eax
call fcn.0040f8d0
add esp, 0x14
mov eax, dword [ebx + 0x10]
test eax, eax
je 0x43b058
push 0
push 1
push esi
push 0x5dc9
push eax
call fcn.0040f8d0
add esp, 0x14
mov eax, dword [ebx + 0x18]
test eax, eax
je 0x43b072
push 0
push 1
push esi
push 0x5dcb
push eax
call fcn.0040f8d0
add esp, 0x14
mov eax, dword [ebx + 0x98]
test eax, eax
je 0x43b08f
push 0
push 1
push esi
push 0x5de1
push eax
call fcn.0040f8d0
add esp, 0x14
mov eax, dword [ebx + 0x64]
test eax, eax
je 0x43b0a9
push 0
push 1
push esi
push 0x5ddf
push eax
call fcn.0040f8d0
add esp, 0x14
mov eax, dword [ebx + 0x68]
test eax, eax
je 0x43b0c3
push 0
push 1
push esi
push 0x5de0
push eax
call fcn.0040f8d0
add esp, 0x14
mov eax, dword [ebx + 0x9c]
test eax, eax
je 0x43b0e0
push 0
push 1
push esi
push 0x5dd9
push eax
call fcn.0040f8d0
add esp, 0x14
mov eax, dword [ebx + 0xa0]
test eax, eax
je 0x43b0fd
push 0
push 1
push esi
push 0x5dda
push eax
call fcn.0040f8d0
add esp, 0x14
lea edx, [ebx + 0x20]
mov dword [ebp + 0x14], 1
mov dword [ebp - 0xc], edx
lea ebx, [ebx]
mov eax, dword [ebp - 0xc]
mov eax, dword [eax]
mov dword [ebp - 4], eax
test eax, eax
je 0x43b186
lea edi, [esi - 1]
nop
mov al, byte [edi + 1]
inc edi
test al, al
jne 0x43b120
mov cx, word [0x59c7f8]
mov eax, esi
mov word [edi], cx
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x43b137
sub eax, edx
push 0x5dea
lea edi, [esi + eax]
call fcn.004856b0
mov edx, dword [ebp + 0x14]
add esp, 4
push eax
add edx, 0x5de1
push edx
call fcn.004856b0
add esp, 4
push eax
push 0x59cc54
push edi
call dword [sym.imp.USER32.dll_wsprintfA]
mov eax, dword [ebp - 4]
push 0
push closesocket
push esi
push 0
push eax
call fcn.0040f8d0
add esp, 0x24
mov eax, dword [ebp + 0x14]
add dword [ebp - 0xc], 4
inc eax
mov dword [ebp + 0x14], eax
cmp eax, 8
jle 0x43b110
lea ecx, [ebx + 0x44]
mov dword [ebp + 0x14], 1
mov dword [ebp - 0xc], ecx
mov edx, dword [ebp - 0xc]
mov eax, dword [edx]
mov dword [ebp - 4], eax
test eax, eax
je 0x43b21f
lea edi, [esi - 1]
mov al, byte [edi + 1]
inc edi
test al, al
jne 0x43b1b6
mov ax, word [0x59c7f8]
mov word [edi], ax
mov eax, esi
lea edx, [eax + 1]
lea esp, [esp]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x43b1d0
sub eax, edx
push 0x5deb
lea edi, [esi + eax]
call fcn.004856b0
mov ecx, dword [ebp + 0x14]
add esp, 4
push eax
add ecx, 0x5de1
push ecx
call fcn.004856b0
add esp, 4
push eax
push 0x59cc54
push edi
call dword [sym.imp.USER32.dll_wsprintfA]
mov edx, dword [ebp - 4]
push 0
push closesocket
push esi
push 0
push edx
call fcn.0040f8d0
add esp, 0x24
mov eax, dword [ebp + 0x14]
add dword [ebp - 0xc], 4
inc eax
mov dword [ebp + 0x14], eax
cmp eax, 8
jle 0x43b1a7
lea eax, [ebx + 0xa8]
mov dword [ebp + 0x14], 1
mov dword [ebp - 0xc], eax
mov ecx, dword [ebp - 0xc]
mov eax, dword [ecx]
mov dword [ebp - 4], eax
test eax, eax
je 0x43b2b9
lea edi, [esi - 1]
mov al, byte [edi + 1]
inc edi
test al, al
jne 0x43b252
mov dx, word [0x59c7f8]
mov eax, esi
mov word [edi], dx
lea edx, [eax + 1]
lea esp, [esp]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x43b270
sub eax, edx
lea edi, [esi + eax]
mov eax, dword [ebp + 0x14]
add eax, 0x5de1
push eax
call fcn.004856b0
add esp, 4
push eax
push 0x5f2c
call fcn.004856b0
add esp, 4
push eax
push edi
call dword [sym.imp.USER32.dll_wsprintfA]
mov ecx, dword [ebp - 4]
push 0
push closesocket
push esi
push 0
push ecx
call fcn.0040f8d0
add esp, 0x20
mov eax, dword [ebp + 0x14]
add dword [ebp - 0xc], 4
inc eax
mov dword [ebp + 0x14], eax
cmp eax, 8
jle 0x43b243
mov eax, dword [ebx + 0x80]
mov dword [ebp + 0x14], eax
test eax, eax
je 0x43b349
cmp byte [esi], 0
je 0x43b2f4
lea edi, [esi - 1]
mov al, byte [edi + 1]
inc edi
test al, al
jne 0x43b2e2
mov dx, word [0x59c7f8]
mov word [edi], dx
push 0x5deb
call fcn.004856b0
add esp, 4
mov edi, eax
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x43b303
sub eax, edi
mov edx, edi
dec esi
nop
mov cl, byte [esi + 1]
inc esi
test cl, cl
jne 0x43b310
mov ecx, eax
shr ecx, 2
mov edi, esi
mov esi, edx
rep movsd dword es:[edi], dword [esi]
push 0
mov ecx, eax
mov eax, dword [ebp + 8]
push closesocket
and ecx, 3
push eax
rep movsb byte es:[edi], byte [esi]
mov ecx, dword [ebp + 0x14]
push 0x5df1
push ecx
call fcn.0040f8d0
mov esi, dword [ebp + 8]
add esp, 0x14
mov eax, dword [ebx + 0x84]
mov dword [ebp + 0x14], eax
test eax, eax
je 0x43b3c9
cmp byte [esi], 0
je 0x43b372
lea edi, [esi - 1]
mov edi, edi
mov al, byte [edi + 1]
inc edi
test al, al
jne 0x43b360
mov dx, word [0x59c7f8]
mov word [edi], dx
push 0x5deb
call fcn.004856b0
add esp, 4
mov edi, eax
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x43b381
sub eax, edi
mov edx, edi
dec esi
lea ecx, [ecx]
mov cl, byte [esi + 1]
inc esi
test cl, cl
jne 0x43b390
mov ecx, eax
shr ecx, 2
mov edi, esi
mov esi, edx
rep movsd dword es:[edi], dword [esi]
push 0
mov ecx, eax
mov eax, dword [ebp + 8]
push closesocket
and ecx, 3
push eax
rep movsb byte es:[edi], byte [esi]
mov ecx, dword [ebp + 0x14]
push 0x5df2
push ecx
call fcn.0040f8d0
mov esi, dword [ebp + 8]
add esp, 0x14
mov eax, dword [ebx + 0x88]
mov dword [ebp + 0x14], eax
test eax, eax
je 0x43b449
cmp byte [esi], 0
je 0x43b3f2
lea edi, [esi - 1]
mov edi, edi
mov al, byte [edi + 1]
inc edi
test al, al
jne 0x43b3e0
mov dx, word [0x59c7f8]
mov word [edi], dx
push 0x5deb
call fcn.004856b0
add esp, 4
mov edi, eax
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x43b401
sub eax, edi
mov edx, edi
dec esi
lea ecx, [ecx]
mov cl, byte [esi + 1]
inc esi
test cl, cl
jne 0x43b410
mov ecx, eax
shr ecx, 2
mov edi, esi
mov esi, edx
rep movsd dword es:[edi], dword [esi]
push 0
mov ecx, eax
mov eax, dword [ebp + 8]
push closesocket
and ecx, 3
push eax
rep movsb byte es:[edi], byte [esi]
mov ecx, dword [ebp + 0x14]
push 0x5df3
push ecx
call fcn.0040f8d0
mov esi, dword [ebp + 8]
add esp, 0x14
mov eax, dword [ebx + 0x8c]
mov dword [ebp + 0x14], eax
test eax, eax
je 0x43b4c9
cmp byte [esi], 0
je 0x43b472
lea edi, [esi - 1]
mov edi, edi
mov al, byte [edi + 1]
inc edi
test al, al
jne 0x43b460
mov dx, word [0x59c7f8]
mov word [edi], dx
push 0x5deb
call fcn.004856b0
add esp, 4
mov edi, eax
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x43b481
sub eax, edi
mov edx, edi
dec esi
lea ecx, [ecx]
mov cl, byte [esi + 1]
inc esi
test cl, cl
jne 0x43b490
mov ecx, eax
shr ecx, 2
mov edi, esi
mov esi, edx
rep movsd dword es:[edi], dword [esi]
push 0
mov ecx, eax
mov eax, dword [ebp + 8]
push closesocket
and ecx, 3
push eax
rep movsb byte es:[edi], byte [esi]
mov ecx, dword [ebp + 0x14]
push 0x5df4
push ecx
call fcn.0040f8d0
mov esi, dword [ebp + 8]
add esp, 0x14
mov eax, dword [ebx + 0x90]
mov dword [ebp + 0x14], eax
test eax, eax
je 0x43b549
cmp byte [esi], 0
je 0x43b4f2
lea edi, [esi - 1]
mov edi, edi
mov al, byte [edi + 1]
inc edi
test al, al
jne 0x43b4e0
mov dx, word [0x59c7f8]
mov word [edi], dx
push 0x5deb
call fcn.004856b0
add esp, 4
mov edi, eax
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x43b501
sub eax, edi
mov edx, edi
dec esi
lea ecx, [ecx]
mov cl, byte [esi + 1]
inc esi
test cl, cl
jne 0x43b510
mov ecx, eax
shr ecx, 2
mov edi, esi
mov esi, edx
rep movsd dword es:[edi], dword [esi]
push 0
mov ecx, eax
mov eax, dword [ebp + 8]
push closesocket
and ecx, 3
push eax
rep movsb byte es:[edi], byte [esi]
mov ecx, dword [ebp + 0x14]
push 0x5df5
push ecx
call fcn.0040f8d0
mov esi, dword [ebp + 8]
add esp, 0x14
mov eax, dword [ebx + 0x94]
mov dword [ebp + 0x14], eax
test eax, eax
je 0x43b5c9
cmp byte [esi], 0
je 0x43b572
lea edi, [esi - 1]
mov edi, edi
mov al, byte [edi + 1]
inc edi
test al, al
jne 0x43b560
mov dx, word [0x59c7f8]
mov word [edi], dx
push 0x5deb
call fcn.004856b0
add esp, 4
mov edi, eax
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x43b581
sub eax, edi
mov edx, edi
dec esi
lea ecx, [ecx]
mov cl, byte [esi + 1]
inc esi
test cl, cl
jne 0x43b590
mov ecx, eax
shr ecx, 2
mov edi, esi
mov esi, edx
rep movsd dword es:[edi], dword [esi]
push 0
mov ecx, eax
mov eax, dword [ebp + 8]
push closesocket
and ecx, 3
push eax
rep movsb byte es:[edi], byte [esi]
mov ecx, dword [ebp + 0x14]
push 0x5df6
push ecx
call fcn.0040f8d0
mov esi, dword [ebp + 8]
add esp, 0x14
movzx eax, byte [ebx + 0xd5]
mov dword [ebp + 0x14], eax
test eax, eax
je 0x43b629
cmp byte [esi], 0
movzx edx, byte [ebx + 0xd4]
je 0x43b5f7
lea edi, [esi - 1]
mov al, byte [edi + 1]
inc edi
test al, al
jne 0x43b5e6
mov ax, word [0x59c7f8]
mov word [edi], ax
mov eax, esi
lea edi, [eax + 1]
lea esp, [esp]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x43b600
mov ecx, dword [ebp + 0x14]
push ecx
push edx
sub eax, edi
push 0x5f57
lea edi, [esi + eax]
call fcn.004856b0
add esp, 4
push eax
push edi
call dword [sym.imp.USER32.dll_wsprintfA]
add esp, 0x10
movzx edx, byte [ebx + 0xd7]
test edx, edx
je 0x43b689
cmp byte [esi], 0
movzx eax, byte [ebx + 0xd6]
mov dword [ebp - 4], eax
je 0x43b658
lea edi, [esi - 1]
mov al, byte [edi + 1]
inc edi
test al, al
jne 0x43b646
mov cx, word [0x59c7f8]
mov word [edi], cx
mov eax, esi
lea edi, [eax + 1]
lea ecx, [ecx]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x43b660
push edx
mov edx, dword [ebp - 4]
push edx
sub eax, edi
push 0x5f58
lea edi, [esi + eax]
call fcn.004856b0
add esp, 4
push eax
push edi
call dword [sym.imp.USER32.dll_wsprintfA]
add esp, 0x10
movzx eax, byte [ebx + 0xd9]
mov dword [ebp + 0x14], eax
test eax, eax
je 0x43b6e9
cmp byte [esi], 0
movzx edx, byte [ebx + 0xd8]
je 0x43b6b7
lea edi, [esi - 1]
mov al, byte [edi + 1]
inc edi
test al, al
jne 0x43b6a6
mov ax, word [0x59c7f8]
mov word [edi], ax
mov eax, esi
lea edi, [eax + 1]
lea esp, [esp]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x43b6c0
mov ecx, dword [ebp + 0x14]
push ecx
push edx
sub eax, edi
push 0x5f58
lea edi, [esi + eax]
call fcn.004856b0
add esp, 4
push eax
push edi
call dword [sym.imp.USER32.dll_wsprintfA]
add esp, 0x10
mov ecx, dword [ebx + 0xda]
test ecx, ecx
je 0x43b725
cmp byte [esi], 0
je 0x43b712
lea edi, [esi - 1]
jmp 0x43b700
mov al, byte [edi + 1]
inc edi
test al, al
jne 0x43b700
mov dx, word [0x59c7f8]
mov word [edi], dx
push 0
push 0
push esi
push 0x4c4b46
push ecx
call fcn.0040f8d0
add esp, 0x14
mov ecx, dword [ebx + 0xde]
test ecx, ecx
je 0x43b75b
cmp byte [esi], 0
je 0x43b748
lea edi, [esi - 1]
mov al, byte [edi + 1]
inc edi
test al, al
jne 0x43b737
mov ax, word [0x59c7f8]
mov word [edi], ax
push 0
push 0
push esi
push 0x4c4b47
push ecx
call fcn.0040f8d0
add esp, 0x14
mov ebx, dword [ebx + 0x70]
test ebx, ebx
je 0x43b7f6
lea ecx, [ebx - 2]
cmp ecx, 0x2f
ja 0x43b7f6
lea edi, [esi - 1]
mov al, byte [edi + 1]
inc edi
test al, al
jne 0x43b775
mov dx, word [0x59c7f8]
push 0x5dcd
mov word [edi], dx
call fcn.004856b0
add esp, 4
mov ecx, eax
mov dl, byte [eax]
inc eax
test dl, dl
jne 0x43b796
sub eax, ecx
mov edx, ecx
dec esi
mov cl, byte [esi + 1]
inc esi
test cl, cl
jne 0x43b7a2
mov edi, esi
mov ecx, eax
shr ecx, 2
mov esi, edx
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
add ebx, 0x5df9
push ebx
rep movsb byte es:[edi], byte [esi]
call fcn.004856b0
add esp, 4
mov ecx, eax
lea ecx, [ecx]
mov dl, byte [eax]
inc eax
test dl, dl
jne 0x43b7d0
mov edi, dword [ebp + 8]
sub eax, ecx
mov esi, ecx
dec edi
nop
mov cl, byte [edi + 1]
inc edi
test cl, cl
jne 0x43b7e0
mov ecx, eax
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov eax, dword [ebp - 8]
pop edi
pop ebx
pop esi
mov esp, ebp
pop ebp
ret
pop edi
pop ebx
mov eax, edx
pop esi
mov esp, ebp
pop ebp
ret
mov eax, edx
pop esi
mov esp, ebp
pop ebp
ret