Function at 0x418010
Capabilities:
Check for software breakpoints

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x46c27c
mov eax, dword fs:[0]
push eax
sub esp, 0x2e8
mov eax, dword [0x4a704c]
xor eax, ebp
mov dword [ebp - 0x10], eax
push ebx
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov edx, ecx
mov dword [ebp - 0x2b8], edx
mov byte [ebp - 0x289], 0
mov dword [ebp - 0x2a0], edx
test edx, edx
je 0x418072
mov esi, dword [edx + 4]
test esi, esi
je 0x41806a
mov ecx, dword [edx + 0x28]
mov eax, dword [esi]
lea eax, [eax + ecx*4]
add eax, esi
jmp 0x41806c
xor eax, eax
mov dword [ebp - 0x2a4], eax
movaps xmm0, xmmword [0x4a3470]
lea eax, [edx + 0x44]
push dword [ebp + 8]
mov dword [ebp - 0x1c4], eax
lea ecx, [ebp - 0x2f4]
lea eax, [ebp - 0x288]
mov dword [ebp - 0x2b0], 0
mov dword [ebp - 0x2b4], 0
mov dword [ebp - 0x2a8], 0
mov dword [ebp - 0x2ac], 0
mov dword [ebp - 0x284], 0x41cd7c
mov dword [ebp - 0x280], 0x41cd2e
mov dword [ebp - 0x27c], 0x41cdb6
mov dword [ebp - 0x278], 0x41ce5d
mov dword [ebp - 0x220], 0
mov dword [ebp - 0x21c], 0
mov dword [ebp - 0x274], 0
mov dword [ebp - str.Bogus_message_code__d], 0x48b118
movups xmmword [ebp - 0x214], xmm0
mov dword [ebp - 0x1c0], eax
mov dword [ebp - 0x288], 0x417fa0
call fcn.00417c30
push 0x4a49dc
mov dword [ebp - 4], 0
lea ecx, [ebp - 0x204]
mov eax, dword [ebp - 4]
push eax
push 0x44eb0e
push 3
push ecx
call fcn.0046b3a0
add esp, 0x14
test eax, eax
je 0x418191
mov eax, dword [ebp - 0x1bc]
test eax, eax
je 0x418168
mov eax, dword [eax + 0x28]
lea ecx, [ebp - 0x1c0]
push ecx
call eax
add esp, 4
push dword [ebp - 0x2c0]
mov dword [ebp - 0x1bc], 0
mov dword [ebp - 0x1ac], 0
call fcn.0044cb04
add esp, 4
xor al, al
jmp 0x418c70
mov esi, dword [ebp - 0x1c0]
lea eax, [ebp - 0x1af]
mov edi, dword [ebp - 0x1b4]
xorps xmm0, xmm0
push 0x19f
push 0
push eax
movq qword [ebp - 0x1bc], xmm0
call fcn.0044ddf0
lea ecx, [ebp - 0x1c0]
mov dword [ebp - 0x1c0], esi
mov dword [ebp - 0x1b4], edi
mov byte [ebp - 0x1b0], 1
call fcn.0041f3d7
push 0xa8
lea eax, [ebp - 0x1c0]
mov dword [ebp - 0x1b8], 0
push 0
push eax
mov eax, dword [ebp - 0x1bc]
xorps xmm0, xmm0
mov dword [ebp - 0x1a8], 0
movups xmmword [ebp - 0x130], xmm0
mov dword [ebp - 0x120], 0
mov dword [ebp - 0x110], 0
mov dword [ebp - 0x11c], 0
mov dword [ebp - 0x10c], 0
mov dword [ebp - 0x118], 0
mov dword [ebp - 0x108], 0
mov dword [ebp - 0x114], 0
mov dword [ebp - 0x104], 0
mov dword [ebp - 0xb4], 0
mov eax, dword [eax]
call eax
mov dword [ebp - 0x2c], eax
add esp, 0x18
mov edx, 0x10
mov dword [eax], 0x41e8ec
lea ecx, [eax + 0x60]
mov dword [eax + 4], 0x41e574
mov dword [eax + 8], 0x41e78f
mov dword [eax + 0x18], fcn.0041e35c
mov dword [eax + 0x5c], 0
nop dword [eax]
mov dword [ecx - 0x44], fcn.0041e35c
lea ecx, [ecx + 4]
mov dword [ecx - 4], 0
sub edx, 1
jne 0x4182a0
mov dword [eax + 0x1c], 0x41dfe3
mov dword [eax + 0x54], 0x41dfe3
mov eax, dword [ebp - 0x2c]
mov dword [ebp - 0xfc], edx
mov dword [ebp - 0x144], edx
mov dword [ebp - 0x44], edx
mov word [eax + 0xc], dx
mov dword [eax + 0x14], edx
mov dword [eax + 0xa0], edx
lea eax, [ebp - 0x1c0]
push 0x18
push edx
push eax
mov eax, dword [ebp - 0x1bc]
mov eax, dword [eax]
call eax
mov dword [ebp - 0x30], eax
push 0x78
push 0
mov dword [eax], 0x41f935
mov dword [eax + 4], 0x41f9d8
mov dword [eax + 8], fcn.0041f8e4
mov dword [eax + 0xc], 0x41f921
mov word [eax + 0x10], 0
mov byte [eax + 0x14], 1
lea eax, [ebp - 0x1c0]
push eax
mov eax, dword [ebp - 0x1bc]
mov dword [ebp - 0x1ac], 0xc8
mov eax, dword [eax]
call eax
push 0x78
push 0
push eax
mov dword [ebp - 0x40], eax
call fcn.0044ddf0
mov ecx, dword [ebp - 0x2c]
lea eax, [ebp - 0x2e0]
mov dword [ebp - 0x1a8], eax
add esp, 0x24
mov eax, dword [ebp - 0x1bc]
mov edx, 0xffff
mov esi, 0x41e113
mov edi, fcn.0041e35c
mov eax, dword [eax + 0x30]
sub eax, 0x14
cmp eax, edx
cmovl edx, eax
mov eax, esi
test edx, edx
cmove eax, edi
mov dword [ecx + 0x20], eax
mov dword [ecx + 0x64], edx
mov edx, 0xffff
mov eax, dword [ebp - 0x1bc]
mov ecx, dword [ebp - 0x2c]
mov eax, dword [eax + 0x30]
sub eax, 0x14
cmp eax, edx
cmovl edx, eax
mov eax, esi
test edx, edx
cmove eax, edi
mov dword [ecx + 0x24], eax
mov dword [ecx + 0x68], edx
mov edx, 0xffff
mov eax, dword [ebp - 0x1bc]
mov ecx, dword [ebp - 0x2c]
mov eax, dword [eax + 0x30]
sub eax, 0x14
cmp eax, edx
cmovl edx, eax
test edx, edx
mov dword [ecx + 0x5c], edx
cmove esi, edi
mov dword [ecx + 0x18], esi
mov ecx, dword [ebp - 0x1ac]
cmp ecx, 0xc8
je 0x418420
cmp ecx, 0xc9
je 0x418420
mov eax, dword [ebp - 0x1c0]
mov dword [eax + 0x14], 0x14
mov ecx, dword [ebp - 0x1c0]
mov eax, dword [ebp - 0x1ac]
mov dword [ecx + 0x18], eax
lea eax, [ebp - 0x1c0]
push eax
mov eax, dword [ebp - 0x1c0]
mov eax, dword [eax]
call eax
mov ecx, dword [ebp - 0x1ac]
add esp, 4
lea eax, [ecx - 0xc8]
xor esi, esi
cmp eax, 0xa
ja case.0x418438.209
movzx eax, byte [eax + 0x418cb0]
jmp dword [eax*4 + 0x418c9c]
lea eax, [ebp - 0x1c0]
push eax
mov eax, dword [ebp - 0x30]
mov eax, dword [eax + 4]
call eax
lea eax, [ebp - 0x1c0]
push eax
mov eax, dword [ebp - 0x1a8]
mov eax, dword [eax + 8]
call eax
add esp, 8
mov dword [ebp - 0x1ac], 0xc9
lea eax, [ebp - 0x1c0]
push eax
mov eax, dword [ebp - 0x30]
mov eax, dword [eax]
call eax
mov esi, eax
add esp, 4
cmp esi, 1
jne 0x4184e6
lea ecx, [ebp - 0x1c0]
call fcn.0041c1b9
mov ecx, 0xca
mov dword [ebp - 0x1ac], ecx
jmp 0x4184ec
mov esi, 1
jmp 0x4184ec
lea eax, [ebp - 0x1c0]
push eax
mov eax, dword [ebp - 0x30]
mov eax, dword [eax]
call eax
mov esi, eax
jmp 0x4184e3
mov eax, dword [ebp - 0x1c0]
mov dword [eax + 0x14], 0x14
mov ecx, dword [ebp - 0x1c0]
mov eax, dword [ebp - 0x1ac]
mov dword [ecx + 0x18], eax
lea eax, [ebp - 0x1c0]
push eax
mov eax, dword [ebp - 0x1c0]
mov eax, dword [eax]
call eax
add esp, 4
mov ecx, dword [ebp - 0x1ac]
sub esi, 1
je 0x418561
sub esi, 1
jne 0x418561
mov eax, dword [ebp - 0x1c0]
mov dword [eax + 0x14], 0x33
lea eax, [ebp - 0x1c0]
push eax
mov eax, dword [ebp - 0x1c0]
mov eax, dword [eax]
call eax
mov eax, dword [ebp - 0x1bc]
add esp, 4
test eax, eax
je 0x41855b
mov eax, dword [eax + 0x24]
lea ecx, [ebp - 0x1c0]
push 1
push ecx
call eax
add esp, 8
cmp byte [ebp - 0x1b0], 0
je 0x41854e
mov ecx, 0xc8
mov dword [ebp - 0xb4], esi
mov dword [ebp - 0x1ac], ecx
jmp 0x418561
mov ecx, 0x64
mov dword [ebp - 0x1ac], ecx
jmp 0x418561
mov ecx, dword [ebp - 0x1ac]
mov esi, dword [ebp - 0x2b8]
mov edi, 1
mov eax, dword [ebp - 0x194]
mov edx, dword [esi + 0x198]
test dl, 0x80
cmovne eax, edi
mov dword [ebp - 0x194], eax
test edx, 0x100
je 0x4185b0
mov byte [ebp - 0x176], 1
movss xmm0, dword [esi + 0x154]
addss xmm0, dword [0x4a33c0]
cvttss2si eax, xmm0
movzx eax, al
mov dword [ebp - 0x16c], eax
test edx, 0x200
je 0x4185c4
mov eax, dword [esi + 0x1d8]
mov dword [ebp - 0x174], eax
movzx eax, byte [ebp - 0x170]
test edx, 0x400
mov edi, 0
mov dword [ebp - 0x190], 1
cmovne eax, edi
test edx, 0x800
mov byte [ebp - 0x170], al
mov edx, edi
movzx eax, byte [ebp - 0x178]
cmovne eax, edx
mov byte [ebp - 0x178], al
cmp dword [esi + 0x148], 0xffffffff
jne 0x418658
lea ecx, [ebp - 0x1c0]
call fcn.0041c80d
mov eax, dword [ebp - 0x164]
mov dword [esi + 0xc], eax
mov eax, dword [ebp - 0x160]
mov dword [esi + 0x10], eax
mov dword [esi + 0x40], 3
mov eax, dword [ebp - 0x1bc]
test eax, eax
je 0x418647
mov eax, dword [eax + 0x28]
lea ecx, [ebp - 0x1c0]
push ecx
call eax
add esp, 4
mov dword [ebp - 0x1bc], edi
mov dword [ebp - 0x1ac], edi
jmp 0x418c60
cmp ecx, 0xca
jne 0x4186a5
mov eax, dword [ebp - 0x40]
lea ecx, [ebp - 0x1c0]
mov dword [eax], 0x41cbad
mov dword [eax + 4], 0x41cce7
mov byte [eax + 8], dl
mov byte [eax + 0x64], dl
call fcn.0041c9ee
cmp byte [ebp - 0x180], 0
je 0x418699
mov dword [ebp - 0x1ac], 0xcf
jmp 0x418775
mov dword [ebp - 0x1ac], 0xcb
jmp 0x4186b1
cmp ecx, 0xcb
jne 0x418732
mov eax, dword [ebp - 0x30]
cmp byte [eax + 0x10], 0
je 0x418724
mov ecx, dword [ebp - 0x1b8]
test ecx, ecx
je 0x4186d2
lea eax, [ebp - 0x1c0]
push eax
mov eax, dword [ecx]
call eax
add esp, 4
lea eax, [ebp - 0x1c0]
push eax
mov eax, dword [ebp - 0x30]
mov eax, dword [eax]
call eax
add esp, 4
test eax, eax
je 0x418775
cmp eax, 2
je 0x418724
mov ecx, dword [ebp - 0x1b8]
test ecx, ecx
je 0x4186d2
cmp eax, 3
je 0x418704
cmp eax, 1
jne 0x4186c0
inc dword [ecx + 4]
mov eax, dword [ecx + 4]
mov ecx, dword [ebp - 0x1b8]
mov edx, dword [ecx + 8]
cmp eax, edx
jl 0x4186c0
mov eax, dword [ebp - 0xa4]
add eax, edx
mov dword [ecx + 8], eax
jmp 0x4186ba
mov eax, dword [ebp - 0x144]
mov dword [ebp - 0x13c], eax
jmp 0x41876a
cmp ecx, 0xcc
je 0x41876a
mov eax, dword [ebp - 0x1c0]
mov dword [eax + 0x14], 0x14
mov ecx, dword [ebp - 0x1c0]
mov eax, dword [ebp - 0x1ac]
mov dword [ecx + 0x18], eax
lea eax, [ebp - 0x1c0]
push eax
mov eax, dword [ebp - 0x1c0]
mov eax, dword [eax]
call eax
add esp, 4
lea ecx, [ebp - 0x1c0]
call fcn.0041c32a
mov eax, dword [ebp - 0x158]
mov ecx, esi
push 3
shl eax, 3
push eax
push dword [ebp - 0x160]
mov word [ebp - 0x178], di
push dword [ebp - 0x164]
call fcn.00412320
cmp dword [esi + 4], edi
je 0x418c8e
cmp byte [ebp - 0x289], 0
jne 0x4188af
movzx eax, byte [ebp - 0xbd]
sub eax, 0
je 0x418864
sub eax, 2
movzx eax, word [ebp - 0xbc]
je 0x4187e1
push eax
mov ecx, esi
call fcn.00412940
movzx eax, word [ebp - 0xba]
jmp 0x4188a7
movd xmm0, eax
sub esp, 8
cvtdq2pd xmm0, xmm0
mulsd xmm0, qword [0x4a33f0]
addsd xmm0, qword [0x4a33d8]
movsd qword [ebp - 0x29c], xmm0
fld qword [ebp - 0x29c]
fstp qword [esp]
call fcn.0046bf70
add esp, 8
call fcn.00469b40
push eax
mov ecx, esi
call fcn.00412940
movzx eax, word [ebp - 0xba]
sub esp, 8
movd xmm0, eax
cvtdq2pd xmm0, xmm0
mulsd xmm0, qword [0x4a33f0]
addsd xmm0, qword [0x4a33d8]
movsd qword [ebp - 0x29c], xmm0
fld qword [ebp - 0x29c]
fstp qword [esp]
call fcn.0046bf70
add esp, 8
call fcn.00469b40
jmp 0x4188a7
mov ax, word [ebp - 0xba]
test ax, ax
je 0x4188af
mov cx, word [ebp - 0xbc]
test cx, cx
je 0x4188af
movzx eax, ax
movd xmm1, eax
movzx eax, cx
cvtdq2ps xmm1, xmm1
movd xmm0, eax
cvtdq2ps xmm0, xmm0
divss xmm1, xmm0
movd xmm0, dword [esi + 0x168]
cvtdq2ps xmm0, xmm0
mulss xmm1, xmm0
cvttss2si eax, xmm1
push eax
mov ecx, esi
call fcn.004129b0
cmp dword [ebp - 0x194], 1
jne 0x4188c8
mov ecx, esi
call fcn.00413630
mov dword [esi + 0x28], 0x100
jmp 0x4188ff
cmp byte [ebp - 0x176], 0
je 0x4188fc
mov eax, dword [ebp - 0x14c]
mov ecx, dword [eax]
test ecx, ecx
je 0x4188f1
push dword [eax + 8]
push dword [eax + 4]
push ecx
push dword [ebp - 0x150]
mov ecx, esi
call fcn.00413560
mov eax, dword [ebp - 0x150]
mov dword [esi + 0x28], eax
jmp 0x4188ff
mov dword [esi + 0x28], edi
mov ebx, dword [ebp - 0x158]
lea eax, [ebp - 0x1c0]
imul ebx, dword [ebp - 0x164]
push 1
push ebx
push 1
push eax
mov eax, dword [ebp - 0x1bc]
mov dword [ebp - 0x290], ebx
mov eax, dword [eax + 8]
call eax
add esp, 0x10
lea ecx, [ebp - 0x2b4]
mov edi, eax
mov dword [ebp - 0x298], edi
call fcn.004154d0
mov ecx, dword [ebp - 0x148]
mov edx, dword [ebp - 0x160]
cmp ecx, edx
jae 0x418a68
cmp dword [esi + 0x148], 0
jne 0x418c8e
push ecx
mov edx, edi
lea ecx, [ebp - 0x1c0]
call fcn.0041c3d7
add esp, 4
cmp dword [ebp - 0x19c], 4
jne 0x418ad0
cmp byte [ebp - 0x176], 0
jne 0x418ad0
mov eax, dword [edi]
xor ebx, ebx
xor edi, edi
mov dword [ebp - 0x294], eax
cmp dword [esi + 0x30], ebx
jle 0x418a2a
cmp edi, dword [ebp - 0x290]
jge 0x418a2a
movzx esi, byte [edi + eax + 3]
movzx ecx, byte [edi + eax + 2]
mov eax, 0x80808081
imul ecx, esi
mul ecx
mov eax, dword [ebp - 0x2a4]
shr edx, 7
mov byte [eax + ebx], dl
mov eax, dword [ebp - 0x294]
movzx ecx, byte [edi + eax + 1]
mov eax, 0x80808081
imul ecx, esi
mul ecx
mov eax, dword [ebp - 0x2a4]
shr edx, 7
mov byte [eax + ebx + 1], dl
mov eax, dword [ebp - 0x294]
movzx ecx, byte [edi + eax]
mov eax, 0x80808081
imul ecx, esi
add edi, 4
mov esi, dword [ebp - 0x2b8]
mul ecx
mov eax, dword [ebp - 0x2a4]
shr edx, 7
mov byte [eax + ebx + 2], dl
add ebx, 3
mov eax, dword [ebp - 0x294]
cmp ebx, dword [esi + 0x30]
jl 0x4189a0
mov ebx, dword [ebp - 0x290]
mov edi, dword [ebp - 0x298]
mov eax, dword [ebp - 0x2a4]
sub dword [ebp - 0x2b0], 1
js 0x418a54
mov ecx, dword [ebp - 0x2a0]
sub eax, dword [ecx + 0x30]
mov dword [ebp - 0x2a4], eax
mov ecx, dword [ebp - 0x148]
mov edx, dword [ebp - 0x160]
cmp ecx, edx
jb 0x418953
mov eax, dword [ebp - 0x1ac]
cmp eax, 0xcd
je 0x418a80
cmp eax, 0xce
jne 0x418b19
cmp byte [ebp - 0x180], 0
jne 0x418b19
cmp ecx, edx
jae 0x418ab2
mov eax, dword [ebp - 0x1c0]
mov dword [eax + 0x14], 0x43
lea eax, [ebp - 0x1c0]
push eax
mov eax, dword [ebp - 0x1c0]
mov eax, dword [eax]
call eax
add esp, 4
lea eax, [ebp - 0x1c0]
push eax
mov eax, dword [ebp - 0x40]
mov eax, dword [eax + 4]
call eax
mov dword [ebp - 0x1ac], 0xd2
jmp 0x418b60
mov edx, dword [edi]
mov eax, dword [ebp - 0x2a0]
test ebx, ebx
jns 0x418ae1
mov ecx, dword [eax + 0x30]
jmp 0x418aeb
mov eax, dword [eax + 0x30]
mov ecx, ebx
cmp ebx, eax
cmovge ecx, eax
mov eax, dword [ebp - 0x2a4]
test eax, eax
je 0x418a3c
test edx, edx
je 0x418a3c
test ecx, ecx
jle 0x418a3c
push ecx
push edx
push eax
call fcn.0044df80
add esp, 0xc
jmp 0x418a36
cmp eax, 0xcf
jne 0x418b2c
mov dword [ebp - 0x1ac], 0xd2
jmp 0x418b63
cmp eax, 0xd2
je 0x418b63
mov eax, dword [ebp - 0x1c0]
mov dword [eax + 0x14], 0x14
mov ecx, dword [ebp - 0x1c0]
mov eax, dword [ebp - 0x1ac]
mov dword [ecx + 0x18], eax
lea eax, [ebp - 0x1c0]
push eax
mov eax, dword [ebp - 0x1c0]
mov eax, dword [eax]
call eax
add esp, 4
mov eax, dword [ebp - 0x30]
cmp byte [eax + 0x11], 0
jne 0x418b8b
nop dword [eax]
mov eax, dword [eax]
lea ecx, [ebp - 0x1c0]
push ecx
call eax
add esp, 4
test eax, eax
je 0x418be4
mov eax, dword [ebp - 0x30]
cmp byte [eax + 0x11], 0
je 0x418b70
lea eax, [ebp - 0x1c0]
push eax
mov eax, dword [ebp - 0x1a8]
mov eax, dword [eax + 0x18]
call eax
mov eax, dword [ebp - 0x1bc]
add esp, 4
test eax, eax
je 0x418be4
mov eax, dword [eax + 0x24]
lea ecx, [ebp - 0x1c0]
push 1
push ecx
call eax
add esp, 8
cmp byte [ebp - 0x1b0], 0
je 0x418bda
mov dword [ebp - 0x1ac], 0xc8
mov dword [ebp - 0xb4], 0
jmp 0x418be4
mov dword [ebp - 0x1ac], 0x64
cmp dword [ebp - 0x19c], 3
jne 0x418c33
cmp byte [ebp - 0x176], 0
jne 0x418c33
mov edx, dword [esi + 4]
test edx, edx
je 0x418c09
mov ecx, dword [esi + 0x28]
mov eax, dword [edx]
lea edi, [eax + ecx*4]
add edi, edx
jmp 0x418c0b
xor edi, edi
xor ebx, ebx
cmp dword [esi + 0x10], ebx
jle 0x418c33
cmp dword [esi + 0x148], 0
jne 0x418c8e
mov eax, dword [esi + 0xc]
mov ecx, esi
lea eax, [eax + eax*2]
push eax
push edi
call fcn.00413500
add edi, dword [esi + 0x30]
inc ebx
cmp ebx, dword [esi + 0x10]
jl 0x418c12
mov eax, dword [ebp - 0x1bc]
test eax, eax
je 0x418c4c
mov eax, dword [eax + 0x28]
lea ecx, [ebp - 0x1c0]
push ecx
call eax
add esp, 4
mov dword [ebp - 0x1bc], 0
mov dword [ebp - 0x1ac], 0
push dword [ebp - 0x2c0]
call fcn.0044cb04
mov al, 1
add esp, 4
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.0044ca89
mov esp, ebp
pop ebp
ret 4
push 1
lea eax, [ebp - 0x204]
push eax
call fcn.0044f785
aas
test byte [ecx], al
insd dword es:[edi], dx
test byte [ecx], al
popfd
test byte [ecx], al
movsb byte es:[edi], byte [esi]
test byte [ecx], al
mov dh, 0x84
inc ecx
add byte [eax], al
add dword [edx], eax
add eax, dword [ebx]
add eax, dword [ebx]
add eax, dword [ebx]
add al, 3
int3