Function at 0x417730
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 0x4179ea
mov edi, dword [ebp + 0x10]
movsx ecx, word [edi + esi*4]
test ecx, ecx
je case.0x417774.35
movsx eax, word [edi + esi*4 + 2]
and ecx, 0xff
dec ecx
or edx, 1
cmp ecx, 0x40
ja case.0x417774.35
jmp dword [ecx*4 + 0x4184e4]
add dword [ebx], eax
jmp case.0x417774.35
add dword [ebx + 4], eax
jmp case.0x417774.35
add dword [ebx + 8], eax
jmp case.0x417774.35
add dword [ebx + 0xc], eax
jmp case.0x417774.35
add dword [ebx + 0x10], eax
jmp case.0x417774.35
add dword [ebx + 0x14], eax
jmp case.0x417774.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.0x417774.35
add dword [ebx + 0x20], eax
jmp case.0x417774.35
add dword [ebx + 0x24], eax
jmp case.0x417774.35
add dword [ebx + 0x28], eax
jmp case.0x417774.35
add dword [ebx + 0x2c], eax
jmp case.0x417774.35
add dword [ebx + 0x30], eax
jmp case.0x417774.35
add dword [ebx + 0x34], eax
jmp case.0x417774.35
add dword [ebx + 0x38], eax
jmp case.0x417774.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.0x417774.35
add dword [ebx + 0x44], eax
jmp case.0x417774.35
add dword [ebx + 0x48], eax
jmp case.0x417774.35
add dword [ebx + 0x4c], eax
jmp case.0x417774.35
add dword [ebx + 0x50], eax
jmp case.0x417774.35
add dword [ebx + 0x54], eax
jmp case.0x417774.35
add dword [ebx + 0x58], eax
jmp case.0x417774.35
add dword [ebx + 0x5c], eax
jmp case.0x417774.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.0x417774.35
add dword [ebx + 0x64], eax
jmp case.0x417774.35
add dword [ebx + 0x68], eax
jmp case.0x417774.35
add dword [ebx + 0x6c], eax
jmp case.0x417774.35
mov dword [ebx + 0x70], eax
jmp case.0x417774.35
mov dword [ebx + 0x74], eax
jmp case.0x417774.35
mov dword [ebx + 0x78], eax
jmp case.0x417774.35
add dword [ebx + 0x9c], eax
jmp case.0x417774.35
add dword [ebx + 0xa0], eax
jmp case.0x417774.35
add dword [ebx + 0x80], eax
jmp case.0x417774.35
add dword [ebx + 0x84], eax
jmp case.0x417774.35
add dword [ebx + 0x88], eax
jmp case.0x417774.35
add dword [ebx + 0x8c], eax
jmp case.0x417774.35
add dword [ebx + 0x90], eax
jmp case.0x417774.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.0x417774.35
mov dword [ebx + 0x98], eax
jmp case.0x417774.35
add dword [ebx + 0xa8], eax
jmp case.0x417774.35
add dword [ebx + 0xac], eax
jmp case.0x417774.35
add dword [ebx + 0xb0], eax
jmp case.0x417774.35
add dword [ebx + 0xb4], eax
jmp case.0x417774.35
add dword [ebx + 0xb8], eax
jmp case.0x417774.35
add dword [ebx + 0xbc], eax
jmp case.0x417774.35
add dword [ebx + 0xc0], eax
jmp case.0x417774.35
add dword [ebx + 0xc4], eax
jmp case.0x417774.35
add dword [ebx + 0xc8], eax
jmp case.0x417774.35
add dword [ebx + 0xcc], eax
jmp case.0x417774.35
add dword [ebx + 0xd0], eax
jmp case.0x417774.35
mov ecx, eax
sar ecx, 8
mov byte [ebx + 0xd4], cl
mov byte [ebx + 0xd5], al
jmp case.0x417774.35
mov ecx, eax
sar ecx, 8
mov byte [ebx + 0xd6], cl
mov byte [ebx + 0xd7], al
jmp case.0x417774.35
mov ecx, eax
sar ecx, 8
mov byte [ebx + 0xd8], cl
mov byte [ebx + 0xd9], al
jmp case.0x417774.35
add dword [ebx + 0xda], eax
jmp case.0x417774.35
add dword [ebx + 0xde], eax
jmp case.0x417774.35
mov dword [ebx + 0xe2], eax
jmp case.0x417774.35
mov dword [ebx + 0xe6], eax
inc esi
cmp esi, dword [ebp + 0x14]
jl 0x417750
mov dword [ebp - 0xc], edx
test edx, edx
je 0x4184d8
mov eax, dword [ebx]
mov esi, dword [ebp + 8]
test eax, eax
je 0x417a4f
mov cl, byte [ebp + 0x1c]
test cl, 1
je 0x417a23
mov ecx, dword [ebp + 0x18]
cmp ecx, 1
jge 0x417a10
mov ecx, 1
push ecx
push eax
call fcn.0047ee90
push 0
push 1
push esi
push 0x5eea
jmp 0x417a46
test cl, 6
je 0x417a4f
mov ecx, dword [ebp + 0x18]
cmp ecx, 1
jge 0x417a35
mov ecx, 1
push ecx
push eax
call fcn.0047eed0
push 0
push 1
push esi
push 0x5ddd
push eax
call fcn.0040f8d0
add esp, 0x1c
mov eax, dword [ebx + 0xc8]
test eax, eax
je 0x417a6c
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 0x417a89
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 0x417aa9
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 0x417ac3
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 0x417add
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 0x417af7
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 0x417b11
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 0x417b2b
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 0x417b45
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 0x417b62
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 0x417b7c
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 0x417b96
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 0x417bb3
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 0x417bd0
push 0
push 1
push esi
push 0x5dda
push eax
call fcn.0040f8d0
add esp, 0x14
lea edx, [ebx + 0x20]
mov dword [ebp - 4], 0
mov dword [ebp + 0x14], 1
mov dword [ebp - 8], edx
mov eax, dword [ebp - 8]
mov eax, dword [eax]
mov dword [ebp + 0x20], eax
test eax, eax
je 0x417c85
cmp dword [ebp - 4], 0
lea edi, [esi - 1]
jne 0x417c20
lea ecx, [ecx]
mov al, byte [edi + 1]
inc edi
test al, al
jne 0x417c00
mov cx, word [0x59c7f8]
mov word [edi], cx
mov dword [ebp - 4], 1
jmp 0x417c32
mov al, byte [edi + 1]
inc edi
test al, al
jne 0x417c20
mov dx, word [0x59cbe4]
mov word [edi], dx
mov eax, esi
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x417c37
sub eax, edx
push 0x5dea
lea edi, [esi + eax]
call fcn.004856b0
add esp, 4
push eax
mov eax, dword [ebp + 0x14]
add eax, 0x5de1
push eax
call fcn.004856b0
add esp, 4
push eax
push 0x59cc54
push edi
call dword [sym.imp.USER32.dll_wsprintfA]
mov ecx, dword [ebp + 0x20]
push 0
push closesocket
push esi
push 0
push ecx
call fcn.0040f8d0
add esp, 0x24
mov eax, dword [ebp + 0x14]
add dword [ebp - 8], 4
inc eax
mov dword [ebp + 0x14], eax
cmp eax, 8
jle 0x417be4
lea edx, [ebx + 0x44]
mov dword [ebp - 4], 0
mov dword [ebp + 0x14], 1
mov dword [ebp - 8], edx
lea ecx, [ecx]
mov eax, dword [ebp - 8]
mov eax, dword [eax]
mov dword [ebp + 0x20], eax
test eax, eax
je 0x417d55
cmp dword [ebp - 4], 0
lea edi, [esi - 1]
jne 0x417cf0
lea esp, [esp]
mov al, byte [edi + 1]
inc edi
test al, al
jne 0x417cd0
mov cx, word [0x59c7f8]
mov word [edi], cx
mov dword [ebp - 4], 1
jmp 0x417d02
mov al, byte [edi + 1]
inc edi
test al, al
jne 0x417cf0
mov dx, word [0x59cbe4]
mov word [edi], dx
mov eax, esi
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x417d07
sub eax, edx
push 0x5deb
lea edi, [esi + eax]
call fcn.004856b0
add esp, 4
push eax
mov eax, dword [ebp + 0x14]
add eax, 0x5de1
push eax
call fcn.004856b0
add esp, 4
push eax
push 0x59cc54
push edi
call dword [sym.imp.USER32.dll_wsprintfA]
mov ecx, dword [ebp + 0x20]
push 0
push closesocket
push esi
push 0
push ecx
call fcn.0040f8d0
add esp, 0x24
mov eax, dword [ebp + 0x14]
add dword [ebp - 8], 4
inc eax
mov dword [ebp + 0x14], eax
cmp eax, 8
jle 0x417cb0
lea edx, [ebx + 0xa8]
mov dword [ebp + 0x14], 1
mov dword [ebp - 8], edx
lea esp, [esp]
mov eax, dword [ebp - 8]
mov eax, dword [eax]
mov dword [ebp + 0x20], eax
test eax, eax
je 0x417df1
lea edi, [esi - 1]
nop
mov al, byte [edi + 1]
inc edi
test al, al
jne 0x417d90
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 0x417da7
sub eax, edx
mov edx, dword [ebp + 0x14]
add edx, 0x5de1
push edx
lea edi, [esi + 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 eax, dword [ebp + 0x20]
push 0
push closesocket
push esi
push 0
push eax
call fcn.0040f8d0
add esp, 0x20
mov eax, dword [ebp + 0x14]
add dword [ebp - 8], 4
inc eax
mov dword [ebp + 0x14], eax
cmp eax, 8
jle 0x417d80
mov eax, dword [ebx + 0x80]
mov dword [ebp + 0x14], eax
test eax, eax
je 0x417e89
cmp byte [esi], 0
je 0x417e32
lea edi, [esi - 1]
lea ebx, [ebx]
mov al, byte [edi + 1]
inc edi
test al, al
jne 0x417e20
mov cx, word [0x59c7f8]
mov word [edi], cx
push 0x5deb
call fcn.004856b0
add esp, 4
mov edi, eax
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x417e41
sub eax, edi
mov edx, edi
dec esi
lea ecx, [ecx]
mov cl, byte [esi + 1]
inc esi
test cl, cl
jne 0x417e50
mov ecx, eax
shr ecx, 2
mov edi, esi
mov esi, edx
mov edx, dword [ebp + 8]
rep movsd dword es:[edi], dword [esi]
push 0
push closesocket
push edx
mov ecx, eax
mov eax, dword [ebp + 0x14]
and ecx, 3
push 0x5df1
push eax
rep movsb byte es:[edi], byte [esi]
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 0x417f09
cmp byte [esi], 0
je 0x417eb2
lea edi, [esi - 1]
mov edi, edi
mov al, byte [edi + 1]
inc edi
test al, al
jne 0x417ea0
mov cx, word [0x59c7f8]
mov word [edi], cx
push 0x5deb
call fcn.004856b0
add esp, 4
mov edi, eax
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x417ec1
sub eax, edi
mov edx, edi
dec esi
lea ecx, [ecx]
mov cl, byte [esi + 1]
inc esi
test cl, cl
jne 0x417ed0
mov ecx, eax
shr ecx, 2
mov edi, esi
mov esi, edx
mov edx, dword [ebp + 8]
rep movsd dword es:[edi], dword [esi]
push 0
push closesocket
push edx
mov ecx, eax
mov eax, dword [ebp + 0x14]
and ecx, 3
push 0x5df2
push eax
rep movsb byte es:[edi], byte [esi]
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 0x417f89
cmp byte [esi], 0
je 0x417f32
lea edi, [esi - 1]
mov edi, edi
mov al, byte [edi + 1]
inc edi
test al, al
jne 0x417f20
mov cx, word [0x59c7f8]
mov word [edi], cx
push 0x5deb
call fcn.004856b0
add esp, 4
mov edi, eax
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x417f41
sub eax, edi
mov edx, edi
dec esi
lea ecx, [ecx]
mov cl, byte [esi + 1]
inc esi
test cl, cl
jne 0x417f50
mov ecx, eax
shr ecx, 2
mov edi, esi
mov esi, edx
mov edx, dword [ebp + 8]
rep movsd dword es:[edi], dword [esi]
push 0
push closesocket
push edx
mov ecx, eax
mov eax, dword [ebp + 0x14]
and ecx, 3
push 0x5df3
push eax
rep movsb byte es:[edi], byte [esi]
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 0x418009
cmp byte [esi], 0
je 0x417fb2
lea edi, [esi - 1]
mov edi, edi
mov al, byte [edi + 1]
inc edi
test al, al
jne 0x417fa0
mov cx, word [0x59c7f8]
mov word [edi], cx
push 0x5deb
call fcn.004856b0
add esp, 4
mov edi, eax
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x417fc1
sub eax, edi
mov edx, edi
dec esi
lea ecx, [ecx]
mov cl, byte [esi + 1]
inc esi
test cl, cl
jne 0x417fd0
mov ecx, eax
shr ecx, 2
mov edi, esi
mov esi, edx
mov edx, dword [ebp + 8]
rep movsd dword es:[edi], dword [esi]
push 0
push closesocket
push edx
mov ecx, eax
mov eax, dword [ebp + 0x14]
and ecx, 3
push 0x5df4
push eax
rep movsb byte es:[edi], byte [esi]
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 0x418089
cmp byte [esi], 0
je 0x418032
lea edi, [esi - 1]
mov edi, edi
mov al, byte [edi + 1]
inc edi
test al, al
jne 0x418020
mov cx, word [0x59c7f8]
mov word [edi], cx
push 0x5deb
call fcn.004856b0
add esp, 4
mov edi, eax
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x418041
sub eax, edi
mov edx, edi
dec esi
lea ecx, [ecx]
mov cl, byte [esi + 1]
inc esi
test cl, cl
jne 0x418050
mov ecx, eax
shr ecx, 2
mov edi, esi
mov esi, edx
mov edx, dword [ebp + 8]
rep movsd dword es:[edi], dword [esi]
push 0
push closesocket
push edx
mov ecx, eax
mov eax, dword [ebp + 0x14]
and ecx, 3
push 0x5df5
push eax
rep movsb byte es:[edi], byte [esi]
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 0x418109
cmp byte [esi], 0
je 0x4180b2
lea edi, [esi - 1]
mov edi, edi
mov al, byte [edi + 1]
inc edi
test al, al
jne 0x4180a0
mov cx, word [0x59c7f8]
mov word [edi], cx
push 0x5deb
call fcn.004856b0
add esp, 4
mov edi, eax
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x4180c1
sub eax, edi
mov edx, edi
dec esi
lea ecx, [ecx]
mov cl, byte [esi + 1]
inc esi
test cl, cl
jne 0x4180d0
mov ecx, eax
shr ecx, 2
mov edi, esi
mov esi, edx
mov edx, dword [ebp + 8]
rep movsd dword es:[edi], dword [esi]
push 0
push closesocket
push edx
mov ecx, eax
mov eax, dword [ebp + 0x14]
and ecx, 3
push 0x5df6
push eax
rep movsb byte es:[edi], byte [esi]
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 0x418169
cmp byte [esi], 0
movzx edx, byte [ebx + 0xd4]
je 0x418138
lea edi, [esi - 1]
mov al, byte [edi + 1]
inc edi
test al, al
jne 0x418126
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 0x418140
sub eax, edi
lea edi, [esi + eax]
mov eax, dword [ebp + 0x14]
push eax
push edx
push 0x5f57
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 0x4181c9
cmp byte [esi], 0
movzx ecx, byte [ebx + 0xd6]
mov dword [ebp + 0x20], ecx
je 0x418197
lea edi, [esi - 1]
mov al, byte [edi + 1]
inc edi
test al, al
jne 0x418186
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 0x4181a0
mov ecx, dword [ebp + 0x20]
push edx
push ecx
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 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 [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 0x418200
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 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 [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 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 [0x59c7f8]
mov word [edi], ax
push 0
push 0
push esi
push 0x4c4b47
push ecx
call fcn.0040f8d0
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 [0x59c7f8]
push 0x5dcd
mov word [edi], cx
call fcn.004856b0
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.004856b0
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.00488600
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.004856b0
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 [0x59c7f8]
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 [0x59cc4c]
mov word [eax], cx
mov dl, byte [0x59cc4e]
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.00488700
mov ecx, dword [ebx + 0xe6]
add esp, 4
push eax
push ecx
push 0x5e90
call fcn.004856b0
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.004856b0
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.00488700
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 [0x59cc8c]
mov word [eax], dx
mov cl, byte [0x59cc8e]
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 [0x59c7f8]
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.00412520
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