Function at 0x417470
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 0x417735
mov edi, dword [ebp + 0x10]
movsx ecx, word [edi + esi*4]
test ecx, ecx
je case.0x4174b4.35
movsx eax, word [edi + esi*4 + 2]
and ecx, 0xff
dec ecx
or edx, 1
cmp ecx, 0x4d
ja case.0x4174b4.35
jmp dword [ecx*4 + 0x4182e4]
add dword [ebx], eax
jmp case.0x4174b4.35
add dword [ebx + 4], eax
jmp case.0x4174b4.35
add dword [ebx + 8], eax
jmp case.0x4174b4.35
add dword [ebx + 0xc], eax
jmp case.0x4174b4.35
add dword [ebx + 0x10], eax
jmp case.0x4174b4.35
add dword [ebx + 0x14], eax
jmp case.0x4174b4.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.0x4174b4.35
add dword [ebx + 0x20], eax
jmp case.0x4174b4.35
add dword [ebx + 0x24], eax
jmp case.0x4174b4.35
add dword [ebx + 0x28], eax
jmp case.0x4174b4.35
add dword [ebx + 0x2c], eax
jmp case.0x4174b4.35
add dword [ebx + 0x30], eax
jmp case.0x4174b4.35
add dword [ebx + 0x34], eax
jmp case.0x4174b4.35
add dword [ebx + 0x38], eax
jmp case.0x4174b4.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.0x4174b4.35
add dword [ebx + 0x44], eax
jmp case.0x4174b4.35
add dword [ebx + 0x48], eax
jmp case.0x4174b4.35
add dword [ebx + 0x4c], eax
jmp case.0x4174b4.35
add dword [ebx + 0x50], eax
jmp case.0x4174b4.35
add dword [ebx + 0x54], eax
jmp case.0x4174b4.35
add dword [ebx + 0x58], eax
jmp case.0x4174b4.35
add dword [ebx + 0x5c], eax
jmp case.0x4174b4.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.0x4174b4.35
add dword [ebx + 0x64], eax
jmp case.0x4174b4.35
add dword [ebx + 0x68], eax
jmp case.0x4174b4.35
add dword [ebx + 0x6c], eax
jmp case.0x4174b4.35
mov dword [ebx + 0x70], eax
jmp case.0x4174b4.35
mov dword [ebx + 0x74], eax
jmp case.0x4174b4.35
mov dword [ebx + 0x78], eax
jmp case.0x4174b4.35
add dword [ebx + 0x9c], eax
jmp case.0x4174b4.35
add dword [ebx + 0xa0], eax
jmp case.0x4174b4.35
add dword [ebx + 0x80], eax
jmp case.0x4174b4.35
add dword [ebx + 0x84], eax
jmp case.0x4174b4.35
add dword [ebx + 0x88], eax
jmp case.0x4174b4.35
add dword [ebx + 0x8c], eax
jmp case.0x4174b4.35
add dword [ebx + 0x90], eax
jmp case.0x4174b4.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.0x4174b4.35
mov dword [ebx + 0x98], eax
jmp case.0x4174b4.35
add dword [ebx + 0xa8], eax
jmp case.0x4174b4.35
add dword [ebx + 0xac], eax
jmp case.0x4174b4.35
add dword [ebx + 0xb0], eax
jmp case.0x4174b4.35
add dword [ebx + 0xb4], eax
jmp case.0x4174b4.35
add dword [ebx + 0xb8], eax
jmp case.0x4174b4.35
add dword [ebx + 0xbc], eax
jmp case.0x4174b4.35
add dword [ebx + 0xc0], eax
jmp case.0x4174b4.35
add dword [ebx + 0xc4], eax
jmp case.0x4174b4.35
add dword [ebx + 0xc8], eax
jmp case.0x4174b4.35
add dword [ebx + 0xcc], eax
jmp case.0x4174b4.35
add dword [ebx + 0xd0], eax
jmp case.0x4174b4.35
mov ecx, eax
sar ecx, 8
mov byte [ebx + 0xd4], cl
mov byte [ebx + 0xd5], al
jmp case.0x4174b4.35
mov ecx, eax
sar ecx, 8
mov byte [ebx + 0xd6], cl
mov byte [ebx + 0xd7], al
jmp case.0x4174b4.35
mov ecx, eax
sar ecx, 8
mov byte [ebx + 0xd8], cl
mov byte [ebx + 0xd9], al
jmp case.0x4174b4.35
add dword [ebx + 0xda], eax
jmp case.0x4174b4.35
add dword [ebx + 0xde], eax
jmp case.0x4174b4.35
mov dword [ebx + 0xe2], eax
jmp case.0x4174b4.35
mov dword [ebx + 0xe6], eax
jmp case.0x4174b4.35
add dword [ebx + 0xea], eax
inc esi
cmp esi, dword [ebp + 0x14]
jl 0x417490
mov dword [ebp - 0xc], edx
test edx, edx
je 0x4182d8
mov eax, dword [ebx]
mov esi, dword [ebp + 8]
test eax, eax
je 0x41779a
mov cl, byte [ebp + 0x1c]
test cl, 1
je 0x41776e
mov ecx, dword [ebp + 0x18]
cmp ecx, 1
jge 0x41775b
mov ecx, 1
push ecx
push eax
call fcn.0047fc80
push 0
push 1
push esi
push 0x5eea
jmp 0x417791
test cl, 6
je 0x41779a
mov ecx, dword [ebp + 0x18]
cmp ecx, 1
jge 0x417780
mov ecx, 1
push ecx
push eax
call fcn.0047fe00
push 0
push 1
push esi
push 0x5ddd
push eax
call fcn.0040f5f0
add esp, 0x1c
mov eax, dword [ebx + 0xc8]
test eax, eax
je 0x4177b7
push 0
push 1
push esi
push 0x5ddb
push eax
call fcn.0040f5f0
add esp, 0x14
mov eax, dword [ebx + 0xcc]
test eax, eax
je 0x4177d4
push 0
push 1
push esi
push 0x5ddd
push eax
call fcn.0040f5f0
add esp, 0x14
mov eax, dword [ebx + 0xd0]
test eax, eax
je 0x4177f4
push 0
push reloc.DSOUND.dll_DirectSoundCreate
push esi
push 0x5ddc
push eax
call fcn.0040f5f0
add esp, 0x14
mov eax, dword [ebx + 0x74]
mov dword [ebp + 0x14], eax
test eax, eax
je 0x417862
lea edi, [esi - 1]
mov al, byte [edi + 1]
inc edi
test al, al
jne 0x417801
mov dx, word [0x5a47f0]
mov eax, esi
mov word [edi], dx
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x417818
sub eax, edx
push 0x5ea6
lea edi, [esi + eax]
call fcn.004865f0
add esp, 4
push eax
push 0x5dee
call fcn.004865f0
add esp, 4
push eax
push 0x5a4c44
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.0040f5f0
add esp, 0x24
mov eax, dword [ebx + 0x70]
test eax, eax
je 0x41787c
push 0
push 1
push esi
push 0x5dcd
push eax
call fcn.0040f5f0
add esp, 0x14
mov eax, dword [ebx + 0x78]
test eax, eax
je 0x417899
push 0
push reloc.DSOUND.dll_DirectSoundCreate
push esi
push 0x5def
push eax
call fcn.0040f5f0
add esp, 0x14
mov eax, dword [ebx + 4]
test eax, eax
je 0x4178b3
push 0
push 1
push esi
push 0x5dc6
push eax
call fcn.0040f5f0
add esp, 0x14
mov eax, dword [ebx + 8]
test eax, eax
je 0x4178cd
push 0
push 1
push esi
push 0x5dc7
push eax
call fcn.0040f5f0
add esp, 0x14
mov eax, dword [ebx + 0x14]
test eax, eax
je 0x4178e7
push 0
push 1
push esi
push 0x5dca
push eax
call fcn.0040f5f0
add esp, 0x14
mov eax, dword [ebx + 0xc]
test eax, eax
je 0x417901
push 0
push 1
push esi
push 0x5dc8
push eax
call fcn.0040f5f0
add esp, 0x14
mov eax, dword [ebx + 0x10]
test eax, eax
je 0x41791b
push 0
push 1
push esi
push 0x5dc9
push eax
call fcn.0040f5f0
add esp, 0x14
mov eax, dword [ebx + 0x18]
test eax, eax
je 0x417935
push 0
push 1
push esi
push 0x5dcb
push eax
call fcn.0040f5f0
add esp, 0x14
mov eax, dword [ebx + 0x98]
test eax, eax
je 0x417952
push 0
push 1
push esi
push 0x5de1
push eax
call fcn.0040f5f0
add esp, 0x14
mov eax, dword [ebx + 0x64]
test eax, eax
je 0x41796c
push 0
push 1
push esi
push 0x5ddf
push eax
call fcn.0040f5f0
add esp, 0x14
mov eax, dword [ebx + 0x68]
test eax, eax
je 0x417986
push 0
push 1
push esi
push 0x5de0
push eax
call fcn.0040f5f0
add esp, 0x14
mov eax, dword [ebx + 0x9c]
test eax, eax
je 0x4179a3
push 0
push 1
push esi
push 0x5dd9
push eax
call fcn.0040f5f0
add esp, 0x14
mov eax, dword [ebx + 0xa0]
test eax, eax
je 0x4179c0
push 0
push 1
push esi
push 0x5dda
push eax
call fcn.0040f5f0
add esp, 0x14
mov eax, dword [ebx + 0xea]
test eax, eax
je 0x4179e0
push 0
push reloc.DSOUND.dll_DirectSoundCreate
push esi
push 0x5dde
push eax
call fcn.0040f5f0
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 0x417a96
cmp dword [ebp - 4], 0
lea edi, [esi - 1]
jne 0x417a30
lea ecx, [ecx]
mov al, byte [edi + 1]
inc edi
test al, al
jne 0x417a10
mov ax, word [0x5a47f0]
mov word [edi], ax
mov dword [ebp - 4], 1
jmp 0x417a42
mov al, byte [edi + 1]
inc edi
test al, al
jne 0x417a30
mov cx, word [0x5a4bd4]
mov word [edi], cx
mov eax, esi
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x417a47
sub eax, edx
push 0x5dea
lea edi, [esi + eax]
call fcn.004865f0
mov edx, dword [ebp + 0x14]
add esp, 4
push eax
add edx, 0x5de1
push edx
call fcn.004865f0
add esp, 4
push eax
push 0x5a4c44
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.0040f5f0
add esp, 0x24
mov eax, dword [ebp + 0x14]
add dword [ebp - 8], 4
inc eax
mov dword [ebp + 0x14], eax
cmp eax, 8
jle 0x4179f4
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 0x417b66
cmp dword [ebp - 4], 0
lea edi, [esi - 1]
jne 0x417b00
lea esp, [esp]
mov al, byte [edi + 1]
inc edi
test al, al
jne 0x417ae0
mov ax, word [0x5a47f0]
mov word [edi], ax
mov dword [ebp - 4], 1
jmp 0x417b12
mov al, byte [edi + 1]
inc edi
test al, al
jne 0x417b00
mov cx, word [0x5a4bd4]
mov word [edi], cx
mov eax, esi
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x417b17
sub eax, edx
push 0x5deb
lea edi, [esi + eax]
call fcn.004865f0
mov edx, dword [ebp + 0x14]
add esp, 4
push eax
add edx, 0x5de1
push edx
call fcn.004865f0
add esp, 4
push eax
push 0x5a4c44
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.0040f5f0
add esp, 0x24
mov eax, dword [ebp + 0x14]
add dword [ebp - 8], 4
inc eax
mov dword [ebp + 0x14], eax
cmp eax, 8
jle 0x417ac0
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 0x417c00
lea edi, [esi - 1]
nop
mov al, byte [edi + 1]
inc edi
test al, al
jne 0x417ba0
mov ax, word [0x5a47f0]
mov word [edi], ax
mov eax, esi
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x417bb6
mov ecx, dword [ebp + 0x14]
add ecx, 0x5de1
sub eax, edx
push ecx
lea edi, [esi + eax]
call fcn.004865f0
add esp, 4
push eax
push 0x5f2c
call fcn.004865f0
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.0040f5f0
add esp, 0x20
mov eax, dword [ebp + 0x14]
add dword [ebp - 8], 4
inc eax
mov dword [ebp + 0x14], eax
cmp eax, 8
jle 0x417b90
mov eax, dword [ebx + 0x80]
mov dword [ebp + 0x14], eax
test eax, eax
je 0x417c8a
cmp byte [esi], 0
je 0x417c36
lea edi, [esi - 1]
mov al, byte [edi + 1]
inc edi
test al, al
jne 0x417c25
mov ax, word [0x5a47f0]
mov word [edi], ax
push 0x5deb
call fcn.004865f0
add esp, 4
mov edi, eax
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x417c45
sub eax, edi
mov edx, edi
dec esi
mov cl, byte [esi + 1]
inc esi
test cl, cl
jne 0x417c51
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.0040f5f0
mov esi, dword [ebp + 8]
add esp, 0x14
mov eax, dword [ebx + 0x84]
mov dword [ebp + 0x14], eax
test eax, eax
je 0x417d09
cmp byte [esi], 0
je 0x417cb1
lea edi, [esi - 1]
nop
mov al, byte [edi + 1]
inc edi
test al, al
jne 0x417ca0
mov ax, word [0x5a47f0]
mov word [edi], ax
push 0x5deb
call fcn.004865f0
add esp, 4
mov edi, eax
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x417cc0
sub eax, edi
mov edx, edi
dec esi
lea esp, [esp]
mov cl, byte [esi + 1]
inc esi
test cl, cl
jne 0x417cd0
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.0040f5f0
mov esi, dword [ebp + 8]
add esp, 0x14
mov eax, dword [ebx + 0x88]
mov dword [ebp + 0x14], eax
test eax, eax
je 0x417d89
cmp byte [esi], 0
je 0x417d31
lea edi, [esi - 1]
mov edi, edi
mov al, byte [edi + 1]
inc edi
test al, al
jne 0x417d20
mov ax, word [0x5a47f0]
mov word [edi], ax
push 0x5deb
call fcn.004865f0
add esp, 4
mov edi, eax
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x417d40
sub eax, edi
mov edx, edi
dec esi
lea esp, [esp]
mov cl, byte [esi + 1]
inc esi
test cl, cl
jne 0x417d50
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.0040f5f0
mov esi, dword [ebp + 8]
add esp, 0x14
mov eax, dword [ebx + 0x8c]
mov dword [ebp + 0x14], eax
test eax, eax
je 0x417e09
cmp byte [esi], 0
je 0x417db1
lea edi, [esi - 1]
mov edi, edi
mov al, byte [edi + 1]
inc edi
test al, al
jne 0x417da0
mov ax, word [0x5a47f0]
mov word [edi], ax
push 0x5deb
call fcn.004865f0
add esp, 4
mov edi, eax
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x417dc0
sub eax, edi
mov edx, edi
dec esi
lea esp, [esp]
mov cl, byte [esi + 1]
inc esi
test cl, cl
jne 0x417dd0
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.0040f5f0
mov esi, dword [ebp + 8]
add esp, 0x14
mov eax, dword [ebx + 0x90]
mov dword [ebp + 0x14], eax
test eax, eax
je 0x417e89
cmp byte [esi], 0
je 0x417e31
lea edi, [esi - 1]
mov edi, edi
mov al, byte [edi + 1]
inc edi
test al, al
jne 0x417e20
mov ax, word [0x5a47f0]
mov word [edi], ax
push 0x5deb
call fcn.004865f0
add esp, 4
mov edi, eax
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x417e40
sub eax, edi
mov edx, edi
dec esi
lea esp, [esp]
mov cl, byte [esi + 1]
inc esi
test cl, cl
jne 0x417e50
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.0040f5f0
mov esi, dword [ebp + 8]
add esp, 0x14
mov eax, dword [ebx + 0x94]
mov dword [ebp + 0x14], eax
test eax, eax
je 0x417f09
cmp byte [esi], 0
je 0x417eb1
lea edi, [esi - 1]
mov edi, edi
mov al, byte [edi + 1]
inc edi
test al, al
jne 0x417ea0
mov ax, word [0x5a47f0]
mov word [edi], ax
push 0x5deb
call fcn.004865f0
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 0x5df6
push edx
call fcn.0040f5f0
mov esi, dword [ebp + 8]
add esp, 0x14
movzx eax, byte [ebx + 0xd5]
mov dword [ebp + 0x14], eax
test eax, eax
je 0x417f69
cmp byte [esi], 0
movzx edx, byte [ebx + 0xd4]
je 0x417f37
lea edi, [esi - 1]
mov al, byte [edi + 1]
inc edi
test al, al
jne 0x417f26
mov ax, word [0x5a47f0]
mov word [edi], ax
mov eax, esi
lea edi, [eax + 1]
lea esp, [esp]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x417f40
mov ecx, dword [ebp + 0x14]
push ecx
push edx
sub eax, edi
push 0x5f57
lea edi, [esi + eax]
call fcn.004865f0
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 0x417fc9
cmp byte [esi], 0
movzx eax, byte [ebx + 0xd6]
mov dword [ebp + 0x20], eax
je 0x417f98
lea edi, [esi - 1]
mov al, byte [edi + 1]
inc edi
test al, al
jne 0x417f86
mov cx, word [0x5a47f0]
mov word [edi], cx
mov eax, esi
lea edi, [eax + 1]
lea ecx, [ecx]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x417fa0
push edx
mov edx, dword [ebp + 0x20]
push edx
sub eax, edi
push 0x5f58
lea edi, [esi + eax]
call fcn.004865f0
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 0x418029
cmp byte [esi], 0
movzx edx, byte [ebx + 0xd8]
je 0x417ff7
lea edi, [esi - 1]
mov al, byte [edi + 1]
inc edi
test al, al
jne 0x417fe6
mov ax, word [0x5a47f0]
mov word [edi], ax
mov eax, esi
lea edi, [eax + 1]
lea esp, [esp]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x418000
mov ecx, dword [ebp + 0x14]
push ecx
push edx
sub eax, edi
push 0x5f58
lea edi, [esi + eax]
call fcn.004865f0
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 0x418065
cmp byte [esi], 0
je 0x418052
lea edi, [esi - 1]
jmp 0x418040
mov al, byte [edi + 1]
inc edi
test al, al
jne 0x418040
mov dx, word [0x5a47f0]
mov word [edi], dx
push 0
push 0
push esi
push 0x4c4b46
push ecx
call fcn.0040f5f0
add esp, 0x14
mov ecx, dword [ebx + 0xde]
test ecx, ecx
je 0x41809b
cmp byte [esi], 0
je 0x418088
lea edi, [esi - 1]
mov al, byte [edi + 1]
inc edi
test al, al
jne 0x418077
mov ax, word [0x5a47f0]
mov word [edi], ax
push 0
push 0
push esi
push 0x4c4b47
push ecx
call fcn.0040f5f0
add esp, 0x14
mov eax, dword [ebx + 0x70]
mov dword [ebp + 0x14], eax
test eax, eax
je 0x418149
add eax, 0xfffffffe
cmp eax, 0x2f
ja 0x418149
lea edi, [esi - 1]
mov al, byte [edi + 1]
inc edi
test al, al
jne 0x4180b8
mov cx, word [0x5a47f0]
push 0x5dcd
mov word [edi], cx
call fcn.004865f0
add esp, 4
mov edi, eax
lea esp, [esp]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x4180e0
sub eax, edi
mov edx, edi
dec esi
lea esp, [esp]
mov cl, byte [esi + 1]
inc esi
test cl, cl
jne 0x4180f0
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.004865f0
add esp, 4
mov esi, eax
mov edi, edi
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x418120
mov edi, dword [ebp + 8]
sub eax, esi
dec edi
lea ecx, [ecx]
mov cl, byte [edi + 1]
inc edi
test cl, cl
jne 0x418130
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 0x4182ce
push 0
push eax
mov dword [ebp + 0x14], 0
call fcn.00489550
add esp, 8
test eax, eax
je 0x41819c
mov eax, dword [eax + 8]
dec eax
je 0x41818c
dec eax
je 0x418185
sub eax, 2
jne 0x41819c
push 0x4e35
jmp 0x418191
push 0x4e33
jmp 0x418191
push 0x4e34
call fcn.004865f0
add esp, 4
mov dword [ebp + 0x14], eax
lea edi, [esi - 1]
nop
mov al, byte [edi + 1]
inc edi
test al, al
jne 0x4181a0
mov ax, word [0x5a47f0]
mov word [edi], ax
lea eax, [esi - 1]
mov cl, byte [eax + 1]
inc eax
test cl, cl
jne 0x4181b4
cmp dword [ebp + 0x14], 0
mov cx, word [0x5a4c3c]
mov word [eax], cx
mov dl, byte [0x5a4c3e]
mov byte [eax + 2], dl
mov eax, esi
lea edx, [eax + 1]
jne 0x418210
lea ebx, [ebx]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x4181e0
sub eax, edx
lea edi, [esi + eax]
mov eax, dword [ebp + 0x20]
push eax
call fcn.00489650
mov ecx, dword [ebx + 0xe6]
add esp, 4
push eax
push ecx
push 0x5e90
call fcn.004865f0
add esp, 4
push eax
jmp 0x41825f
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x418210
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.004865f0
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 0x418244
mov ecx, dword [ebp + 0x20]
sub eax, edx
push ecx
lea edi, [esi + eax]
call fcn.00489650
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 0x418270
mov dx, word [0x5a4c7c]
mov word [eax], dx
mov cl, byte [0x5a4c7e]
mov byte [eax + 2], cl
lea edi, [esi - 1]
mov edi, edi
mov al, byte [edi + 1]
inc edi
test al, al
jne 0x418290
mov dx, word [0x5a47f0]
mov eax, esi
mov word [edi], dx
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x4182a7
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.00412260
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