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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0xd8
push esi
push edi
mov edi, dword [ebp + 0x10]
mov esi, ecx
mov dword [esp + 8], edx
mov dword [esp + 0x14], esi
cmp dword [edi + 0x1bc], 0
je 0x427714
lea ecx, [edi + 8]
call fcn.004493a0
cmp dword [edi + 0x1bc], 0
lea ecx, [edi + 0x148]
mov dword [esp + 8], eax
movss xmm0, dword [esp + 8]
mov eax, dword [ebp + 0xc]
mov dword [esp + 0xc], edx
movss dword [esp + 0x30], xmm0
movss xmm0, dword [esp + 0xc]
movss dword [esp + 0x34], xmm0
xorps xmm0, xmm0
mov dword [esp + 0x38], eax
mov dword [esp + 0x3c], edi
movq qword [esp + 8], xmm0
mov dword [esp + 0x10], 0
jbe 0x42766b
lea eax, [edi + 0x1a4]
xorps xmm1, xmm1
mov dword [esp + 0x20], eax
nop dword [eax]
cmp dword [ecx], 0
mov eax, dword [eax]
mov dword [esp + 0x14], eax
movss dword [esp + 0x18], xmm1
jne 0x4275ac
call fcn.0042a520
movss dword [esp + 0x18], xmm0
mov esi, dword [ecx + 4]
movss xmm1, dword [0x50d2ec]
lea eax, [esi + 0x18]
mov dword [ecx + 4], eax
mov ecx, dword [esp + 0x14]
mov dword [esi], 1
call fcn.00436340
mov eax, dword [esp + 0x14]
lea ecx, [edi + 0x148]
mov edx, dword [esp + 0x10]
movaps xmm1, xmm0
mulss xmm1, dword [0x50d2cc]
mov dword [esi + 0xc], eax
mov eax, edx
movss xmm0, dword [esp + 8]
and eax, 1
inc eax
mov dword [esi + 0x10], 0x3f266666
subss xmm0, xmm1
mov dword [esi + 0x14], 0xffff0000
movss xmm1, dword [esp + 0x18]
inc edx
mov dword [esp + 0x10], edx
movss dword [esi + 4], xmm0
movss xmm0, dword [esp + 0xc]
movss dword [esi + 8], xmm0
movd xmm0, eax
cvtdq2pd xmm0, xmm0
shr eax, 0x1f
addsd xmm0, qword [eax*8 + 0x50e260]
mov eax, dword [esp + 0x20]
add eax, 4
mov dword [esp + 0x20], eax
cvtpd2ps xmm0, xmm0
mulss xmm0, dword [0x50d518]
subss xmm1, xmm0
movaps xmm0, xmm1
movss dword [esp + 0xc], xmm1
cmp edx, dword [edi + 0x1bc]
jb 0x427590
lea ecx, [edi + 0x148]
cmp dword [edi + 0x180], 0
lea eax, [edi + 0x140]
movss xmm2, dword [0x50d2cc]
mov edx, 0x503524
push ecx
push eax
lea eax, [esp + 0x38]
sete cl
push eax
push 0x4fd4f8
push 0
lea eax, [esp + 0x1c]
push 0x503524
push eax
call fcn.00448ea0
add esp, 0x1c
test al, 2
je 0x427e9b
xorps xmm0, xmm0
movups xmmword [edi + 0x1a4], xmm0
movq qword [edi + 0x1b4], xmm0
mov dword [edi + 0x1bc], 0
mov eax, dword [0x5770e0]
mov ecx, dword [eax + 0x10]
mov eax, ecx
shr eax, 0x1f
mov dword [edi + 0x130], ecx
movd xmm0, ecx
cvtdq2pd xmm0, xmm0
addsd xmm0, qword [eax*8 + 0x50e260]
cvtpd2ps xmm0, xmm0
mulss xmm0, dword [0x50d1c8]
movss dword [esp + 0xc], xmm0
mov eax, dword [esp + 0xc]
mov dword [edi + 0x134], eax
xor eax, eax
pop edi
pop esi
mov esp, ebp
pop ebp
ret
mov eax, dword [edi + 0x1ee38]
sub eax, 0
je 0x427ea3
sub eax, 1
je 0x427aef
sub eax, 1
jne 0x427e9b
cmp dword [edi + 0x1edf8], eax
je 0x427997
cmp dword [edi + 0x1eb44], 2
lea eax, [edi + 8]
je 0x427949
mov ecx, eax
call fcn.004493a0
mov dword [esp + 0x20], eax
mov eax, dword [edi + 0x1edf8]
movss xmm1, dword [esp + 0x20]
xorps xmm1, xmmword [0x50e290]
mov dword [esp + 0x24], edx
mov eax, dword [eax + 8]
mov edx, dword [ebp + 8]
movss dword [esp + 0x30], xmm1
movss xmm1, dword [esp + 0x24]
mov ecx, dword [eax + 0x60]
add ecx, dword [eax + 0x4c]
add ecx, dword [eax + 0x38]
xorps xmm1, xmmword [0x50e290]
add ecx, dword [eax + 0x24]
push 0x58a440
movss dword [esp + 0x1c], xmm1
call fcn.00426ea0
divss xmm0, dword [0x50d5c0]
push ecx
lea eax, [edi + 0x178]
cvtss2sd xmm0, xmm0
movsd qword [esp], xmm0
push str.D__.1f_kb_s
push eax
call fcn.0042a580
mov ecx, dword [esi + 4]
add esp, 0x10
mov dword [esp + 0x20], eax
call fcn.00428db0
cmp dword [edi + 0x148], 0
lea ecx, [edi + 0x148]
mov dword [esp + 0x10], eax
jne case.default.0x427878
call fcn.0042a520
mov esi, dword [ecx + 4]
movss xmm1, dword [0x50d268]
lea eax, [esi + 0x18]
mov dword [ecx + 4], eax
mov ecx, dword [esp + 0x20]
mov dword [esi], 1
call fcn.00436340
mov eax, dword [esp + 0x20]
movaps xmm1, xmm0
xorps xmm0, xmm0
mov dword [esi + 0xc], eax
mov eax, dword [esp + 0x10]
mulss xmm1, xmm0
mov dword [esi + 0x14], eax
movss xmm0, dword [esp + 0x30]
mov dword [esi + 0x10], 0x3e68f5c2
subss xmm0, xmm1
movss dword [esi + 4], xmm0
movss xmm0, dword [esp + 0x18]
movss dword [esi + 8], xmm0
mov eax, dword [edi + 0x1edf8]
addss xmm0, dword [0x50d498]
mov eax, dword [eax + 8]
movss dword [esp + 0x18], xmm0
mov ecx, dword [eax + 0x58]
add ecx, dword [eax + 0x44]
add ecx, dword [eax + 0x30]
add ecx, dword [eax + 0x1c]
mov eax, dword [esp + 0x14]
mov eax, dword [eax + 4]
and eax, 3
jmp dword [eax*4 + 0x427f14]
mov dword [esp + 0x10], 0xffe94e2b
mov edx, dword [ebp + 8]
push 0x58a630
call fcn.00426ea0
divss xmm0, dword [0x50d5c0]
push ecx
lea eax, [edi + 0x178]
cvtss2sd xmm0, xmm0
movsd qword [esp], xmm0
push str.U__.1f_kb_s
push eax
call fcn.0042a580
lea ecx, [edi + 0x148]
mov dword [esp + 0x30], eax
add esp, 0x10
cmp dword [ecx], 0
jne 0x4278ec
call fcn.0042a520
mov esi, dword [ecx + 4]
movss xmm1, dword [0x50d268]
lea eax, [esi + 0x18]
mov dword [ecx + 4], eax
mov ecx, dword [esp + 0x20]
mov dword [esi], 1
call fcn.00436340
mov eax, dword [esp + 0x20]
xorps xmm1, xmm1
mulss xmm0, xmm1
mov dword [esi + 0xc], eax
movss xmm1, dword [esp + 0x30]
mov eax, dword [esp + 0x10]
subss xmm1, xmm0
mov dword [esi + 0x14], eax
movss xmm0, dword [esp + 0x18]
lea eax, [edi + 8]
movss dword [esi + 8], xmm0
mov dword [esi + 0x10], 0x3e68f5c2
movss dword [esi + 4], xmm1
mov esi, dword [esp + 0x14]
mov ecx, eax
call fcn.004493a0
mov dword [esp + 0x30], eax
mov ecx, esi
mov eax, dword [ebp + 0xc]
movss xmm0, dword [esp + 0x30]
mov dword [esp + 0x28], eax
lea eax, [esp + 0x20]
mov dword [esp + 0x34], edx
mov edx, dword [esp + 8]
push eax
push dword [ebp + 8]
movss dword [esp + 0x28], xmm0
movss xmm0, dword [esp + 0x3c]
movss dword [esp + 0x2c], xmm0
mov dword [esp + 0x34], edi
call fcn.0042fa50
add esp, 8
pop edi
pop esi
mov esp, ebp
pop ebp
ret
lea ecx, [edi + 0x1d5a8]
call fcn.004b7650
push edi
push dword [ebp + 0xc]
mov edx, edi
mov dword [esp + 0x28], eax
mov ecx, eax
call fcn.0044c620
mov ecx, dword [ebp + 8]
mov dl, al
call fcn.0044c120
add esp, 8
test al, al
jne 0x4279cf
mov eax, 1
pop edi
pop esi
mov esp, ebp
pop ebp
ret
xor ecx, ecx
lea edx, [edi + 0x1128]
mov dword [esp + 0x10], ecx
lea esi, [edi + 0x1d5b8]
mov dword [esp + 0x30], edx
nop word [eax + eax]
mov eax, dword [esi + 0x10]
or eax, dword [esi + 0x14]
je 0x427ac6
cmp dword [edi + 0x1eb50], 0
je 0x427a30
mov eax, dword [edx - 0xf24]
mov ecx, dword [edx - 0xf20]
mov dword [esi - 0x10], eax
mov dword [esi - 0xc], ecx
test byte [edx], 1
je 0x427a1f
or dword [esi], 4
test byte [edx], 2
je 0x427ac6
or dword [esi], 8
jmp 0x427ac6
mov eax, dword [0x576f28]
mov dword [esp + 0x1c], 0x43700000
movd xmm0, eax
cvtdq2pd xmm0, xmm0
shr eax, 0x1f
addsd xmm0, qword [eax*8 + 0x50e260]
mov eax, dword [0x576f2c]
cvtpd2ps xmm1, xmm0
movd xmm0, eax
cvtdq2pd xmm0, xmm0
shr eax, 0x1f
addsd xmm0, qword [eax*8 + 0x50e260]
lea eax, [edx - 0xf3c]
mov edx, ecx
mov ecx, dword [esp + 0x20]
push eax
push edi
cvtpd2ps xmm0, xmm0
divss xmm1, xmm0
mulss xmm1, dword [0x50d634]
mulss xmm1, dword [0x50d2cc]
movss dword [esp + 0x20], xmm1
call fcn.0044c6b0
mov edx, dword [ebp + 8]
add esp, 4
mov ecx, dword [esp + 0xc]
push eax
push edi
push dword [esp + 0x20]
lea eax, [esp + 0x28]
push eax
push 1
push dword [esp + 0x28]
call fcn.0044bf00
mov edx, dword [esp + 0x4c]
add esp, 0x1c
mov eax, dword [esp + 0x10]
add edx, 0xf6c
inc eax
mov dword [esp + 0x30], edx
add esi, 0x40
mov dword [esp + 0x10], eax
mov ecx, eax
cmp eax, 4
jb 0x4279f0
xor eax, eax
pop edi
pop esi
mov esp, ebp
pop ebp
ret
mov eax, dword [edi + 0x1ee28]
cmp eax, 3
ja case.default.0x427afe
jmp dword [eax*4 + 0x427f24]
call fcn.00435ca0
xorps xmm0, xmm0
mov dword [esp + 0xc], edx
movq qword [esp + 0x30], xmm0
movss xmm0, dword [edi + 0x1ee24]
subss xmm0, dword [esp + 0xc]
mov dword [esp + 8], eax
cvttss2si eax, xmm0
inc eax
push eax
lea eax, [edi + 0x178]
push str.launching_in__d...
push eax
call fcn.0042a580
add esp, 0xc
lea esi, [edi + 0x148]
lea edx, [esp + 0x30]
push esi
push 0xff3fafff
push ecx
mov dword [esp], 0x3f266666
push eax
movss xmm1, dword [0x50d2cc]
xor ecx, ecx
call fcn.0044b580
add esp, 0x10
jmp 0x427c70
lea esi, [edi + 0x148]
xorps xmm0, xmm0
push esi
push 0xff3fafff
push ecx
mov dword [esp], 0x3f266666
lea edx, [esp + 0x14]
movq qword [esp + 0x14], xmm0
push str.preparing_simulation...
jmp 0x427b5c
lea esi, [edi + 0x148]
xorps xmm0, xmm0
push esi
push 0xff3fafff
push ecx
mov dword [esp], 0x3f266666
lea edx, [esp + 0x14]
movq qword [esp + 0x14], xmm0
push str.preparing_visualization...
jmp 0x427b5c
lea esi, [edi + 0x148]
xorps xmm0, xmm0
push esi
push 0xff3fafff
push ecx
mov dword [esp], 0x3f266666
lea edx, [esp + 0x14]
movq qword [esp + 0x14], xmm0
push str.preparing_network...
jmp 0x427b5c
push eax
lea eax, [edi + 0x178]
push str.ERROR:_unknown_launch_stage__u
push eax
call fcn.0042a580
lea ecx, [edi + 0x148]
mov dword [esp + 0x14], eax
add esp, 0xc
cmp dword [ecx], 0
jne 0x427c17
call fcn.0042a520
mov esi, dword [ecx + 4]
movss xmm1, dword [0x50d2ec]
lea eax, [esi + 0x18]
mov dword [ecx + 4], eax
mov ecx, dword [esp + 8]
mov dword [esi], 0
call fcn.00436340
mov eax, dword [esp + 8]
movaps xmm1, xmm0
mulss xmm1, dword [0x50d2cc]
xorps xmm0, xmm0
mov dword [esi + 8], 0
mov dword [esi + 0xc], eax
mov dword [esi + 0x10], 0x3f266666
subss xmm0, xmm1
mov dword [esi + 0x14], 0xff3fafff
movss dword [esi + 4], xmm0
lea esi, [edi + 0x148]
lea ecx, [edi + 8]
mov dword [esp + 0x40], str.Check_every_corner__twice.
mov dword [esp + 0x44], str.Beasts_will_not_damage_open_doors.
mov dword [esp + 0x48], str.Projectiles_will_ricochet_off_fences.
mov dword [esp + 0x4c], str.Sentries_have_limited_ammunition.
mov dword [esp + 0x50], str.You_can_pass_through_fences_but_will_take_random_damage_to_systems_or_upgrades.
mov dword [esp + 0x54], str.Standing_near_a_power_breaker_will_recharge_your_battery.
mov dword [esp + 0x58], str.Lurking_beasts_will_wake_up_when_the_reactor_starts_to_overload.
mov dword [esp + 0x5c], str.Both_beasts_and_players_can_force_doors_open_during_power_outages.
mov dword [esp + 0x60], str.Mind_your_lines_of_fire_when_playing_with_a_team___pick_a_wall_and_hug_it.
mov dword [esp + 0x64], str.Retreat_often_only_delays_the_inevitable.
mov dword [esp + 0x68], str.Sometimes_you_have_to_push_through_the_heart_of_the_nest_to_complete_the_mission.
mov dword [esp + 0x6c], str.Fences__sentries_and_doors_can_be_used_to__somewhat__contain_breaches.
mov dword [esp + 0x70], str.Breaches_never_stop_generating_beasts.
mov dword [esp + 0x74], str.When_covering_a_breach__corridor_or_corner__leave_room_for_your_fellow_marines_to_pass_behind_you.
mov dword [esp + 0x78], str.The_security_room_has_a_map_of_the_entire_spacecraft_updated_in_real_time.
mov dword [esp + 0x7c], str.Upgrades_carry_over_between_successful_missions.
mov dword [esp + 0x80], str.Science_is_gained_by_successfully_escorting_scientists_back_to_the_airlock.
mov dword [esp + 0x84], str.Experiment_with_the_various_infravision_styles_in_the_settings_to_see_which_you_prefer.
mov dword [esp + 0x88], str.Trying_to_rescue_every_scientist_may_involve_some_risk.
mov dword [esp + 0x8c], str.Sentries_will_try_not_to_fire_when_friendlies_are_in_the_way__but_they_are_fallible.
mov dword [esp + 0x90], str.Beasts_can_see_in_the_dark.
mov dword [esp + 0x94], str.Beasts_that_have_seen_you_will_follow_you_anywhere.
mov dword [esp + 0x98], str.Beasts_may_use_infestation_as_camoflauge.
mov dword [esp + 0x9c], str.The_motion_tracker_cannot_detect_things_that_are_not_moving.
mov dword [esp + 0xa0], str.Players_move_faster_when_danger_is_near.
mov dword [esp + 0xa4], str.During_a_power_outage_your_HUD_will_show_the_distance_to_the_nearest_power_breaker.
mov dword [esp + 0xa8], str.Dead_players_will_reinforce_in_waves_at_30_second_intervals.
mov dword [esp + 0xac], str.Reactor_Safety_Protocol_opens_all_doors_and_panic_rooms__and_disables_all_fences.
mov dword [esp + 0xb0], str.The_longer_you_take_to_complete_a_mission_the_harder_things_will_get.
mov dword [esp + 0xb4], str.Scientists_can_lose_track_of_you___make_sure_you_dont_run_too_far_ahead.
mov dword [esp + 0xb8], str.Playing_Campaign_of_the_Week__CotW__solo_lets_you_compete_on_a_global_leaderboard.
mov dword [esp + 0xbc], str.Experiment_with_different_weapon_loadouts_to_find_the_one_you_like_most.
mov dword [esp + 0xc0], str.Downloading_datacores_will_randomly_upgrade_your_suit_systems.
mov dword [esp + 0xc4], str.Spacecraft_are_equipped_with_panic_rooms_for_use_in_the_event_of_a_xenobiological_emergency.
mov dword [esp + 0xc8], str.Firing_while_using_an_armory_will_disrupt_the_re_arming_process.
mov dword [esp + 0xcc], str.The_Grind_Campaign_is_a_casual_mode_that_features_persistent_progression.
mov dword [esp + 0xd0], str.Earning_science_will_improve_both_your_ammo_type_and_re_arm_rate.
mov dword [esp + 0xd4], str.Power_breakers_glow_in_the_dark_so_you_can_more_easily_find_them_during_power_outages.
mov dword [esp + 0xd8], str.Aim_assist_has_limited_range_but_displays_targets_even_through_solids.
mov dword [esp + 0xdc], str.There_is_a_new_Mission_of_the_Day__MotD__every_day__and_all_progression_in_this_mode_is_permanent.
call fcn.004493a0
movss xmm0, dword [0x50d4d4]
mov dword [esp + 0xc], edx
subss xmm0, dword [esp + 0xc]
mov dword [esp + 8], eax
movss dword [esp + 0x30], xmm0
movss xmm0, dword [edi + 0x1ee24]
call fcn.004ee070
xor edx, edx
mov ecx, 0x28
div ecx
cmp dword [esi], 0
mov eax, dword [esp + edx*4 + 0x40]
mov dword [esp + 8], eax
jne 0x427e46
mov ecx, esi
call fcn.0042a520
mov esi, dword [esi + 4]
movss xmm1, dword [0x50d294]
lea eax, [esi + 0x18]
mov dword [edi + 0x14c], eax
mov edi, dword [esp + 8]
mov ecx, edi
mov dword [esi], 0
call fcn.00436340
mulss xmm0, dword [0x50d2cc]
xorps xmm1, xmm1
mov dword [esi + 0xc], edi
mov dword [esi + 0x10], 0x3ea66666
mov dword [esi + 0x14], 0xfffa872a
subss xmm1, xmm0
movss xmm0, dword [esp + 0x30]
movss dword [esi + 8], xmm0
movss dword [esi + 4], xmm1
xor eax, eax
pop edi
pop esi
mov esp, ebp
pop ebp
ret
mov edx, dword [ebp + 0xc]
push edi
call fcn.00440bb0
mov ecx, dword [0x589e14]
add esp, 4
mov esi, eax
lea edx, [ecx + 1]
and ecx, 0xc0000000
and edx, 0x3fffffff
or edx, ecx
mov dword [0x589e14], edx
jl 0x427f0b
test edx, 0x40000000
je 0x427f0b
cmp dword [edi + 0x190], 0
jne 0x427ef7
mov eax, dword [edi + 0x180]
mov dword [edi + 0x184], eax
mov dword [edi + 0x180], 0
mov dword [edi + 0x190], 0
mov dword [edi + 0x18c], 0
pop edi
mov eax, esi
pop esi
mov esp, ebp
pop ebp
ret