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

Disassembly:
push 0xffffffffffffffff
mov eax, dword fs:[0]
push 0x71c462
push eax
mov dword fs:[0], esp
sub esp, 0x80
push ebx
push ebp
push esi
push edi
push 1
mov esi, ecx
call fcn.004d6230
test eax, eax
jne 0x5227e5
mov eax, dword [0x7a39fc]
mov ecx, dword [eax + 8]
mov edx, dword [ecx]
call dword [edx + 0x10]
mov bl, byte [esp + 0xa4]
cmp bl, 0x15
mov edi, dword [esp + 0xa0]
mov ebp, eax
jne 0x520cc9
mov ecx, esi
call fcn.004d66f0
push 1
mov ecx, esi
mov dword [esp + 0x20], eax
call fcn.004d6230
test eax, eax
jne 0x5227e5
push 1
mov ecx, esi
call fcn.004d6240
test eax, eax
jne 0x5227e5
mov eax, dword [edi + 4]
push eax
mov ecx, ebp
call fcn.005d5170
mov ecx, dword [eax + 0x24]
test ecx, ecx
je 0x52166e
mov eax, dword [0x7a39fc]
mov ebp, dword [esp + 0x1c]
mov ecx, dword [eax + 8]
push ebp
call fcn.004aee10
push ebp
mov ecx, esi
call fcn.00569be0
mov eax, dword [0x7a39fc]
mov ecx, dword [eax + 8]
call fcn.004aee20
test eax, eax
jne 0x520eb3
mov ecx, esi
call fcn.004d6170
mov eax, 1
jmp 0x5227e7
cmp bl, 4
jne 0x520d7c
mov eax, dword [0x7a39fc]
mov ecx, dword [eax + 8]
xor esi, esi
test ecx, ecx
je 0x520d75
mov ecx, dword [eax + 4]
test ecx, ecx
je 0x520d75
call fcn.005ed8b0
test eax, eax
je 0x520d75
mov ecx, dword [0x7a39fc]
mov ecx, dword [ecx + 4]
call fcn.005ed8b0
mov edx, dword [0x7a39fc]
mov ecx, dword [edx + 4]
mov edi, dword [eax]
call fcn.005ed8b0
mov ecx, eax
call fcn.00635460
test eax, eax
je 0x520d75
mov ecx, eax
call fcn.0060fb20
test eax, eax
je 0x520d75
mov ecx, dword [eax + 0xf8]
xor ebx, ebx
test ecx, ecx
sete bl
test edi, edi
jle 0x520d70
mov eax, dword [0x7a39fc]
mov ecx, dword [eax + 4]
push esi
call fcn.005ed8b0
mov ecx, eax
call fcn.006346c0
test eax, eax
je 0x520d6b
mov ecx, eax
call fcn.0060fb20
test eax, eax
je 0x520d6b
mov dword [eax + 0xf8], ebx
inc esi
cmp esi, edi
jl 0x520d41
mov esi, 1
mov eax, esi
jmp 0x5227e7
cmp bl, 2
jne 0x520ca3
mov ecx, dword [esp + 0xa0]
call fcn.00561080
mov esi, eax
test esi, esi
je 0x5227e5
push 0x8c
call fcn.006fa7e6
add esp, 4
mov dword [esp + 0x30], eax
test eax, eax
mov dword [esp + 0x98], 0
je 0x520dc6
push 1
mov ecx, eax
call fcn.00503e40
jmp 0x520dc8
xor eax, eax
mov cx, word [0x74668c]
xor edx, edx
mov dx, word [eax + 0xa]
push 0
mov word [eax + 8], cx
push 0
or ebx, 0xffffffff
push eax
mov ecx, esi
and edx, 0xfff8
or dx, word [0x7473b8]
mov dword [esp + 0xa4], ebx
mov word [eax + 0xa], dx
call fcn.004d14f0
push 0x8c
call fcn.006fa7e6
add esp, 4
mov dword [esp + 0x30], eax
test eax, eax
mov dword [esp + 0x98], 1
je 0x520e2d
push 1
mov ecx, eax
call fcn.00503e40
mov edi, eax
jmp 0x520e2f
xor edi, edi
mov ax, word [0x746718]
mov word [edi + 8], ax
mov edx, dword [esi]
push 1
mov ecx, esi
mov dword [esp + 0x9c], ebx
call dword [edx + 0x98]
movsx eax, ax
push eax
push 0
mov ecx, edi
call fcn.005036a0
xor ecx, ecx
mov cx, word [edi + 0xa]
push 0
push 0
push edi
and ecx, 0xfff8
or cx, word [0x7473b8]
mov word [edi + 0xa], cx
mov ecx, esi
call fcn.004d14f0
mov edx, dword [esi]
mov ecx, esi
call dword [edx + 0x30]
test eax, eax
je 0x520ea9
mov eax, dword [esi]
mov ecx, esi
call dword [eax + 0x30]
mov edx, dword [esi]
mov edi, dword [eax + 0xa74]
mov ecx, esi
call dword [edx + 0x30]
mov ecx, eax
call fcn.004fd490
mov word [edi + 0x124], ax
mov eax, 1
jmp 0x5227e7
cmp bl, 0x12
jne 0x520f2e
mov ecx, edi
call fcn.00561080
test eax, eax
je 0x5227e5
mov ecx, edi
call fcn.00561080
mov edx, dword [eax]
mov ecx, eax
call dword [edx + 0x30]
mov eax, dword [eax + 0xa74]
push 0
mov ecx, eax
call fcn.005a5fd0
cmp al, 0x14
jae 0x5227e5
mov ecx, edi
call fcn.00561080
mov ecx, edi
mov esi, eax
call fcn.00561080
mov edi, eax
mov eax, dword [esi]
mov ecx, esi
call dword [eax + 0x30]
mov edx, dword [edi]
mov esi, dword [eax + 0xa74]
mov ecx, edi
call dword [edx + 0x30]
mov edi, dword [eax + 0xa74]
push 1
mov ecx, esi
call fcn.005a6610
push eax
mov ecx, edi
call fcn.005af480
jmp 0x5227e5
cmp bl, 1
jne 0x5213cb
lea ecx, [esp + 0x34]
call fcn.005b3190
mov eax, dword [0x7a39fc]
mov ecx, dword [eax + 8]
mov dword [esp + 0x98], 2
call fcn.004ae6b0
mov ecx, edi
mov ebp, eax
call fcn.00561080
test eax, eax
je 0x5213b2
mov edx, dword [eax]
mov ecx, eax
call dword [edx + 0x30]
mov ebx, eax
test ebx, ebx
je 0x5213b2
push 0x20
lea eax, [esp + 0x4c]
push eax
mov ecx, esi
call fcn.004d67e0
push eax
lea ecx, [esp + 0x38]
mov byte [esp + 0x9c], 3
call fcn.005e5c50
lea ecx, [esp + 0x48]
mov byte [esp + 0x98], 2
call fcn.005e5c20
push 0x20
push 0x3f800000
mov ecx, esi
call fcn.004d67b0
fstp dword [esp + 0x14]
push 0x20
push 0x3f800000
mov ecx, esi
call fcn.004d67b0
fstp dword [esp + 0x18]
push 0x20
push 0x3f800000
mov ecx, esi
call fcn.004d67b0
fstp dword [esp + 0x1c]
push 1
mov ecx, esi
call fcn.004d6230
test eax, eax
jne 0x5213b2
mov ecx, ebp
call fcn.004c30f0
mov ebp, eax
test ebp, ebp
jne 0x521119
mov ecx, ebx
call fcn.004cb120
mov ebp, eax
test ebp, ebp
jne 0x52108e
lea ecx, [esp + 0x3c]
call fcn.005b3190
lea ecx, [esp + 0x34]
mov byte [esp + 0x98], 4
call fcn.005e5670
push eax
lea ecx, [esp + 0x40]
push str.Area__s_not_valid.
push ecx
call fcn.005e5680
add esp, 0xc
push 0x73d71c
lea ecx, [esp + 0x4c]
call fcn.005e5a90
mov edi, dword [edi + 4]
lea edx, [esp + 0x48]
push edx
push edi
sub esp, 8
lea eax, [esp + 0x4c]
mov ecx, esp
mov dword [esp + 0x40], esp
push eax
mov byte [esp + 0xac], 5
call fcn.005e5b00
push 0x7f000000
push 5
mov ecx, esi
call fcn.00571960
mov byte [esp + 0x98], 4
jmp 0x521398
lea ecx, [esp + 0x34]
call fcn.005e5790
test eax, eax
jle 0x521119
lea ecx, [esp + 0x3c]
call fcn.005b3190
lea ecx, [esp + 0x34]
mov byte [esp + 0x98], 6
call fcn.005e5670
push eax
lea ecx, [esp + 0x40]
push str.Area__s_is_not_a_valid_area.
push ecx
call fcn.005e5680
add esp, 0xc
push 0x73d71c
lea ecx, [esp + 0x4c]
call fcn.005e5a90
mov edi, dword [edi + 4]
lea edx, [esp + 0x48]
push edx
push edi
sub esp, 8
lea eax, [esp + 0x4c]
mov ecx, esp
mov dword [esp + 0x40], esp
push eax
mov byte [esp + 0xac], 7
call fcn.005e5b00
push 0x7f000000
push 5
mov ecx, esi
call fcn.00571960
mov byte [esp + 0x98], 6
jmp 0x521398
fld dword [esp + 0x14]
fcomp dword [0x73d700]
fnstsw ax
test ah, 5
jnp 0x521312
mov ecx, dword [ebp + 8]
mov dword [esp + 0x20], ecx
fild dword [esp + 0x20]
fmul dword [0x7455c8]
fcomp dword [esp + 0x14]
fnstsw ax
test ah, 5
jnp 0x521312
fld dword [esp + 0x18]
fcomp dword [0x73d700]
fnstsw ax
test ah, 5
jnp 0x521287
mov edx, dword [ebp + 0xc]
mov dword [esp + 0x20], edx
fild dword [esp + 0x20]
fmul dword [0x7455c8]
fcomp dword [esp + 0x18]
fnstsw ax
test ah, 5
jnp 0x521287
mov eax, dword [ebp + 0x120]
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 0x18]
mov dword [esp + 0x3c], ecx
mov dword [esp + 0x28], eax
mov eax, dword [esp + 0x1c]
lea ecx, [esp + 0x48]
push ecx
push 1
mov dword [esp + 0x2c], 0
mov dword [esp + 0x4c], eax
mov eax, dword [ebx + 0x340]
push eax
mov dword [esp + 0x4c], edx
push 0x41a00000
lea edx, [esp + 0x4c]
push edx
mov ecx, ebp
mov dword [esp + 0x5c], 0
mov dword [esp + 0x60], 0
mov dword [esp + 0x64], 0
call fcn.004be860
test eax, eax
jne 0x521200
mov eax, dword [esp + 0x3c]
mov ecx, dword [esp + 0x40]
mov edx, dword [esp + 0x44]
mov dword [esp + 0x48], eax
mov dword [esp + 0x4c], ecx
mov dword [esp + 0x50], edx
push 0
push 0
push 0
push 0
push 0
push 0
push 0
mov eax, dword [esp + 0x64]
push 0
push 0
mov ecx, dword [esp + 0x70]
push 0
mov edx, dword [esp + 0x78]
push 0
push 0
push 0
push 0
push 0
push 0
mov dword [esp + 0x54], eax
lea eax, [esp + 0x64]
push eax
push 1
mov dword [esp + 0x60], ecx
lea ecx, [esp + 0x70]
push ecx
push 3
mov dword [esp + 0x6c], edx
lea edx, [esp + 0x6c]
push edx
push 2
lea eax, [esp + 0x70]
push eax
push 2
lea ecx, [esp + 0x74]
push ecx
push 2
push 0xffff
push 5
mov ecx, ebx
call fcn.004cea20
lea ecx, [esp + 0x34]
mov dword [esp + 0x98], 0xffffffff
call fcn.005e5c20
mov eax, 1
jmp 0x5227e7
lea ecx, [esp + 0x3c]
call fcn.005b3190
mov edx, dword [ebp + 0xc]
mov dword [esp + 0x30], edx
fild dword [esp + 0x30]
sub esp, 8
lea eax, [esp + 0x44]
fmul dword [0x7455c8]
mov byte [esp + 0xa0], 0xa
fstp qword [esp]
push 0
push 0
push str.Y_co_ordinate_outside_of_area__should_be_in___f___f_
push eax
call fcn.005e5680
add esp, 0x18
push 0x73d71c
lea ecx, [esp + 0x4c]
call fcn.005e5a90
mov edi, dword [edi + 4]
lea ecx, [esp + 0x48]
push ecx
push edi
sub esp, 8
lea edx, [esp + 0x4c]
mov ecx, esp
mov dword [esp + 0x40], esp
push edx
mov byte [esp + 0xac], 0xb
call fcn.005e5b00
push 0x7f000000
push 5
mov ecx, esi
call fcn.00571960
mov byte [esp + 0x98], 0xa
jmp 0x521398
lea ecx, [esp + 0x3c]
call fcn.005b3190
mov eax, dword [ebp + 8]
mov dword [esp + 0x30], eax
fild dword [esp + 0x30]
sub esp, 8
lea ecx, [esp + 0x44]
fmul dword [0x7455c8]
mov byte [esp + 0xa0], 8
fstp qword [esp]
push 0
push 0
push str.X_co_ordinate_outside_of_area__should_be_in___f___f_
push ecx
call fcn.005e5680
add esp, 0x18
push 0x73d71c
lea ecx, [esp + 0x4c]
call fcn.005e5a90
mov edi, dword [edi + 4]
lea edx, [esp + 0x48]
push edx
push edi
sub esp, 8
lea eax, [esp + 0x4c]
mov ecx, esp
mov dword [esp + 0x40], esp
push eax
mov byte [esp + 0xac], 9
call fcn.005e5b00
push 0x7f000000
push 5
mov ecx, esi
call fcn.00571960
mov byte [esp + 0x98], 8
lea ecx, [esp + 0x48]
call fcn.005e5c20
lea ecx, [esp + 0x3c]
mov byte [esp + 0x98], 2
call fcn.005e5c20
lea ecx, [esp + 0x34]
mov dword [esp + 0x98], 0xffffffff
call fcn.005e5c20
jmp 0x5227e5
cmp bl, 0x19
jne 0x52140f
mov ecx, dword [0x7a39fc]
mov ecx, dword [ecx + 8]
call fcn.004ae6b0
push 8
mov ecx, esi
mov edi, eax
call fcn.004d6720
push 1
mov ecx, esi
mov bl, al
call fcn.004d6230
test eax, eax
jne 0x5227e5
test edi, edi
je 0x5227e5
mov byte [edi + 0x210], bl
jmp 0x5227e5
cmp bl, 0x20
jne 0x52156b
mov ecx, edi
call fcn.00561080
test eax, eax
je 0x5227e5
mov edx, dword [eax]
mov ecx, eax
call dword [edx + 0x30]
mov esi, eax
test esi, esi
je 0x5227e5
mov ecx, esi
call fcn.004cb120
mov edi, eax
test edi, edi
je 0x5227e5
mov dword [esp + 0x48], 0
mov dword [esp + 0x4c], 0
mov dword [esp + 0x50], 0
mov eax, dword [edi + 0x120]
mov dword [esp + 0x28], eax
mov dword [esp + 0x30], 1
mov ecx, dword [esi + 0x340]
mov edx, dword [ecx + 4]
mov dword [esp + 0x24], edx
mov dword [ecx + 4], 0x3dcccccd
call fcn.005cec90
mov eax, dword [esi + 0x340]
lea ecx, [esp + 0x48]
push ecx
push 1
push eax
push 0x41200000
lea ebx, [esi + 0x90]
push ebx
mov ecx, edi
call fcn.004be860
test eax, eax
je 0x521554
push ebx
lea edx, [esp + 0x4c]
push edx
lea eax, [esp + 0x44]
push eax
call fcn.00423bc0
fld dword [esp + 0x48]
fmul dword [esp + 0x48]
add esp, 0xc
fld dword [esp + 0x44]
fmul dword [esp + 0x44]
faddp st(1)
fld dword [esp + 0x40]
fmul dword [esp + 0x40]
faddp st(1)
fcomp dword [0x73dfec]
fnstsw ax
test ah, 0x41
jne 0x521554
push 1
mov ecx, esi
call fcn.004ccd80
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
lea ecx, [esp + 0x70]
push ecx
push 1
lea edx, [esp + 0x70]
push edx
push 3
lea eax, [esp + 0xa0]
push eax
push 2
lea ecx, [esp + 0xa4]
push ecx
push 2
lea edx, [esp + 0xa8]
push edx
push 2
push 0xffff
push 5
mov ecx, esi
call fcn.004cea20
mov ecx, dword [esi + 0x340]
mov eax, dword [esp + 0x24]
mov dword [ecx + 4], eax
call fcn.005cec90
jmp 0x5227e5
cmp bl, 7
jne 0x521678
mov ecx, esi
mov dword [esp + 0x1c], 0
call fcn.00578540
mov ecx, esi
mov ebx, eax
call fcn.00578540
push 1
mov ecx, esi
mov edi, eax
call fcn.004d6230
test eax, eax
jne 0x5227e5
mov ecx, dword [0x7a39fc]
mov ecx, dword [ecx + 8]
lea edx, [esp + 0x1c]
push edx
push edi
call fcn.004aed70
mov ecx, eax
call fcn.004d8230
cmp al, byte [0x74666c]
jne 0x5227e5
mov ecx, dword [esp + 0x1c]
test ecx, ecx
je 0x5227e5
mov eax, dword [ecx]
call dword [eax + 0x10]
test eax, eax
je 0x5227e5
push 0x8c
call fcn.006fa7e6
add esp, 4
mov dword [esp + 0x30], eax
test eax, eax
mov dword [esp + 0x98], 0xc
je 0x52160c
push 1
mov ecx, eax
call fcn.00503e40
mov esi, eax
jmp 0x52160e
xor esi, esi
mov cx, word [0x7466c8]
xor edx, edx
mov dx, word [esi + 0xa]
mov word [esi + 8], cx
push ebx
mov ecx, esi
mov dword [esp + 0x9c], 0xffffffff
and edx, 0xfff8
or dx, word [0x7473b8]
mov word [esi + 0xa], dx
call fcn.00503a00
push 1
push 0
mov ecx, esi
call fcn.005036a0
push 1
push 1
mov ecx, esi
call fcn.005036a0
mov ecx, dword [esp + 0x1c]
mov eax, dword [ecx]
push 0
push 0
push esi
call dword [eax + 0x10]
mov ecx, eax
call fcn.004d14f0
mov eax, 1
jmp 0x5227e7
cmp bl, 9
jne 0x5216ad
mov ecx, esi
call fcn.004d66f0
push 1
mov ecx, esi
mov edi, eax
call fcn.004d6230
test eax, eax
jne 0x5227e5
mov dword [0x8327e4], edi
mov dword [0x7a1b24], edi
mov eax, 1
jmp 0x5227e7
cmp bl, 0x16
jne 0x5216dc
mov ecx, esi
call fcn.004d66f0
push 1
mov ecx, esi
mov edi, eax
call fcn.004d6230
test eax, eax
jne 0x5227e5
mov dword [0x7a1b28], edi
mov eax, 1
jmp 0x5227e7
cmp bl, 3
jne 0x52183c
mov ecx, edi
call fcn.00561080
test eax, eax
je 0x5227e5
mov edx, dword [eax]
mov ecx, eax
call dword [edx + 0x30]
test eax, eax
mov dword [esp + 0x18], eax
je 0x5227e5
push 0x20
mov ecx, esi
call fcn.004d6780
push 8
mov ecx, esi
mov dword [esp + 0x18], eax
call fcn.004d6720
push 1
mov ecx, esi
mov bl, al
mov dword [esp + 0x20], 0x7f000000
mov dword [esp + 0x5c], 0
mov dword [esp + 0x60], 0
mov dword [esp + 0x64], 0
call fcn.004d6230
test eax, eax
jne 0x5227e5
xor ebp, ebp
test bl, 1
je 0x521773
mov ecx, esi
call fcn.00578540
push 1
mov ecx, esi
mov dword [esp + 0x20], eax
call fcn.004d6230
test eax, eax
jne 0x5227e5
test bl, 2
je 0x5217dc
push 0x20
push 0x3f800000
mov ecx, esi
call fcn.004d67b0
fstp dword [esp + 0x30]
push 0x20
push 0x3f800000
mov ecx, esi
call fcn.004d67b0
fstp dword [esp + 0x28]
push 0x20
push 0x3f800000
mov ecx, esi
call fcn.004d67b0
fstp dword [esp + 0x24]
push 1
mov ecx, esi
call fcn.004d6230
test eax, eax
jne 0x5227e5
mov eax, dword [esp + 0x30]
mov ecx, dword [esp + 0x28]
mov edx, dword [esp + 0x24]
mov dword [esp + 0x58], eax
mov dword [esp + 0x5c], ecx
mov dword [esp + 0x60], edx
mov ebp, 1
mov ecx, dword [esp + 0x18]
mov esi, dword [esp + 0x5c]
mov edi, dword [esp + 0x60]
mov ebx, dword [esp + 0x58]
push 1
call fcn.004f8770
mov eax, dword [esp + 0x1c]
push 0
push 0xff
push 0xffffffffffffffff
push 0
mov edx, dword [esp + 0x24]
push 0
push 0
push 0
push ebp
push 0
push eax
sub esp, 0xc
mov ecx, esp
push 0
push 0
mov dword [ecx], ebx
push 0
mov dword [ecx + 4], esi
push 0xff
mov dword [ecx + 8], edi
mov ecx, dword [esp + 0x5c]
push edx
call fcn.004f9460
mov eax, 1
jmp 0x5227e7
cmp bl, 0xf
jne 0x521858
mov ecx, dword [edi + 0x20]
xor eax, eax
test ecx, ecx
sete al
mov dword [edi + 0x20], eax
mov eax, 1
jmp 0x5227e7
cmp bl, 8
jne 0x521901
mov ecx, edi
call fcn.00561080
test eax, eax
je 0x5227e5
mov edx, dword [eax]
mov ecx, eax
call dword [edx + 0x30]
mov edi, eax
test edi, edi
je 0x5227e5
push 0x20
lea eax, [esp + 0x40]
push eax
mov ecx, esi
call fcn.004d67e0
push 1
mov ecx, esi
mov dword [esp + 0x9c], 0xd
call fcn.004d6230
test eax, eax
jne 0x5218e8
push 1
mov ecx, esi
call fcn.004d6240
test eax, eax
jne 0x5218e8
mov edi, dword [edi + 4]
push 1
push edi
lea ecx, [esp + 0x44]
push ecx
mov ecx, dword [0x7a3a00]
call fcn.005d0fc0
lea ecx, [esp + 0x3c]
mov dword [esp + 0x98], 0xffffffff
call fcn.005e5c20
mov eax, 1
jmp 0x5227e7
lea ecx, [esp + 0x3c]
mov dword [esp + 0x98], 0xffffffff
call fcn.005e5c20
jmp 0x5227e5
cmp bl, 0xa
jne 0x521a51
mov ecx, esi
call fcn.00578540
push 0x10
mov ecx, esi
mov edi, eax
call fcn.004d6750
push 0x20
push 0x3f800000
mov ecx, esi
mov ebp, eax
call fcn.004d67b0
fstp dword [esp + 0x1c]
mov ecx, esi
call fcn.00578540
push 8
mov ecx, esi
mov ebx, eax
call fcn.004d6720
push 1
mov ecx, esi
mov byte [esp + 0x17], al
mov dword [esp + 0x1c], 0
call fcn.004d6230
test eax, eax
jne 0x5227e5
mov edx, dword [0x7a39fc]
mov ecx, dword [edx + 8]
lea eax, [esp + 0x18]
push eax
push edi
call fcn.004aed70
mov ecx, eax
call fcn.004d8230
cmp al, byte [0x74666c]
jne 0x5227e5
push 0x8c
call fcn.006fa7e6
add esp, 4
mov dword [esp + 0x30], eax
test eax, eax
mov dword [esp + 0x98], 0xe
je 0x5219b3
push 1
mov ecx, eax
call fcn.00503e40
mov esi, eax
jmp 0x5219b5
xor esi, esi
mov cx, word [0x7466f4]
push ebx
mov word [esi + 8], cx
push 0
mov ecx, esi
mov dword [esp + 0xa0], 0xffffffff
call fcn.005036f0
movzx edx, bp
push edx
push 0
mov ecx, esi
call fcn.005036a0
movzx eax, byte [esp + 0x13]
push eax
push 1
mov ecx, esi
call fcn.005036a0
fld dword [esp + 0x1c]
fcomp dword [0x73d700]
fnstsw ax
test ah, 0x44
jp 0x521a1b
xor ecx, ecx
mov cx, word [esi + 0xa]
and ecx, 0xfff8
or cx, word [0x7473b8]
mov word [esi + 0xa], cx
jmp 0x521a39
mov eax, dword [esp + 0x1c]
xor edx, edx
mov dx, word [esi + 0xa]
and edx, 0xfff8
or dx, word [0x7473c0]
mov dword [esi + 0xc], eax
mov word [esi + 0xa], dx
mov ecx, dword [esp + 0x18]
push 0
push 0
push esi
call fcn.004d14f0
mov eax, 1
jmp 0x5227e7
cmp bl, 0xe
jne 0x522050
lea ecx, [esp + 0x80]
call fcn.00405ed0
mov ecx, esi
mov dword [esp + 0x3c], 0
mov dword [esp + 0x40], 0
mov dword [esp + 0x44], 0
call fcn.00578540
push 8
mov ecx, esi
call fcn.004d6720
push 0x10
lea ecx, [esp + 0x5c]
push ecx
mov ecx, esi
mov bl, al
call fcn.004d6180
push eax
lea edx, [esp + 0x4c]
push edx
lea ecx, [esp + 0x88]
call fcn.00406120
push 1
mov ecx, esi
call fcn.004d6230
test eax, eax
jne 0x5227e5
push 1
mov ecx, esi
call fcn.004d6240
test eax, eax
jne 0x5227e5
push 0xac8
call fcn.006fa7e6
add esp, 4
mov dword [esp + 0x30], eax
test eax, eax
mov dword [esp + 0x98], 0xf
je 0x521b04
push 0
push 0x7f000000
mov ecx, eax
call fcn.004f7a10
mov esi, eax
jmp 0x521b06
xor esi, esi
movzx ax, bl
lea ecx, [esp + 0x28]
mov dword [esp + 0x98], 0xffffffff
mov word [esi + 0xa60], ax
mov byte [esi + 0xa62], 0
mov byte [esi + 0xa63], 0
call fcn.005e9e10
push str.Hostile
lea ecx, [esp + 0x4c]
mov dword [esp + 0x9c], 0x10
call fcn.005e5a90
push 0
lea ecx, [esp + 0x4c]
push ecx
push 0
lea ecx, [esp + 0x34]
mov byte [esp + 0xa4], 0x11
call fcn.005ea340
lea ecx, [esp + 0x48]
mov byte [esp + 0x98], 0x10
call fcn.005e5c20
mov eax, dword [esi + 0xa74]
lea edx, [esp + 0x28]
push edx
lea ecx, [eax + 0x34]
call fcn.005e9e70
push 0x747f70
lea ecx, [esp + 0x4c]
call fcn.005e5a90
push 0
lea eax, [esp + 0x4c]
push eax
push 0
lea ecx, [esp + 0x34]
mov byte [esp + 0xa4], 0x12
call fcn.005ea340
lea ecx, [esp + 0x48]
mov byte [esp + 0x98], 0x10
call fcn.005e5c20
mov eax, dword [esi + 0xa74]
lea ecx, [esp + 0x28]
push ecx
lea ecx, [eax + 0x3c]
call fcn.005e9e70
mov edx, dword [0x7a39fc]
mov ecx, dword [edx + 8]
call fcn.004ae6b0
mov ecx, eax
call fcn.004c30f0
mov ebp, eax
test ebp, ebp
je 0x521dc5
push 0x31c
call fcn.006fa7e6
add esp, 4
mov dword [esp + 0x30], eax
test eax, eax
mov byte [esp + 0x98], 0x13
je 0x521c20
push 0x7f000000
mov ecx, eax
call fcn.00593c70
jmp 0x521c22
xor eax, eax
mov ecx, dword [eax + 0x98]
mov edx, dword [eax + 0x94]
push 1
push ecx
mov ecx, dword [eax + 0x90]
push edx
push ecx
push ebp
mov ecx, eax
mov byte [esp + 0xac], 0x10
call fcn.00593520
mov ecx, edi
call fcn.00561080
mov dword [esp + 0x58], 0
mov dword [esp + 0x5c], 0
mov dword [esp + 0x60], 0
mov edx, dword [eax + 0x90]
mov dword [esp + 0x58], edx
fld dword [eax + 0x94]
fadd dword [0x747f6c]
lea ecx, [esp + 0x34]
fstp dword [esp + 0x5c]
mov eax, dword [eax + 0x98]
mov dword [esp + 0x60], eax
call fcn.005b3190
mov eax, dword [esi + 0x340]
push 0x41f00000
lea ecx, [esp + 0x40]
push ecx
push 1
push eax
lea edx, [esp + 0x68]
mov bl, 0x14
push edx
mov ecx, ebp
mov byte [esp + 0xac], bl
call fcn.004bee30
cmp eax, 1
jne 0x521d0a
mov ecx, dword [esp + 0x40]
mov eax, dword [esp + 0x3c]
push 0
push 1
lea edx, [esp + 0x44]
mov dword [esp + 0x1c], ecx
push edx
mov ecx, ebp
mov dword [esp + 0x24], eax
call fcn.004bc380
fst dword [esp + 0x1c]
call fcn.006fae8c
fld dword [esp + 0x14]
push eax
call fcn.006fae8c
fld dword [esp + 0x1c]
push eax
call fcn.006fae8c
push eax
push str.My_spider_sense_tells_me_the_goon_is_hiding_at___d___d___d_.
jmp 0x521e21
fld dword [esp + 0x3c]
fcomp dword [0x740cbc]
fnstsw ax
test ah, 0x44
jp 0x521dde
fld dword [esp + 0x40]
fcomp dword [0x740cbc]
fnstsw ax
test ah, 0x44
jp 0x521dde
fld dword [esp + 0x44]
fcomp dword [0x740cbc]
fnstsw ax
test ah, 0x44
jp 0x521dde
lea eax, [esp + 0x34]
push str.There_was_no_place_to_spawn_the_goon.
push eax
call fcn.005e5680
add esp, 8
mov ecx, edi
call fcn.00561080
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
mov edx, dword [eax]
push 0
push 0
push 0
push 0
push 0
push 0x747e88
push 1
lea ecx, [esp + 0x94]
push ecx
push 4
push 0xffff
push 0xe
mov ecx, eax
call dword [edx + 0x30]
mov ecx, eax
call fcn.004cea20
lea ecx, [esp + 0x34]
mov byte [esp + 0x98], 0x10
call fcn.005e5c20
lea ecx, [esp + 0x28]
mov dword [esp + 0x98], 0xffffffff
call fcn.005ea000
jmp 0x5227e5
mov ecx, dword [esp + 0x40]
mov eax, dword [esp + 0x3c]
push 0
push 1
lea edx, [esp + 0x44]
mov dword [esp + 0x1c], ecx
push edx
mov ecx, ebp
mov dword [esp + 0x24], eax
call fcn.004bc380
fst dword [esp + 0x1c]
call fcn.006fae8c
fld dword [esp + 0x14]
push eax
call fcn.006fae8c
fld dword [esp + 0x1c]
push eax
call fcn.006fae8c
push eax
push str.The_goon_couldnt_find_a_place_to_hide__hes_at___d___d___d_
lea eax, [esp + 0x44]
push eax
call fcn.005e5680
mov ecx, edi
add esp, 0x14
call fcn.00561080
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
mov edx, dword [eax]
push 0
push 0
push 0
push 0
push 0
push 0x747e88
push 1
lea ecx, [esp + 0x94]
push ecx
push 4
push 0xffff
mov ecx, eax
push 0xe
call dword [edx + 0x30]
mov ecx, eax
call fcn.004cea20
push str.b_heart
lea ecx, [esp + 0x4c]
call fcn.005e5a90
lea eax, [esp + 0x48]
push eax
lea ecx, [esi + 0x230]
mov byte [esp + 0x9c], 0x15
call fcn.005e5c50
lea ecx, [esp + 0x48]
mov byte [esp + 0x98], bl
call fcn.005e5c20
push str.b_attacked
lea ecx, [esp + 0x4c]
call fcn.005e5a90
lea ecx, [esp + 0x48]
push ecx
lea ecx, [esi + 0x248]
mov byte [esp + 0x9c], 0x16
call fcn.005e5c50
lea ecx, [esp + 0x48]
mov byte [esp + 0x98], bl
call fcn.005e5c20
push str.b_damage
lea ecx, [esp + 0x4c]
call fcn.005e5a90
lea edx, [esp + 0x48]
push edx
lea ecx, [esi + 0x250]
mov byte [esp + 0x9c], 0x17
call fcn.005e5c50
lea ecx, [esp + 0x48]
mov byte [esp + 0x98], bl
call fcn.005e5c20
push 0x747e9c
lea ecx, [esp + 0x4c]
call fcn.005e5a90
mov byte [esp + 0x98], 0x18
lea eax, [esp + 0x48]
push eax
lea ecx, [esi + 0x280]
call fcn.005e5c50
lea ecx, [esp + 0x48]
mov byte [esp + 0x98], bl
call fcn.005e5c20
mov edi, dword [esp + 0x1c]
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 0x18]
push 0
push 0
push edi
push ecx
push edx
push ebp
mov ecx, esi
call fcn.004fa100
mov ecx, dword [0x7a39e8]
push 0
push 0x7e9
lea eax, [esp + 0x88]
push eax
call fcn.00408bc0
test eax, eax
je 0x522021
push 0x29c
call fcn.006fa7e6
add esp, 4
mov dword [esp + 0x30], eax
test eax, eax
mov byte [esp + 0x98], 0x19
je 0x521fc9
push 0x7f000000
mov ecx, eax
call fcn.005530a0
mov esi, eax
jmp 0x521fcb
xor esi, esi
lea ecx, [esp + 0x80]
push ecx
mov ecx, esi
mov byte [esp + 0x9c], bl
call fcn.005608b0
mov edx, dword [esp + 0x18]
mov ecx, dword [esp + 0x1c]
mov eax, dword [esp + 0x14]
push 0
push 1
mov dword [esp + 0x50], edx
push 1
lea edx, [esp + 0x54]
mov dword [esp + 0x5c], ecx
push edx
lea ecx, [esi + 0x10]
mov dword [esp + 0x5c], eax
call fcn.004cd1a0
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x18]
push 1
push edi
push eax
push ecx
push ebp
mov ecx, esi
call fcn.00555720
lea ecx, [esp + 0x34]
mov byte [esp + 0x98], 0x10
call fcn.005e5c20
lea ecx, [esp + 0x28]
mov dword [esp + 0x98], 0xffffffff
call fcn.005ea000
mov eax, 1
jmp 0x5227e7
cmp bl, 0xb
jne 0x52230b
mov ecx, esi
call fcn.004d66f0
push 1
mov ecx, esi
call fcn.004d6230
test eax, eax
jne 0x5227e5
push 1
mov ecx, esi
call fcn.004d6240
test eax, eax
jne 0x5227e5
mov ecx, edi
call fcn.00561080
mov edx, dword [eax]
mov ecx, eax
call dword [edx + 0x30]
mov edi, eax
mov ecx, edi
call fcn.004cb120
mov ebp, eax
push 0x318
mov dword [esp + 0x2c], ebp
call fcn.006fa7e6
add esp, 4
mov dword [esp + 0x30], eax
test eax, eax
mov dword [esp + 0x98], 0x1a
je 0x5220cf
push 0x7f000000
mov ecx, eax
call fcn.0058eae0
mov esi, eax
jmp 0x5220d1
xor esi, esi
fld dword [edi + 0xa4]
or ebx, 0xffffffff
fchs
mov ecx, edi
fld dword [edi + 0xa0]
mov dword [esp + 0x1c], esi
fchs
mov dword [esp + 0x98], ebx
fstp dword [esp + 0x30]
fld dword [edi + 0x9c]
fchs
fstp dword [esp + 0x58]
fmul dword [0x747e98]
fld dword [esp + 0x30]
fmul dword [0x747e98]
fld dword [esp + 0x58]
fmul dword [0x747e98]
fstp dword [esp + 0x58]
fstp dword [esp + 0x5c]
fstp dword [esp + 0x60]
call fcn.004cb120
push eax
lea eax, [esp + 0x5c]
push eax
lea ecx, [edi + 0x90]
push ecx
lea edx, [esp + 0x54]
push edx
call fcn.00423b90
add esp, 0xc
push eax
push 0x40200000
mov ecx, esi
call fcn.0058d210
mov eax, dword [edi + 4]
mov ecx, dword [0x7a39fc]
mov ecx, dword [ecx + 8]
push eax
call fcn.004ae910
mov esi, eax
test esi, esi
je 0x522188
mov edx, dword [0x7a39fc]
mov ecx, dword [edx + 8]
call fcn.004aedb0
mov ecx, dword [edi + 4]
mov esi, dword [esi + 4]
push ecx
push esi
mov ecx, eax
call fcn.00569b80
lea eax, [esp + 0x14]
push eax
mov ecx, ebp
call fcn.005071b0
test eax, eax
je 0x5222e8
lea esp, [esp]
mov ecx, dword [0x7a39fc]
mov eax, dword [esp + 0x14]
mov ecx, dword [ecx + 8]
lea edx, [esp + 0x18]
push edx
push eax
call fcn.004aed70
mov ecx, eax
call fcn.004d8230
cmp al, byte [0x74666c]
jne 0x5222d2
mov ecx, dword [esp + 0x18]
mov edx, dword [ecx]
call dword [edx + 0x30]
test eax, eax
je 0x5222d2
mov ecx, dword [esp + 0x18]
mov eax, dword [ecx + 4]
cmp eax, dword [edi + 4]
je 0x5222d2
mov eax, dword [ecx]
call dword [eax + 0x30]
mov ebp, eax
lea ecx, [ebp + 0x90]
push ecx
mov ecx, dword [esp + 0x20]
call fcn.0058ce40
test eax, eax
je 0x5222d2
push 0x8c
call fcn.006fa7e6
add esp, 4
mov dword [esp + 0x30], eax
test eax, eax
mov dword [esp + 0x98], 0x1b
je 0x522238
push 1
mov ecx, eax
call fcn.00503e40
mov esi, eax
jmp 0x52223a
xor esi, esi
mov dx, word [0x746714]
xor eax, eax
mov ax, word [esi + 0xa]
mov word [esi + 8], dx
push 0x15
mov ecx, esi
mov dword [esp + 0x9c], ebx
and eax, 0xfff8
or ax, word [0x7473b8]
mov word [esi + 0xa], ax
call fcn.00503630
push 0xa
push 0
mov ecx, esi
call fcn.005036a0
push 0x3e8
push 0x10
mov ecx, esi
call fcn.005036a0
mov eax, dword [edi + 4]
push eax
push 0
mov ecx, esi
call fcn.005036f0
push 0
push 0
push esi
mov ecx, ebp
call fcn.004d14f0
mov ebp, dword [ebp + 4]
mov ecx, dword [0x7a39fc]
mov ecx, dword [ecx + 8]
push ebp
call fcn.004ae910
mov esi, eax
test esi, esi
je 0x5222d2
mov edx, dword [0x7a39fc]
mov ecx, dword [edx + 8]
call fcn.004aedb0
mov ecx, dword [edi + 4]
mov esi, dword [esi + 4]
push ecx
push esi
mov ecx, eax
call fcn.00569b80
mov ecx, dword [esp + 0x28]
lea eax, [esp + 0x14]
push eax
call fcn.005071e0
test eax, eax
jne 0x5221a0
mov edx, dword [edi]
push 0x2715
mov ecx, edi
call dword [edx + 0x7c]
mov ecx, dword [esp + 0x1c]
test ecx, ecx
je 0x5227e5
mov eax, dword [ecx]
push 1
call dword [eax]
jmp 0x5227e5
cmp bl, 0xd
jne 0x5227e5
mov ecx, esi
call fcn.004d66f0
push 1
mov ecx, esi
call fcn.004d6230
test eax, eax
jne 0x5227e5
push 1
mov ecx, esi
call fcn.004d6240
test eax, eax
jne 0x5227e5
mov ecx, edi
call fcn.00561080
mov edx, dword [eax]
mov ecx, eax
call dword [edx + 0x30]
mov edi, eax
mov ecx, edi
call fcn.004cb120
mov ebp, eax
lea eax, [esp + 0x20]
push eax
mov ecx, ebp
mov dword [esp + 0x34], ebp
call fcn.005071b0
test eax, eax
je 0x5227e5
push 0x40800000
lea ebx, [edi + 0x9c]
lea ecx, [esp + 0x5c]
push ebx
push ecx
lea esi, [edi + 0x90]
call fcn.00423bf0
push eax
lea edx, [esp + 0x78]
push esi
push edx
call fcn.00423b90
push 0x8c
call fcn.006fa7e6
add esp, 0x1c
mov dword [esp + 0x28], eax
test eax, eax
mov dword [esp + 0x98], 0x1c
je 0x5223c3
push 1
mov ecx, eax
call fcn.00503e40
mov esi, eax
jmp 0x5223c5
xor esi, esi
mov ax, word [0x7466f4]
xor ecx, ecx
mov cx, word [esi + 0xa]
mov word [esi + 8], ax
mov dword [esp + 0x98], 0xffffffff
and ecx, 0xfff8
or cx, word [0x7473b8]
mov word [esi + 0xa], cx
mov eax, dword [edi + 4]
push eax
mov ecx, esi
call fcn.00503a00
push 0x20
push 0
mov ecx, esi
call fcn.005036a0
push ebx
lea edx, [esp + 0x6c]
push edx
push esi
mov ecx, ebp
call fcn.0050c6b0
mov eax, dword [edi]
push 0x2721
mov ecx, edi
call dword [eax + 0x7c]
mov ecx, dword [0x7a39fc]
mov edx, dword [esp + 0x20]
mov ecx, dword [ecx + 8]
push edx
call fcn.004ae770
mov ebx, eax
test ebx, ebx
je 0x5227cf
mov eax, dword [ebx + 4]
cmp eax, dword [edi + 4]
je 0x5227cf
mov dword [esp + 0x1c], 0
call fcn.006fc447
cdq
mov ecx, 3
idiv ecx
test edx, edx
jle 0x5227cf
jmp 0x522470
push 0x8c
call fcn.006fa7e6
add esp, 4
mov dword [esp + 0x28], eax
test eax, eax
mov dword [esp + 0x98], 0x1d
je 0x52249d
push 1
mov ecx, eax
call fcn.00503e40
mov esi, eax
jmp 0x52249f
xor esi, esi
mov dx, word [0x7466f4]
xor eax, eax
mov ax, word [esi + 0xa]
mov word [esi + 8], dx
mov ecx, esi
mov dword [esp + 0x98], 0xffffffff
and eax, 0xfff8
or ax, word [0x7473b8]
mov word [esi + 0xa], ax
mov eax, dword [edi + 4]
push eax
call fcn.00503a00
call fcn.006fc447
cdq
mov ecx, 0x8fc
idiv ecx
mov eax, dword [ebx + 4]
mov ecx, dword [0x7a39fc]
mov ecx, dword [ecx + 8]
push esi
mov esi, dword [0x7441c8]
push esi
push eax
mov ebp, edx
mov edx, dword [edi + 4]
push edx
add ebp, 0xbb8
push ebp
push 0
call fcn.004aed80
mov ecx, eax
call fcn.004b08d0
lea eax, [edi + 0x90]
push eax
lea eax, [ebx + 0x90]
push eax
lea edx, [esp + 0x7c]
push edx
call fcn.00423bc0
push eax
call fcn.004ab100
fld st(0)
fldln2
fxch st(1)
fyl2x
fmul dword [0x740c84]
fadd dword [0x741be0]
fdivr st(1)
fmul dword [0x73d6fc]
call fcn.006fae8c
fstp st(0)
push 0x8c
add ebp, eax
call fcn.006fa7e6
add esp, 0x14
mov dword [esp + 0x28], eax
test eax, eax
mov dword [esp + 0x98], 0x1e
je 0x522583
push 1
mov ecx, eax
call fcn.00503e40
mov esi, eax
jmp 0x522585
xor esi, esi
mov ax, word [0x7466f4]
xor ecx, ecx
mov cx, word [esi + 0xa]
mov word [esi + 8], ax
mov dword [esp + 0x98], 0xffffffff
and ecx, 0xfff8
or cx, word [0x7473b8]
mov word [esi + 0xa], cx
mov eax, dword [edi + 4]
push eax
mov ecx, esi
call fcn.00503a00
mov eax, dword [ebx + 4]
mov edx, dword [edi + 4]
mov ecx, dword [0x7a39fc]
mov ecx, dword [ecx + 8]
push esi
mov esi, dword [0x7441c8]
push esi
push eax
push edx
push ebp
push 0
call fcn.004aed80
mov ecx, eax
call fcn.004b08d0
push 0x8c
call fcn.006fa7e6
add esp, 4
mov dword [esp + 0x28], eax
test eax, eax
mov dword [esp + 0x98], 0x1f
je 0x522611
push 1
mov ecx, eax
call fcn.00503e40
mov esi, eax
jmp 0x522613
xor esi, esi
mov dx, word [0x7466f4]
xor eax, eax
mov ax, word [esi + 0xa]
mov word [esi + 8], dx
mov ecx, esi
mov dword [esp + 0x98], 0xffffffff
and eax, 0xfff8
or ax, word [0x7473b8]
mov word [esi + 0xa], ax
mov eax, dword [edi + 4]
push eax
call fcn.00503a00
push 0x3d
push 0
mov ecx, esi
call fcn.005036a0
mov eax, dword [ebx + 4]
mov edx, dword [edi + 4]
mov ecx, dword [0x7a39fc]
mov ecx, dword [ecx + 8]
push esi
mov esi, dword [0x7441c8]
push esi
push eax
push edx
push ebp
push 0
call fcn.004aed80
mov ecx, eax
call fcn.004b08d0
push 0x8c
call fcn.006fa7e6
add esp, 4
mov dword [esp + 0x28], eax
test eax, eax
mov dword [esp + 0x98], 0x20
je 0x5226aa
push 1
mov ecx, eax
call fcn.00503e40
mov esi, eax
jmp 0x5226ac
xor esi, esi
mov dx, word [0x746714]
xor eax, eax
mov ax, word [esi + 0xa]
mov word [esi + 8], dx
mov dword [esp + 0x98], 0xffffffff
and eax, 0xfff8
or ax, word [0x7473b8]
mov word [esi + 0xa], ax
mov ecx, dword [edi + 4]
push ecx
mov ecx, esi
call fcn.00503a00
push 0x15
mov ecx, esi
call fcn.00503630
push 0x32
push 0
mov ecx, esi
call fcn.005036a0
push 0xffffffffffffffff
push 1
mov ecx, esi
call fcn.005036a0
push 0xffffffffffffffff
push 2
mov ecx, esi
call fcn.005036a0
push 0xffffffffffffffff
push 3
mov ecx, esi
call fcn.005036a0
push 0xffffffffffffffff
push 4
mov ecx, esi
call fcn.005036a0
push 0xffffffffffffffff
push 5
mov ecx, esi
call fcn.005036a0
push 0xffffffffffffffff
push 6
mov ecx, esi
call fcn.005036a0
push 0xffffffffffffffff
push 7
mov ecx, esi
call fcn.005036a0
push 0xffffffffffffffff
push 8
mov ecx, esi
call fcn.005036a0
push 0xffffffffffffffff
push 9
mov ecx, esi
call fcn.005036a0
push 0xffffffffffffffff
push 0xa
mov ecx, esi
call fcn.005036a0
push 0xffffffffffffffff
push 0xb
mov ecx, esi
call fcn.005036a0
push 0xffffffffffffffff
push 0xc
mov ecx, esi
call fcn.005036a0
push 0x3e8
push 0x10
mov ecx, esi
call fcn.005036a0
mov eax, dword [ebx + 4]
mov edx, dword [edi + 4]
mov ecx, dword [0x7a39fc]
mov ecx, dword [ecx + 8]
push esi
mov esi, dword [0x7441c8]
push esi
push eax
push edx
push ebp
push 0
call fcn.004aed80
mov ecx, eax
call fcn.004b08d0
mov esi, dword [esp + 0x1c]
inc esi
mov dword [esp + 0x1c], esi
call fcn.006fc447
cdq
mov ecx, 3
idiv ecx
cmp esi, edx
jl 0x522470
mov ecx, dword [esp + 0x30]
lea edx, [esp + 0x20]
push edx
call fcn.005071e0
test eax, eax
jne 0x522421
xor eax, eax
mov ecx, dword [esp + 0x90]
pop edi
pop esi
pop ebp
mov dword fs:[0], ecx
pop ebx
add esp, 0x8c
ret 8