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

Disassembly:
sub esp, 0x70
mov eax, dword [0x14c74b0]
push edi
xor edi, edi
cmp eax, edi
mov eax, dword [0x14c74b8]
mov dword [esp + 0x14], edi
mov dword [esp + 0x20], edi
jne 0x42cf90
cmp eax, edi
je 0x42cfb4
cmp dword [esp + 0x88], edi
je 0x42cfb4
mov edx, dword [0x137dae0]
mov ecx, dword [esp + 0x8c]
neg eax
sbb eax, eax
and eax, edx
cmp ecx, eax
jne 0x42da1b
push ebx
push ebp
push esi
mov esi, dword [esp + 0x84]
push edi
push 2
xor eax, eax
mov ecx, esi
call fcn.00429e90
push edi
mov ecx, esi
call fcn.0040ed50
mov ecx, dword [0x14cc4b0]
sub eax, dword [ecx + 0x74]
mov ecx, eax
mov eax, 0x2aaaaaab
imul ecx
sar edx, 1
mov eax, edx
shr eax, 0x1f
add edx, eax
movzx eax, word [esp + 0x94]
mov ecx, 0xfffffffe
sub ecx, eax
add eax, 3
add esp, 0xc
cmp ecx, eax
mov dword [esp + 0x34], edx
mov dword [esp + 0x30], ecx
mov dword [esp + 0x18], ecx
mov dword [esp + 0x28], eax
jge 0x42d92a
lea ebx, [ebx]
mov eax, dword [esp + 0x30]
cmp eax, dword [esp + 0x28]
mov dword [esp + 0x14], eax
jge 0x42d915
jmp 0x42d040
mov ecx, dword [0x14c8e90]
movzx ecx, word [ecx + 8]
movzx edx, word [esp + 0x34]
mov eax, ecx
imul eax, dword [esp + 0x18]
add eax, edx
add eax, dword [esp + 0x14]
js 0x42d900
mov edx, dword [0x14c8e90]
movzx edx, word [edx + 0xa]
imul edx, ecx
cmp eax, edx
jge 0x42d900
mov ecx, dword [0x14c8e90]
mov edx, dword [ecx]
lea eax, [eax + eax*2]
lea ecx, [edx + eax*4]
mov al, byte [ecx + 8]
test al, al
mov dword [esp + 0x1c], ecx
mov dword [esp + 0x24], 0
jbe 0x42d379
mov ebp, dword [esp + 0x84]
mov eax, dword [esp + 0x1c]
mov ecx, dword [eax]
movzx edx, word [esp + 0x24]
mov eax, dword [0x14c8e90]
shr ecx, 8
add ecx, edx
mov edx, dword [eax + 4]
mov esi, dword [edx + ecx*4]
test esi, esi
je 0x42d35e
mov eax, dword [esi + 0xa8]
test eax, 0x1000000
jne 0x42d35e
mov cl, byte [esi + 0xce]
mov bl, 0x40
test bl, cl
jne 0x42d13f
test bl, ah
jne 0x42d13f
mov eax, dword [esi + 0xa4]
cmp eax, dword [0x14d2e64]
jge 0x42d13f
mov edx, dword [ebp + 4]
imul eax, eax, 0x118
mov ecx, dword [ebp]
mov edi, dword [0x14d2e74]
push 0xffffffffffffffce
push 0xffffffffffffffce
push 0xffffffffffffffce
mov dword [esp + 0x64], edx
push 0x42480000
lea edx, [esp + 0x64]
mov dword [esp + 0x64], ecx
mov ecx, dword [ebp + 8]
push edx
add eax, edi
push eax
mov dword [esp + 0x74], ecx
call fcn.00481300
mov al, byte [esi + 0xce]
add esp, 0x18
or al, bl
mov byte [esi + 0xce], al
mov eax, dword [esi + 0xa8]
mov ebx, 0x800000
test ebx, eax
jne 0x42d214
movzx eax, byte [esi + 0xd0]
mov ecx, dword [0x4d64a4]
shl eax, 6
cmp byte [eax + ecx], 0
jns 0x42d208
movzx ecx, word [esp + 0x88]
mov edx, dword [esp + 0x18]
mov eax, ecx
neg eax
cmp edx, eax
jle 0x42d1c4
cmp edx, ecx
jge 0x42d1c4
mov edi, dword [esp + 0x14]
cmp edi, eax
jle 0x42d1c8
cmp edi, ecx
jge 0x42d1c8
mov al, byte [esp + 0x8c]
test al, 0x12
je 0x42d1b6
mov al, byte [esi + 0xce]
or al, 0x80
push 0
push esi
mov byte [esi + 0xce], al
call fcn.0041a980
add esp, 8
jmp 0x42d208
test al, 1
je 0x42d208
mov edx, dword [esp + 0x94]
push edx
jmp 0x42d1fe
mov edi, dword [esp + 0x14]
or eax, 0xffffffff
sub eax, ecx
cmp edx, eax
jle 0x42d208
inc ecx
cmp edx, ecx
jge 0x42d208
cmp edi, eax
jle 0x42d208
cmp edi, ecx
jge 0x42d208
cmp word [esi + 0xca], 0xffff
je 0x42d1f6
push 0
push esi
call fcn.0041a980
add esp, 8
jmp 0x42d208
mov eax, dword [esp + 0x94]
push eax
mov eax, esi
call fcn.0042e440
add esp, 4
test dword [esi + 0xa8], ebx
je 0x42d35e
mov si, word [esi + 0xc2]
cmp si, 0xffff
je 0x42d35e
mov ecx, dword [0x14cc4b0]
mov edx, dword [ecx + 0x24]
movzx edi, si
imul edi, edi, 0xf0
mov al, byte [edi + edx + 0xe8]
add edi, edx
mov ebx, 0x20
test bl, al
jne 0x42d35e
fld dword [edi + 0x34]
fsub dword [ebp + 4]
fabs
fcomp dword [0x4bf424]
fnstsw ax
test ah, 0x44
jnp 0x42d35e
movzx ecx, word [esp + 0x88]
mov edx, dword [esp + 0x18]
mov eax, ecx
neg eax
cmp edx, eax
jle 0x42d35e
inc ecx
cmp edx, ecx
jge 0x42d35e
mov edx, dword [esp + 0x14]
cmp edx, eax
jle 0x42d35e
cmp edx, ecx
jge 0x42d35e
mov ecx, dword [esp + 0x20]
cmp ecx, 2
jae 0x42d35e
xor eax, eax
test ecx, ecx
jbe 0x42d2bf
nop
cmp edi, dword [esp + eax*4 + 0x60]
je 0x42d35e
inc eax
cmp eax, ecx
jb 0x42d2b0
mov eax, dword [esp + 0x20]
mov dword [esp + eax*4 + 0x60], edi
inc eax
mov ecx, edi
mov dword [esp + 0x20], eax
call fcn.00418880
test eax, eax
je 0x42d32a
mov edx, dword [0x15270d0]
xor eax, eax
test edx, edx
jle 0x42d2f4
mov ecx, 0x15270e8
cmp edi, dword [ecx]
je 0x42d35e
inc eax
add ecx, 0x18
cmp eax, edx
jl 0x42d2e8
mov esi, dword [esp + 0x98]
mov ebx, dword [esp + 0x94]
push 0
push edi
call fcn.0041a160
mov al, byte [edi + 0xce]
add esp, 8
test al, 1
jne 0x42d35e
push 4
push 0x3f800000
mov ebx, edi
call fcn.00471110
add esp, 8
jmp 0x42d35e
cmp byte [esp + 0x8c], 1
je 0x42d35e
mov edx, dword [esp + 0x98]
mov eax, dword [esp + 0x94]
push edx
push eax
push 0
mov esi, edi
call fcn.00470b50
mov eax, dword [edi + 0xe8]
add esp, 0xc
or eax, ebx
mov dword [edi + 0xe8], eax
mov ecx, dword [esp + 0x1c]
mov eax, dword [esp + 0x24]
movzx dx, byte [ecx + 8]
inc eax
cmp ax, dx
mov dword [esp + 0x24], eax
jb 0x42d0a3
test byte [ecx], 2
je 0x42d485
mov esi, dword [0x14cc4b0]
sub ecx, dword [esi + 0x74]
mov eax, 0x2aaaaaab
imul ecx
mov ecx, dword [esi + 0x18]
sar edx, 1
mov eax, edx
shr eax, 0x1f
add edx, eax
xor eax, eax
test ecx, ecx
jbe 0x42d485
mov edi, dword [esi + 0x2c]
lea esi, [edi + 0x58]
mov edi, edi
cmp word [esi], dx
je 0x42d3c2
inc eax
add esi, 0x60
cmp eax, ecx
jb 0x42d3b0
jmp 0x42d485
lea esi, [eax + eax*2]
shl esi, 5
add esi, edi
test esi, esi
je 0x42d485
mov eax, dword [esp + 0x94]
test eax, eax
je 0x42d45c
mov eax, dword [esp + 0x98]
cmp eax, 3
ja case.default.0x42d3e9
jmp dword [eax*4 + 0x42da20]
mov ecx, dword [esi + 0x48]
and ecx, 0xffffdfff
or ecx, 0x1000
mov eax, ecx
mov dword [esi + 0x48], ecx
or eax, 0x20000
jmp 0x42d464
mov edx, dword [esi + 0x48]
and edx, 0xffffefff
or edx, 0x2000
mov eax, edx
mov dword [esi + 0x48], edx
or eax, 0x20000
jmp 0x42d464
mov eax, dword [esi + 0x48]
or eax, 0x3000
mov dword [esi + 0x48], eax
or eax, 0x20000
jmp 0x42d464
push str.Player_index_out_of_range_in_MAP_PlayerAttackedDispObject
push 0x4c38e4
call fcn.004777d0
add esp, 8
mov eax, dword [esi + 0x48]
and eax, 0xffffcfff
mov dword [esi + 0x48], eax
or eax, 0x20000
jmp 0x42d464
mov eax, dword [esi + 0x48]
and eax, 0xfffdffff
mov dword [esi + 0x48], eax
movzx eax, byte [esp + 0x8c]
dec eax
je 0x42d47a
dec eax
je 0x42d47a
sub eax, 0xe
jne 0x42d485
push 0
push esi
call fcn.00419160
add esp, 8
mov eax, dword [esp + 0x1c]
mov ax, word [eax + 4]
cmp ax, 0xffff
je 0x42d900
mov edx, dword [0x14cc4b0]
movzx ecx, ax
mov eax, dword [edx + 0x64]
imul ecx, ecx, 0x1f4
mov edx, dword [eax + 4]
lea esi, [ecx + edx + 0x7c]
test esi, esi
je 0x42d900
mov ebx, dword [esp + 0x94]
xor ebp, ebp
movzx eax, word [esi + 0x12a]
mov edi, dword [0x14c7834]
imul eax, eax, 0x1f4
lea ecx, [eax + edi + 0x1ec]
cmp byte [ecx], 0xff
je 0x42d900
inc dword [esp + 0x2c]
mov edx, dword [esp + 0x98]
mov byte [esi + 0x137], dl
cmp dword [0x14cc494], ebp
je 0x42d51e
mov eax, dword [0x14c954c]
cmp eax, 4
je 0x42d516
cmp eax, 3
je 0x42d516
cmp eax, 7
je 0x42d516
cmp eax, 8
jne 0x42d51e
cmp byte [ecx], 0xff
jne 0x42d51e
mov byte [ecx], 9
movzx ecx, word [esi + 0x12a]
imul ecx, ecx, 0x1f4
cmp byte [ecx + edi + 0x1ef], 0x15
je 0x42d8d4
cmp ebx, ebp
je 0x42d54f
mov eax, dword [esi + 0x10c]
and eax, 0xff7fffff
or eax, 0x2000
jmp 0x42d55a
mov eax, dword [esi + 0x10c]
and eax, 0xffffdfff
movzx ecx, word [esp + 0x88]
mov edi, dword [esp + 0x18]
mov dword [esi + 0x10c], eax
mov eax, ecx
neg eax
cmp edi, eax
jle 0x42d669
inc ecx
cmp edi, ecx
jge 0x42d669
mov edi, dword [esp + 0x14]
cmp edi, eax
jle 0x42d669
cmp edi, ecx
jge 0x42d669
mov al, byte [esp + 0x8c]
test al, 0x12
je 0x42d650
call fcn.0049aa6d
test eax, eax
mov dword [esp + 0x24], eax
fild dword [esp + 0x24]
jge 0x42d5bb
fadd dword [0x4c49f0]
mov ecx, dword [0x14cc4a8]
fmul dword [0x4c4bc8]
fcomp dword [0x4c4b78]
fnstsw ax
test ah, 0x41
je 0x42d5ff
movzx edx, word [esi + 0x12a]
cmp edx, ecx
jl 0x42d5ff
cmp dword [0x14c74b8], ebp
je 0x42d5f3
mov edx, esi
call fcn.0047d7e0
jmp 0x42d8d4
mov eax, esi
call fcn.0042e020
jmp 0x42d8d4
movzx eax, word [esi + 0x12a]
cmp eax, ecx
mov ecx, dword [0x14c7834]
jge 0x42d642
mov edx, 0xfffffe70
imul eax, eax, 0x1f4
add eax, ecx
push eax
call fcn.0041df50
push ebp
push 0x3e7
push 0x68
push esi
call fcn.00408010
mov eax, dword [esi + 0x40]
add esp, 0x14
and eax, 0xfffffff7
mov dword [esi + 0x40], eax
jmp 0x42d8d4
xor edx, edx
mov dx, word [esi + 0x124]
neg dx
jmp 0x42d615
test al, 1
je 0x42d8d4
xor eax, eax
mov ax, word [esi + 0x124]
push edx
push ebx
push eax
jmp 0x42d8ca
mov al, byte [esp + 0x8c]
test al, 0x12
je 0x42d8ba
cmp esi, dword [0x14d13d8]
je 0x42d8ba
mov eax, dword [esp + 0x84]
fld dword [esi + 0xa4]
fsub dword [eax]
lea ecx, [esp + 0x48]
mov dword [esp + 0x4c], 0
fstp dword [esp + 0x48]
fld dword [esi + 0xac]
fsub dword [eax + 8]
fstp dword [esp + 0x50]
call fcn.00434550
mov al, byte [esi + 0x40]
fstp st(0)
test al, 8
mov ecx, dword [esp + 0x48]
mov edx, dword [esp + 0x50]
lea edi, [esi + 0xd4]
mov dword [edi], ecx
mov dword [esi + 0xdc], edx
je 0x42d6ea
push ebp
push 0x3e7
push 0x13
push esi
call fcn.00408010
add esp, 0x10
jmp 0x42d7e8
call fcn.0049aa6d
test eax, eax
mov dword [esp + 0x24], eax
fild dword [esp + 0x24]
jge 0x42d701
fadd dword [0x4c49f0]
fmul dword [0x4c4bc8]
push ebp
push 0x3e7
fcomp dword [0x4c49c0]
fnstsw ax
test ah, 0x41
jne 0x42d788
push 0xc
push esi
call fcn.00408010
add esp, 0x10
test eax, eax
je 0x42d7e8
cmp dword [0x14c74b0], ebp
mov eax, dword [0x14c74b8]
jne 0x42d742
cmp eax, ebp
je 0x42d7e8
xor ecx, ecx
mov cx, word [esi + 0x12a]
lea edx, [esp + 0x38]
push ebp
and ecx, 0x1ff
or ecx, 0x7ce1800
cmp eax, ebp
mov dword [esp + 0x3e], ecx
je 0x42d77f
mov word [esp + 0x3c], 0x17
mov eax, 8
mov ecx, 6
call fcn.0047eaf0
add esp, 4
jmp 0x42d7e8
mov word [esp + 0x3c], 0x22
jmp 0x42d7da
push 0x7f
push esi
call fcn.00408010
add esp, 0x10
test eax, eax
je 0x42d7e8
cmp dword [0x14c74b0], ebp
mov eax, dword [0x14c74b8]
jne 0x42d7a8
cmp eax, ebp
je 0x42d7e8
xor ecx, ecx
mov cx, word [esi + 0x12a]
lea edx, [esp + 0x40]
push ebp
and ecx, 0x1ff
or ecx, 0x7cefe00
cmp eax, ebp
mov dword [esp + 0x46], ecx
je 0x42d7d3
mov word [esp + 0x44], 0x17
jmp 0x42d76b
mov word [esp + 0x44], 0x22
push 0x28
push 6
push edx
push ebp
call fcn.00480aa0
add esp, 0x14
cmp word [esi + 0x124], bp
jle 0x42d82b
movzx eax, word [esi + 0x12a]
cmp eax, dword [0x14cc4a8]
mov edx, dword [0x14c7834]
jge 0x42d815
imul eax, eax, 0x1f4
add eax, edx
mov edx, 0xfffffff6
jmp 0x42d822
imul eax, eax, 0x1f4
add eax, edx
mov edx, 0xffffffce
push eax
call fcn.0041df50
add esp, 4
fld dword [esp + 0x48]
mov ecx, edi
fchs
fstp dword [edi]
fld dword [esp + 0x50]
fchs
fstp dword [esi + 0xdc]
call fcn.00434550
mov eax, dword [edi]
fstp st(0)
fld dword [esi + 0xdc]
mov ecx, dword [esi + 0xa4]
mov edx, dword [esi + 0xa8]
fchs
fst dword [esi + 0x64]
mov dword [esi + 0x6c], eax
fld dword [edi]
mov eax, 0x3f800000
fchs
mov dword [esi + 0x94], ecx
mov ecx, dword [esi + 0xac]
fstp dword [esi + 0x84]
mov dword [esi + 0x68], ebp
fstp dword [esi + 0x8c]
mov dword [esi + 0x70], ebp
mov dword [esi + 0x74], ebp
mov dword [esi + 0x78], eax
mov dword [esi + 0x7c], ebp
mov dword [esi + 0x80], ebp
mov dword [esi + 0x88], ebp
mov dword [esi + 0x90], ebp
mov dword [esi + 0x98], edx
mov dword [esi + 0x9c], ecx
mov dword [esi + 0xa0], eax
jmp 0x42d8d4
test al, 1
je 0x42d8d4
push edx
xor edx, edx
mov dx, word [esi + 0x124]
push ebx
push edx
mov eax, esi
call fcn.0042e490
add esp, 0xc
mov si, word [esi + 0x60]
cmp si, 0xffff
je 0x42d900
mov ecx, dword [0x14cc4b0]
mov edx, dword [ecx + 0x64]
mov ecx, dword [edx + 4]
movzx eax, si
imul eax, eax, 0x1f4
lea esi, [eax + ecx + 0x7c]
cmp esi, ebp
jne 0x42d4c1
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x28]
inc eax
cmp eax, ecx
mov dword [esp + 0x14], eax
jl 0x42d040
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x28]
inc eax
cmp eax, ecx
mov dword [esp + 0x18], eax
jl 0x42d020
mov edx, dword [0x14cc4b0]
mov eax, dword [edx + 8]
xor ebp, ebp
test eax, eax
jbe 0x42da06
mov al, byte [esp + 0x8c]
and al, 1
mov byte [esp + 0x13], al
xor ebx, ebx
mov edi, 0x8000000
jmp 0x42d960
mov al, byte [esp + 0x13]
jmp 0x42d960
mov ecx, dword [0x14cc4b0]
mov esi, dword [ecx + 0x2c]
add esi, ebx
test al, al
mov eax, dword [esi + 0x48]
je 0x42d9a2
test edi, eax
jne 0x42d9f1
mov eax, dword [esp + 0x84]
mov edx, dword [eax]
mov ecx, dword [eax + 4]
push 0xffffffffffffffce
push 0xffffffffffffffce
mov dword [esp + 0x5c], edx
mov edx, dword [eax + 8]
push 0xffffffffffffffce
mov dword [esp + 0x64], ecx
mov dword [esp + 0x68], edx
push 0x41c80000
lea eax, [esp + 0x64]
jmp 0x42d9d0
test edi, eax
jne 0x42d9f1
mov eax, dword [esp + 0x84]
mov edx, dword [eax]
mov ecx, dword [eax + 4]
push 0xffffffffffffffce
push 0xffffffffffffffce
mov dword [esp + 0x50], edx
mov edx, dword [eax + 8]
push 0xffffffffffffffce
mov dword [esp + 0x58], ecx
mov dword [esp + 0x5c], edx
push 0x42480000
lea eax, [esp + 0x58]
mov ecx, dword [esi + 0x50]
imul ecx, ecx, 0x118
push eax
add ecx, dword [0x14d2e74]
push ecx
call fcn.00481300
mov eax, dword [esi + 0x48]
add esp, 0x18
or eax, edi
mov dword [esi + 0x48], eax
mov edx, dword [0x14cc4b0]
mov eax, dword [edx + 8]
inc ebp
add ebx, 0x60
cmp ebp, eax
jb 0x42d953
mov eax, dword [esp + 0x2c]
push eax
push str.HIT__d_characters_this_frame_n
call fcn.004777d0
add esp, 8
pop esi
pop ebp
pop ebx
pop edi
add esp, 0x70
ret