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

Disassembly:
push ebp
mov ebp, esp
sub esp, 0xc
mov edx, dword [ebp + 0x20]
push ebx
mov ebx, dword [ebp + 0xc]
push esi
xor esi, esi
push edi
mov dword [ebp - 0xc], edx
cmp dword [ebp + 0x14], esi
jle 0x417935
mov edi, dword [ebp + 0x10]
movsx ecx, word [edi + esi*4]
test ecx, ecx
je case.0x4176b4.35
movsx eax, word [edi + esi*4 + 2]
and ecx, 0xff
dec ecx
or edx, 1
cmp ecx, 0x4d
ja case.0x4176b4.35
jmp dword [ecx*4 + 0x4184e4]
add dword [ebx], eax
jmp case.0x4176b4.35
add dword [ebx + 4], eax
jmp case.0x4176b4.35
add dword [ebx + 8], eax
jmp case.0x4176b4.35
add dword [ebx + 0xc], eax
jmp case.0x4176b4.35
add dword [ebx + 0x10], eax
jmp case.0x4176b4.35
add dword [ebx + 0x14], eax
jmp case.0x4176b4.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.0x4176b4.35
add dword [ebx + 0x20], eax
jmp case.0x4176b4.35
add dword [ebx + 0x24], eax
jmp case.0x4176b4.35
add dword [ebx + 0x28], eax
jmp case.0x4176b4.35
add dword [ebx + 0x2c], eax
jmp case.0x4176b4.35
add dword [ebx + 0x30], eax
jmp case.0x4176b4.35
add dword [ebx + 0x34], eax
jmp case.0x4176b4.35
add dword [ebx + 0x38], eax
jmp case.0x4176b4.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.0x4176b4.35
add dword [ebx + 0x44], eax
jmp case.0x4176b4.35
add dword [ebx + 0x48], eax
jmp case.0x4176b4.35
add dword [ebx + 0x4c], eax
jmp case.0x4176b4.35
add dword [ebx + 0x50], eax
jmp case.0x4176b4.35
add dword [ebx + 0x54], eax
jmp case.0x4176b4.35
add dword [ebx + 0x58], eax
jmp case.0x4176b4.35
add dword [ebx + 0x5c], eax
jmp case.0x4176b4.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.0x4176b4.35
add dword [ebx + 0x64], eax
jmp case.0x4176b4.35
add dword [ebx + 0x68], eax
jmp case.0x4176b4.35
add dword [ebx + 0x6c], eax
jmp case.0x4176b4.35
mov dword [ebx + 0x70], eax
jmp case.0x4176b4.35
mov dword [ebx + 0x74], eax
jmp case.0x4176b4.35
mov dword [ebx + 0x78], eax
jmp case.0x4176b4.35
add dword [ebx + 0x9c], eax
jmp case.0x4176b4.35
add dword [ebx + 0xa0], eax
jmp case.0x4176b4.35
add dword [ebx + 0x80], eax
jmp case.0x4176b4.35
add dword [ebx + 0x84], eax
jmp case.0x4176b4.35
add dword [ebx + 0x88], eax
jmp case.0x4176b4.35
add dword [ebx + 0x8c], eax
jmp case.0x4176b4.35
add dword [ebx + 0x90], eax
jmp case.0x4176b4.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.0x4176b4.35
mov dword [ebx + 0x98], eax
jmp case.0x4176b4.35
add dword [ebx + 0xa8], eax
jmp case.0x4176b4.35
add dword [ebx + 0xac], eax
jmp case.0x4176b4.35
add dword [ebx + 0xb0], eax
jmp case.0x4176b4.35
add dword [ebx + 0xb4], eax
jmp case.0x4176b4.35
add dword [ebx + 0xb8], eax
jmp case.0x4176b4.35
add dword [ebx + 0xbc], eax
jmp case.0x4176b4.35
add dword [ebx + 0xc0], eax
jmp case.0x4176b4.35
add dword [ebx + 0xc4], eax
jmp case.0x4176b4.35
add dword [ebx + 0xc8], eax
jmp case.0x4176b4.35
add dword [ebx + 0xcc], eax
jmp case.0x4176b4.35
add dword [ebx + 0xd0], eax
jmp case.0x4176b4.35
mov ecx, eax
sar ecx, 8
mov byte [ebx + 0xd4], cl
mov byte [ebx + 0xd5], al
jmp case.0x4176b4.35
mov ecx, eax
sar ecx, 8
mov byte [ebx + 0xd6], cl
mov byte [ebx + 0xd7], al
jmp case.0x4176b4.35
mov ecx, eax
sar ecx, 8
mov byte [ebx + 0xd8], cl
mov byte [ebx + 0xd9], al
jmp case.0x4176b4.35
add dword [ebx + 0xda], eax
jmp case.0x4176b4.35
add dword [ebx + 0xde], eax
jmp case.0x4176b4.35
mov dword [ebx + 0xe2], eax
jmp case.0x4176b4.35
mov dword [ebx + 0xe6], eax
jmp case.0x4176b4.35
add dword [ebx + 0xea], eax
inc esi
cmp esi, dword [ebp + 0x14]
jl 0x417690
mov dword [ebp - 0xc], edx
test edx, edx
je 0x4184d8
mov eax, dword [ebx]
mov esi, dword [ebp + 8]
test eax, eax
je 0x41799a
mov cl, byte [ebp + 0x1c]
test cl, 1
je 0x41796e
mov ecx, dword [ebp + 0x18]
cmp ecx, 1
jge 0x41795b
mov ecx, 1
push ecx
push eax
call fcn.0047f990
push 0
push 1
push esi
push 0x5eea
jmp 0x417991
test cl, 6
je 0x41799a
mov ecx, dword [ebp + 0x18]
cmp ecx, 1
jge 0x417980
mov ecx, 1
push ecx
push eax
call fcn.0047f9d0
push 0
push 1
push esi
push 0x5ddd
push eax
call fcn.0040f3d0
add esp, 0x1c
mov eax, dword [ebx + 0xc8]
test eax, eax
je 0x4179b7
push 0
push 1
push esi
push 0x5ddb
push eax
call fcn.0040f3d0
add esp, 0x14
mov eax, dword [ebx + 0xcc]
test eax, eax
je 0x4179d4
push 0
push 1
push esi
push 0x5ddd
push eax
call fcn.0040f3d0
add esp, 0x14
mov eax, dword [ebx + 0xd0]
test eax, eax
je 0x4179f4
push 0
push reloc.DSOUND.dll_DirectSoundCreate
push esi
push 0x5ddc
push eax
call fcn.0040f3d0
add esp, 0x14
mov eax, dword [ebx + 0x74]
mov dword [ebp + 0x14], eax
test eax, eax
je 0x417a62
lea edi, [esi - 1]
mov al, byte [edi + 1]
inc edi
test al, al
jne 0x417a01
mov dx, word [0x5a57f8]
mov eax, esi
mov word [edi], dx
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x417a18
sub eax, edx
push 0x5ea6
lea edi, [esi + eax]
call fcn.00486120
add esp, 4
push eax
push 0x5dee
call fcn.00486120
add esp, 4
push eax
push 0x5a5c4c
push edi
call dword [sym.imp.USER32.dll_wsprintfA]
mov eax, dword [ebp + 0x14]
push 0
push closesocket
push esi
push 0
push eax
call fcn.0040f3d0
add esp, 0x24
mov eax, dword [ebx + 0x70]
test eax, eax
je 0x417a7c
push 0
push 1
push esi
push 0x5dcd
push eax
call fcn.0040f3d0
add esp, 0x14
mov eax, dword [ebx + 0x78]
test eax, eax
je 0x417a99
push 0
push reloc.DSOUND.dll_DirectSoundCreate
push esi
push 0x5def
push eax
call fcn.0040f3d0
add esp, 0x14
mov eax, dword [ebx + 4]
test eax, eax
je 0x417ab3
push 0
push 1
push esi
push 0x5dc6
push eax
call fcn.0040f3d0
add esp, 0x14
mov eax, dword [ebx + 8]
test eax, eax
je 0x417acd
push 0
push 1
push esi
push 0x5dc7
push eax
call fcn.0040f3d0
add esp, 0x14
mov eax, dword [ebx + 0x14]
test eax, eax
je 0x417ae7
push 0
push 1
push esi
push 0x5dca
push eax
call fcn.0040f3d0
add esp, 0x14
mov eax, dword [ebx + 0xc]
test eax, eax
je 0x417b01
push 0
push 1
push esi
push 0x5dc8
push eax
call fcn.0040f3d0
add esp, 0x14
mov eax, dword [ebx + 0x10]
test eax, eax
je 0x417b1b
push 0
push 1
push esi
push 0x5dc9
push eax
call fcn.0040f3d0
add esp, 0x14
mov eax, dword [ebx + 0x18]
test eax, eax
je 0x417b35
push 0
push 1
push esi
push 0x5dcb
push eax
call fcn.0040f3d0
add esp, 0x14
mov eax, dword [ebx + 0x98]
test eax, eax
je 0x417b52
push 0
push 1
push esi
push 0x5de1
push eax
call fcn.0040f3d0
add esp, 0x14
mov eax, dword [ebx + 0x64]
test eax, eax
je 0x417b6c
push 0
push 1
push esi
push 0x5ddf
push eax
call fcn.0040f3d0
add esp, 0x14
mov eax, dword [ebx + 0x68]
test eax, eax
je 0x417b86
push 0
push 1
push esi
push 0x5de0
push eax
call fcn.0040f3d0
add esp, 0x14
mov eax, dword [ebx + 0x9c]
test eax, eax
je 0x417ba3
push 0
push 1
push esi
push 0x5dd9
push eax
call fcn.0040f3d0
add esp, 0x14
mov eax, dword [ebx + 0xa0]
test eax, eax
je 0x417bc0
push 0
push 1
push esi
push 0x5dda
push eax
call fcn.0040f3d0
add esp, 0x14
mov eax, dword [ebx + 0xea]
test eax, eax
je 0x417be0
push 0
push reloc.DSOUND.dll_DirectSoundCreate
push esi
push 0x5dde
push eax
call fcn.0040f3d0
add esp, 0x14
lea ecx, [ebx + 0x20]
mov dword [ebp - 4], 0
mov dword [ebp + 0x14], 1
mov dword [ebp - 8], ecx
mov edx, dword [ebp - 8]
mov eax, dword [edx]
mov dword [ebp + 0x20], eax
test eax, eax
je 0x417c96
cmp dword [ebp - 4], 0
lea edi, [esi - 1]
jne 0x417c30
lea ecx, [ecx]
mov al, byte [edi + 1]
inc edi
test al, al
jne 0x417c10
mov ax, word [0x5a57f8]
mov word [edi], ax
mov dword [ebp - 4], 1
jmp 0x417c42
mov al, byte [edi + 1]
inc edi
test al, al
jne 0x417c30
mov cx, word [0x5a5bdc]
mov word [edi], cx
mov eax, esi
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x417c47
sub eax, edx
push 0x5dea
lea edi, [esi + eax]
call fcn.00486120
mov edx, dword [ebp + 0x14]
add esp, 4
push eax
add edx, 0x5de1
push edx
call fcn.00486120
add esp, 4
push eax
push 0x5a5c4c
push edi
call dword [sym.imp.USER32.dll_wsprintfA]
mov eax, dword [ebp + 0x20]
push 0
push closesocket
push esi
push 0
push eax
call fcn.0040f3d0
add esp, 0x24
mov eax, dword [ebp + 0x14]
add dword [ebp - 8], 4
inc eax
mov dword [ebp + 0x14], eax
cmp eax, 8
jle 0x417bf4
lea ecx, [ebx + 0x44]
mov dword [ebp - 4], 0
mov dword [ebp + 0x14], 1
mov dword [ebp - 8], ecx
mov edi, edi
mov edx, dword [ebp - 8]
mov eax, dword [edx]
mov dword [ebp + 0x20], eax
test eax, eax
je 0x417d66
cmp dword [ebp - 4], 0
lea edi, [esi - 1]
jne 0x417d00
lea esp, [esp]
mov al, byte [edi + 1]
inc edi
test al, al
jne 0x417ce0
mov ax, word [0x5a57f8]
mov word [edi], ax
mov dword [ebp - 4], 1
jmp 0x417d12
mov al, byte [edi + 1]
inc edi
test al, al
jne 0x417d00
mov cx, word [0x5a5bdc]
mov word [edi], cx
mov eax, esi
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x417d17
sub eax, edx
push 0x5deb
lea edi, [esi + eax]
call fcn.00486120
mov edx, dword [ebp + 0x14]
add esp, 4
push eax
add edx, 0x5de1
push edx
call fcn.00486120
add esp, 4
push eax
push 0x5a5c4c
push edi
call dword [sym.imp.USER32.dll_wsprintfA]
mov eax, dword [ebp + 0x20]
push 0
push closesocket
push esi
push 0
push eax
call fcn.0040f3d0
add esp, 0x24
mov eax, dword [ebp + 0x14]
add dword [ebp - 8], 4
inc eax
mov dword [ebp + 0x14], eax
cmp eax, 8
jle 0x417cc0
lea ecx, [ebx + 0xa8]
mov dword [ebp + 0x14], 1
mov dword [ebp - 8], ecx
lea ebx, [ebx]
mov edx, dword [ebp - 8]
mov eax, dword [edx]
mov dword [ebp + 0x20], eax
test eax, eax
je 0x417e00
lea edi, [esi - 1]
nop
mov al, byte [edi + 1]
inc edi
test al, al
jne 0x417da0
mov ax, word [0x5a57f8]
mov word [edi], ax
mov eax, esi
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x417db6
mov ecx, dword [ebp + 0x14]
add ecx, 0x5de1
sub eax, edx
push ecx
lea edi, [esi + eax]
call fcn.00486120
add esp, 4
push eax
push 0x5f2c
call fcn.00486120
add esp, 4
push eax
push edi
call dword [sym.imp.USER32.dll_wsprintfA]
mov edx, dword [ebp + 0x20]
push 0
push closesocket
push esi
push 0
push edx
call fcn.0040f3d0
add esp, 0x20
mov eax, dword [ebp + 0x14]
add dword [ebp - 8], 4
inc eax
mov dword [ebp + 0x14], eax
cmp eax, 8
jle 0x417d90
mov eax, dword [ebx + 0x80]
mov dword [ebp + 0x14], eax
test eax, eax
je 0x417e8a
cmp byte [esi], 0
je 0x417e36
lea edi, [esi - 1]
mov al, byte [edi + 1]
inc edi
test al, al
jne 0x417e25
mov ax, word [0x5a57f8]
mov word [edi], ax
push 0x5deb
call fcn.00486120
add esp, 4
mov edi, eax
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x417e45
sub eax, edi
mov edx, edi
dec esi
mov cl, byte [esi + 1]
inc esi
test cl, cl
jne 0x417e51
mov edi, esi
mov ecx, eax
shr ecx, 2
mov esi, edx
mov edx, dword [ebp + 0x14]
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
push 0
rep movsb byte es:[edi], byte [esi]
mov ecx, dword [ebp + 8]
push closesocket
push ecx
push 0x5df1
push edx
call fcn.0040f3d0
mov esi, dword [ebp + 8]
add esp, 0x14
mov eax, dword [ebx + 0x84]
mov dword [ebp + 0x14], eax
test eax, eax
je 0x417f09
cmp byte [esi], 0
je 0x417eb1
lea edi, [esi - 1]
nop
mov al, byte [edi + 1]
inc edi
test al, al
jne 0x417ea0
mov ax, word [0x5a57f8]
mov word [edi], ax
push 0x5deb
call fcn.00486120
add esp, 4
mov edi, eax
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x417ec0
sub eax, edi
mov edx, edi
dec esi
lea esp, [esp]
mov cl, byte [esi + 1]
inc esi
test cl, cl
jne 0x417ed0
mov edi, esi
mov ecx, eax
shr ecx, 2
mov esi, edx
mov edx, dword [ebp + 0x14]
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
push 0
rep movsb byte es:[edi], byte [esi]
mov ecx, dword [ebp + 8]
push closesocket
push ecx
push 0x5df2
push edx
call fcn.0040f3d0
mov esi, dword [ebp + 8]
add esp, 0x14
mov eax, dword [ebx + 0x88]
mov dword [ebp + 0x14], eax
test eax, eax
je 0x417f89
cmp byte [esi], 0
je 0x417f31
lea edi, [esi - 1]
mov edi, edi
mov al, byte [edi + 1]
inc edi
test al, al
jne 0x417f20
mov ax, word [0x5a57f8]
mov word [edi], ax
push 0x5deb
call fcn.00486120
add esp, 4
mov edi, eax
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x417f40
sub eax, edi
mov edx, edi
dec esi
lea esp, [esp]
mov cl, byte [esi + 1]
inc esi
test cl, cl
jne 0x417f50
mov edi, esi
mov ecx, eax
shr ecx, 2
mov esi, edx
mov edx, dword [ebp + 0x14]
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
push 0
rep movsb byte es:[edi], byte [esi]
mov ecx, dword [ebp + 8]
push closesocket
push ecx
push 0x5df3
push edx
call fcn.0040f3d0
mov esi, dword [ebp + 8]
add esp, 0x14
mov eax, dword [ebx + 0x8c]
mov dword [ebp + 0x14], eax
test eax, eax
je 0x418009
cmp byte [esi], 0
je 0x417fb1
lea edi, [esi - 1]
mov edi, edi
mov al, byte [edi + 1]
inc edi
test al, al
jne 0x417fa0
mov ax, word [0x5a57f8]
mov word [edi], ax
push 0x5deb
call fcn.00486120
add esp, 4
mov edi, eax
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x417fc0
sub eax, edi
mov edx, edi
dec esi
lea esp, [esp]
mov cl, byte [esi + 1]
inc esi
test cl, cl
jne 0x417fd0
mov edi, esi
mov ecx, eax
shr ecx, 2
mov esi, edx
mov edx, dword [ebp + 0x14]
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
push 0
rep movsb byte es:[edi], byte [esi]
mov ecx, dword [ebp + 8]
push closesocket
push ecx
push 0x5df4
push edx
call fcn.0040f3d0
mov esi, dword [ebp + 8]
add esp, 0x14
mov eax, dword [ebx + 0x90]
mov dword [ebp + 0x14], eax
test eax, eax
je 0x418089
cmp byte [esi], 0
je 0x418031
lea edi, [esi - 1]
mov edi, edi
mov al, byte [edi + 1]
inc edi
test al, al
jne 0x418020
mov ax, word [0x5a57f8]
mov word [edi], ax
push 0x5deb
call fcn.00486120
add esp, 4
mov edi, eax
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x418040
sub eax, edi
mov edx, edi
dec esi
lea esp, [esp]
mov cl, byte [esi + 1]
inc esi
test cl, cl
jne 0x418050
mov edi, esi
mov ecx, eax
shr ecx, 2
mov esi, edx
mov edx, dword [ebp + 0x14]
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
push 0
rep movsb byte es:[edi], byte [esi]
mov ecx, dword [ebp + 8]
push closesocket
push ecx
push 0x5df5
push edx
call fcn.0040f3d0
mov esi, dword [ebp + 8]
add esp, 0x14
mov eax, dword [ebx + 0x94]
mov dword [ebp + 0x14], eax
test eax, eax
je 0x418109
cmp byte [esi], 0
je 0x4180b1
lea edi, [esi - 1]
mov edi, edi
mov al, byte [edi + 1]
inc edi
test al, al
jne 0x4180a0
mov ax, word [0x5a57f8]
mov word [edi], ax
push 0x5deb
call fcn.00486120
add esp, 4
mov edi, eax
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x4180c0
sub eax, edi
mov edx, edi
dec esi
lea esp, [esp]
mov cl, byte [esi + 1]
inc esi
test cl, cl
jne 0x4180d0
mov edi, esi
mov ecx, eax
shr ecx, 2
mov esi, edx
mov edx, dword [ebp + 0x14]
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
push 0
rep movsb byte es:[edi], byte [esi]
mov ecx, dword [ebp + 8]
push closesocket
push ecx
push 0x5df6
push edx
call fcn.0040f3d0
mov esi, dword [ebp + 8]
add esp, 0x14
movzx eax, byte [ebx + 0xd5]
mov dword [ebp + 0x14], eax
test eax, eax
je 0x418169
cmp byte [esi], 0
movzx edx, byte [ebx + 0xd4]
je 0x418137
lea edi, [esi - 1]
mov al, byte [edi + 1]
inc edi
test al, al
jne 0x418126
mov ax, word [0x5a57f8]
mov word [edi], ax
mov eax, esi
lea edi, [eax + 1]
lea esp, [esp]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x418140
mov ecx, dword [ebp + 0x14]
push ecx
push edx
sub eax, edi
push 0x5f57
lea edi, [esi + eax]
call fcn.00486120
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 0x4181c9
cmp byte [esi], 0
movzx eax, byte [ebx + 0xd6]
mov dword [ebp + 0x20], eax
je 0x418198
lea edi, [esi - 1]
mov al, byte [edi + 1]
inc edi
test al, al
jne 0x418186
mov cx, word [0x5a57f8]
mov word [edi], cx
mov eax, esi
lea edi, [eax + 1]
lea ecx, [ecx]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x4181a0
push edx
mov edx, dword [ebp + 0x20]
push edx
sub eax, edi
push 0x5f58
lea edi, [esi + eax]
call fcn.00486120
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 0x418229
cmp byte [esi], 0
movzx edx, byte [ebx + 0xd8]
je 0x4181f7
lea edi, [esi - 1]
mov al, byte [edi + 1]
inc edi
test al, al
jne 0x4181e6
mov ax, word [0x5a57f8]
mov word [edi], ax
mov eax, esi
lea edi, [eax + 1]
lea esp, [esp]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x418200
mov ecx, dword [ebp + 0x14]
push ecx
push edx
sub eax, edi
push 0x5f58
lea edi, [esi + eax]
call fcn.00486120
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 0x418265
cmp byte [esi], 0
je 0x418252
lea edi, [esi - 1]
jmp 0x418240
mov al, byte [edi + 1]
inc edi
test al, al
jne 0x418240
mov dx, word [0x5a57f8]
mov word [edi], dx
push 0
push 0
push esi
push 0x4c4b46
push ecx
call fcn.0040f3d0
add esp, 0x14
mov ecx, dword [ebx + 0xde]
test ecx, ecx
je 0x41829b
cmp byte [esi], 0
je 0x418288
lea edi, [esi - 1]
mov al, byte [edi + 1]
inc edi
test al, al
jne 0x418277
mov ax, word [0x5a57f8]
mov word [edi], ax
push 0
push 0
push esi
push 0x4c4b47
push ecx
call fcn.0040f3d0
add esp, 0x14
mov eax, dword [ebx + 0x70]
mov dword [ebp + 0x14], eax
test eax, eax
je 0x418349
add eax, 0xfffffffe
cmp eax, 0x2f
ja 0x418349
lea edi, [esi - 1]
mov al, byte [edi + 1]
inc edi
test al, al
jne 0x4182b8
mov cx, word [0x5a57f8]
push 0x5dcd
mov word [edi], cx
call fcn.00486120
add esp, 4
mov edi, eax
lea esp, [esp]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x4182e0
sub eax, edi
mov edx, edi
dec esi
lea esp, [esp]
mov cl, byte [esi + 1]
inc esi
test cl, cl
jne 0x4182f0
mov edi, esi
mov ecx, eax
shr ecx, 2
mov esi, edx
mov edx, dword [ebp + 0x14]
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
add edx, 0x5df9
and ecx, 3
push edx
rep movsb byte es:[edi], byte [esi]
call fcn.00486120
add esp, 4
mov esi, eax
mov edi, edi
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x418320
mov edi, dword [ebp + 8]
sub eax, esi
dec edi
lea ecx, [ecx]
mov cl, byte [edi + 1]
inc edi
test cl, cl
jne 0x418330
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 esi, dword [ebp + 8]
mov eax, dword [ebx + 0xe2]
mov dword [ebp + 0x20], eax
test eax, eax
je 0x4184ce
push 0
push eax
mov dword [ebp + 0x14], 0
call fcn.00488ff0
add esp, 8
test eax, eax
je 0x41839c
mov eax, dword [eax + 8]
dec eax
je 0x41838c
dec eax
je 0x418385
sub eax, 2
jne 0x41839c
push 0x4e35
jmp 0x418391
push 0x4e33
jmp 0x418391
push 0x4e34
call fcn.00486120
add esp, 4
mov dword [ebp + 0x14], eax
lea edi, [esi - 1]
nop
mov al, byte [edi + 1]
inc edi
test al, al
jne 0x4183a0
mov ax, word [0x5a57f8]
mov word [edi], ax
lea eax, [esi - 1]
mov cl, byte [eax + 1]
inc eax
test cl, cl
jne 0x4183b4
cmp dword [ebp + 0x14], 0
mov cx, word [0x5a5c44]
mov word [eax], cx
mov dl, byte [0x5a5c46]
mov byte [eax + 2], dl
mov eax, esi
lea edx, [eax + 1]
jne 0x418410
lea ebx, [ebx]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x4183e0
sub eax, edx
lea edi, [esi + eax]
mov eax, dword [ebp + 0x20]
push eax
call fcn.004890f0
mov ecx, dword [ebx + 0xe6]
add esp, 4
push eax
push ecx
push 0x5e90
call fcn.00486120
add esp, 4
push eax
jmp 0x41845f
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x418410
sub eax, edx
mov edx, dword [ebp + 0x14]
lea edi, [esi + eax]
mov eax, dword [ebx + 0xe6]
push edx
push eax
push 0x5e90
call fcn.00486120
add esp, 4
push eax
push edi
call dword [sym.imp.USER32.dll_wsprintfA]
mov eax, esi
add esp, 0x10
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x418444
mov ecx, dword [ebp + 0x20]
sub eax, edx
push ecx
lea edi, [esi + eax]
call fcn.004890f0
push eax
push str.:__s
push edi
call dword [sym.imp.USER32.dll_wsprintfA]
add esp, 0x10
lea eax, [esi - 1]
lea esp, [esp]
mov cl, byte [eax + 1]
inc eax
test cl, cl
jne 0x418470
mov dx, word [0x5a5c84]
mov word [eax], dx
mov cl, byte [0x5a5c86]
mov byte [eax + 2], cl
lea edi, [esi - 1]
mov edi, edi
mov al, byte [edi + 1]
inc edi
test al, al
jne 0x418490
mov dx, word [0x5a57f8]
mov eax, esi
mov word [edi], dx
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x4184a7
mov ecx, dword [ebp + 0x20]
push 1
sub eax, edx
add eax, esi
push eax
mov eax, dword [ebx + 0xe6]
push eax
push ecx
push 0
push 0
push 0
call fcn.00412460
add esp, 0x1c
mov eax, dword [ebp - 0xc]
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
pop edi
pop esi
mov eax, edx
pop ebx
mov esp, ebp
pop ebp
ret