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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x9c
mov eax, dword [0x44eea4]
xor eax, esp
mov dword [esp + 0x98], eax
push ebx
xor ebx, ebx
push esi
mov esi, ecx
lea eax, [esi + 0x194]
push edi
mov dword [esp + 0x38], ebx
mov dword [esp + 0x3c], ebx
mov dword [esp + 0x40], ebx
mov dword [esp + 0x44], ebx
mov dword [esp + 0x48], ebx
mov dword [esp + 0x4c], ebx
mov dword [esp + 0x50], ebx
mov dword [esp + 0x54], ebx
mov dword [esp + 0x58], ebx
mov dword [esp + 0x5c], ebx
mov dword [esp + 0x60], ebx
mov dword [esp + 0x64], ebx
mov dword [esp + 0x68], ebx
mov dword [esp + 0x6c], ebx
mov dword [esp + 0x70], ebx
mov dword [esp + 0x74], ebx
mov dword [esp + 0x78], ebx
mov dword [esp + 0x7c], ebx
mov dword [esp + 0x80], ebx
mov dword [esp + 0x84], ebx
mov dword [esp + 0x88], ebx
mov dword [esp + 0x8c], ebx
mov dword [esp + 0x20], ebx
mov dword [esp + 0x24], ebx
mov dword [esp + 0x28], ebx
mov dword [esp + 0x2c], ebx
mov dword [esp + 0x30], ebx
mov dword [esp + 0x34], ebx
mov dword [esp + 0x10], ebx
mov dword [esp + 0x18], eax
nop
nop
nop
nop
nop
mov ecx, dword [esp + 0x10]
cmp byte [esi + ecx + 4], 0
je 0x43a9dc
mov edx, dword [esp + 0x18]
mov eax, dword [edx]
mov dword [esp + 0x14], eax
mov eax, dword [eax + 0x344]
cmp eax, ebx
jle 0x43a9a1
cmp eax, 3
jge 0x43a9a1
cmp ecx, 0x14
jl 0x43a9a1
mov eax, edx
mov eax, dword [eax]
mov ecx, dword [eax + 0x368]
mov edx, dword [eax + 0x344]
mov edi, dword [ecx + 0x6f4]
lea eax, [edi - 0x1e]
sub edx, 1
cmp eax, 9
ja 0x43a963
cmp edi, 0x26
jne 0x43a96d
cmp edi, 0x7a
je 0x43a96d
cmp edi, 0x7b
jne 0x43a9a1
xor ecx, ecx
cmp dword [0x44d37c], ebx
jle 0x43a9a1
cmp dword [ecx*4 + 0x44d350], edi
jne 0x43a996
mov eax, edx
imul eax, dword [0x44d37c]
add eax, ecx
add dword [esp + eax*4 + 0x38], 1
lea eax, [esp + eax*4 + 0x38]
xor ebx, ebx
add ecx, 1
cmp ecx, dword [0x44d37c]
jl 0x43a977
mov ecx, dword [esp + 0x14]
mov edx, dword [ecx + 0x368]
cmp dword [edx + 0x6f8], ebx
jne 0x43a9dc
mov eax, dword [ecx + 0x2fc]
cmp eax, ebx
jle 0x43a9dc
mov edx, 1
cmp dword [ecx + 0x364], edx
jne 0x43a9d4
add dword [esp + 0x20], edx
add dword [esp + 0x28], eax
jmp 0x43a9dc
add dword [esp + 0x24], edx
add dword [esp + 0x2c], eax
mov eax, dword [esp + 0x10]
add dword [esp + 0x18], 4
add eax, 1
cmp eax, 0x190
mov dword [esp + 0x10], eax
jl 0x43a910
cmp dword [0x44d37c], ebx
mov dword [esp + 0x10], ebx
jl 0x43ae02
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp dword [0x44d37c], 0
mov dword [esp + 0x18], 0
jle 0x43adea
mov ebx, dword [esp + 0x10]
add ebx, ebx
add ebx, ebx
mov dword [esp + 0x14], ebx
cmp dword [ebx + 0x44d6a8], 0
jle 0x43adcc
mov eax, dword [ebx + 0x44d700]
cmp eax, dword [esp + ebx + 0x38]
jle 0x43adcc
mov edi, 0x14
cmp byte [esi + edi + 4], 0
je 0x43aa6a
add edi, 1
cmp edi, 0x190
jl 0x43aa53
jmp 0x43adcc
mov ecx, dword [esi + 0x7d4]
mov edx, dword [ecx + 0x4d82380]
xor eax, eax
test edx, edx
mov dword [esp + 0x1c], edx
jle 0x43adcc
mov edx, dword [esp + 0x18]
mov edx, dword [edx*4 + 0x44d350]
nop
mov ebx, dword [ecx]
cmp dword [ebx + 0x6f4], edx
je 0x43aaab
add eax, 1
add ecx, 4
cmp eax, dword [esp + 0x1c]
jl 0x43aa90
jmp 0x43adc8
mov byte [esi + edi + 4], 1
mov ecx, dword [esi + 0x7d4]
mov edx, dword [ecx + eax*4]
mov ebx, dword [esi + edi*4 + 0x194]
mov ecx, ebx
mov dword [esp + 0x1c], edx
call fcn.004061d0
fld qword [0x4499d0]
mov eax, dword [esp + 0x1c]
mov dword [ebx + 0x368], eax
mov eax, dword [eax + 0x90]
fstp qword [ebx + 0x58]
fldz
mov dword [ebx + 0x31c], eax
fstp qword [ebx + 0x60]
fld qword [0x447928]
fstp qword [ebx + 0x68]
mov ecx, dword [0x44d024]
mov edx, dword [esi + 0x7d4]
imul ecx, ecx, 0x990
lea eax, [ecx + edx]
mov ecx, dword [eax + 0x4d45db8]
sub ecx, dword [eax + 0x4d45db4]
push ecx
push 0x128
call fcn.00417170
mov edx, dword [0x44d024]
mov ecx, dword [esi + 0x7d4]
imul edx, edx, 0x990
add eax, dword [edx + ecx + 0x4d45db4]
mov edx, dword [esi + edi*4 + 0x194]
mov dword [edx + 0x18], eax
mov eax, dword [esi + edi*4 + 0x194]
mov ecx, dword [eax + 0x368]
add esp, 8
cmp dword [esp + 0x10], 0
jne 0x43ab76
mov edx, dword [ecx + 0x6f8]
neg edx
sbb edx, edx
and edx, 0x96
add edx, 0xffffff9c
mov dword [eax + 0x10], edx
jmp 0x43abbf
cmp dword [ecx + 0x6f8], 0
jne 0x43aba0
mov edx, dword [0x44d024]
mov ecx, dword [esi + 0x7d4]
imul edx, edx, 0x990
mov edx, dword [edx + ecx + 0x4d45db0]
add edx, 0x64
mov dword [eax + 0x10], edx
jmp 0x43abbf
mov ecx, dword [0x44d024]
mov edx, dword [esi + 0x7d4]
imul ecx, ecx, 0x990
mov ecx, dword [ecx + edx + 0x4d45db0]
sub ecx, 0x32
mov dword [eax + 0x10], ecx
cmp dword [esp + 0x10], 0
mov eax, dword [esi + edi*4 + 0x194]
fild dword [eax + 0x10]
mov edx, dword [esp + 0x18]
fstp qword [eax + 0x58]
mov eax, dword [esi + edi*4 + 0x194]
fild dword [eax + 0x18]
fstp qword [eax + 0x68]
mov ecx, dword [edx*4 + 0x44d350]
mov eax, 0x1f4
jne 0x43ac28
mov edx, dword [esi + edi*4 + 0x194]
mov ebx, dword [edx + 0x368]
cmp dword [ebx + 0x6f8], 0
jne 0x43ac28
cmp ecx, 0x25
mov dword [edx + 0x318], 0x8c
jne 0x43ac28
mov eax, dword [esi + edi*4 + 0x194]
mov dword [eax + 0x318], 0x72
jmp 0x43ac43
cmp ecx, 0x24
jne 0x43ac34
mov eax, 0xfa
jmp 0x43ac7a
cmp ecx, 0x25
je 0x43ac43
cmp ecx, 0x23
je 0x43ac43
cmp ecx, 0x20
jne 0x43ac48
mov eax, 0xc8
cmp ecx, 0x27
je 0x43ac52
cmp ecx, 0x21
jne 0x43ac57
mov eax, 0x96
cmp ecx, 0x22
jne 0x43ac61
lea eax, [ecx + 0x42]
jmp 0x43ac7a
cmp ecx, 0x1f
je 0x43ac6b
cmp ecx, 0x1e
jne 0x43ac70
mov eax, 0x32
cmp ecx, 0x7a
jne 0x43ac7a
mov eax, 0xc8
mov ecx, dword [esi + edi*4 + 0x194]
mov dword [ecx + 0x308], 0x1f4
mov edx, dword [esi + edi*4 + 0x194]
mov dword [edx + 0x300], eax
mov ecx, dword [esi + edi*4 + 0x194]
mov dword [ecx + 0x2fc], eax
mov edx, dword [esi + edi*4 + 0x194]
mov dword [edx + 0x304], eax
mov eax, dword [esi + edi*4 + 0x194]
mov dword [eax + 0x354], edi
mov eax, dword [esi + edi*4 + 0x194]
mov ecx, dword [eax + 0x368]
mov ecx, dword [ecx + 0x6f8]
xor edx, edx
cmp ecx, edx
je 0x43ad28
cmp ecx, 5
je 0x43ad28
mov dword [eax + 8], edx
mov eax, dword [esi + edi*4 + 0x194]
mov dword [eax + 0x364], edx
mov eax, dword [esp + 0x10]
cdq
idiv dword [0x44d37c]
mov ecx, dword [esi + edi*4 + 0x194]
add eax, 1
mov dword [ecx + 0x344], eax
mov edx, dword [esi + edi*4 + 0x194]
mov dword [edx + 0x14], 0xfffffed4
mov edi, dword [esi + edi*4 + 0x194]
fild dword [edi + 0x14]
fstp qword [edi + 0x60]
jmp 0x43adbd
mov dword [eax + 8], 0x14
mov edx, dword [0x44d024]
mov eax, dword [esi + 0x7d4]
imul edx, edx, 0x990
mov eax, dword [edx + eax + 0x4d45db0]
mov ecx, dword [esi + edi*4 + 0x194]
cdq
sub eax, edx
sar eax, 1
cmp dword [ecx + 0x10], eax
setg al
mov byte [ecx + 0x80], al
mov ecx, dword [esp + 0x10]
mov eax, ecx
cdq
idiv dword [0x44d37c]
mov edx, dword [esi + edi*4 + 0x194]
add eax, 1
mov dword [edx + 0x364], eax
mov eax, ecx
cdq
idiv dword [0x44d37c]
mov ecx, dword [esi + edi*4 + 0x194]
add eax, 1
mov dword [ecx + 0x344], eax
mov edx, dword [esi + edi*4 + 0x194]
mov dword [edx + 0x14], 0xfffffed4
mov eax, dword [esi + edi*4 + 0x194]
fild dword [eax + 0x14]
fstp qword [eax + 0x60]
mov eax, dword [esi + edi*4 + 0x194]
fldz
fstp qword [eax + 0x48]
mov eax, dword [esp + 0x14]
add dword [eax + 0x44d6a8], 0xffffffff
mov ebx, dword [esp + 0x14]
mov eax, dword [esp + 0x18]
add eax, 1
add ebx, 4
cmp eax, dword [0x44d37c]
mov dword [esp + 0x18], eax
mov dword [esp + 0x14], ebx
jl 0x43aa31
mov eax, dword [esp + 0x10]
mov ecx, dword [0x44d37c]
add eax, ecx
cmp eax, ecx
mov dword [esp + 0x10], eax
jle 0x43aa10
mov eax, dword [0x44d37c]
lea ecx, [eax*4]
lea ebx, [eax - 2]
mov dword [esp + 0x1c], ecx
mov edi, 0x44d6a8
lea esi, [esp + 0x30]
mov dword [esp + 0x14], 2
test ebx, ebx
jle 0x43ae3c
mov eax, dword [esi]
mov ecx, edi
mov edx, ebx
add eax, dword [ecx]
add ecx, 4
sub edx, 1
jne 0x43ae30
mov dword [esi], eax
add edi, dword [esp + 0x1c]
mov eax, 1
add esi, 4
sub dword [esp + 0x14], eax
jne 0x43ae26
mov esi, dword [esp + 0x34]
mov dword [0x451b7c], eax
mov eax, dword [esp + 0x30]
xor ecx, ecx
cmp eax, ecx
jle 0x43ae6b
cmp esi, ecx
jle 0x43ae6b
mov dword [0x451b7c], ecx
cmp dword [esp + 0x20], ecx
jle 0x43ae7d
cmp dword [esp + 0x24], ecx
jle 0x43ae7d
mov dword [0x451b7c], ecx
mov edx, dword [0x451b64]
mov ecx, dword [esp + 0x20]
mov ebx, dword [sym.imp.MSVCR80.dll_sprintf]
push edx
push eax
mov eax, dword [esp + 0x30]
push eax
push ecx
lea edx, [esp + 0x48]
push str.Man:__3d_____HP:__4d_____Reserve:__3d_____Die:__3d
push edx
call ebx
mov ecx, dword [0x455608]
push 0x6e
push 0xa
push 0xffb294
push 0
lea eax, [esp + 0x60]
push eax
push ecx
call fcn.00401290
mov edx, dword [0x451b68]
mov eax, dword [esp + 0x5c]
mov ecx, dword [esp + 0x54]
push edx
push esi
push eax
push ecx
lea edx, [esp + 0x78]
push str.Man:__3d_____HP:__4d_____Reserve:__3d_____Die:__3d
push edx
call ebx
mov ecx, 5
nop
add esp, 0x48
push 0x6e
push 0x1c2
push 0xada6ff
push 0
lea eax, [esp + 0x48]
push eax
push ecx
call fcn.00401290
mov ecx, dword [0x44d380]
add esp, 0x18
test ecx, ecx
mov byte [0x451c80], 0
jne 0x43af2c
mov edx, dword [str.Zero]
mov al, byte [0x449e48]
mov dword [0x451c80], edx
mov byte [0x451c84], al
jmp 0x43b094
cmp ecx, 1
jne 0x43af58
mov edx, dword [str.Balanced]
mov eax, dword [0x449e3c]
mov dword [0x451c80], edx
mov dl, byte [0x449e40]
mov dword [0x451c84], eax
mov byte [0x451c88], dl
jmp 0x43b032
cmp ecx, 2
jne 0x43af82
mov eax, dword [str.Inferior]
mov edx, dword [0x449e30]
mov dword [0x451c80], eax
mov al, byte [0x449e34]
mov dword [0x451c84], edx
mov byte [0x451c88], al
jmp 0x43b032
cmp ecx, 3
jne 0x43afba
mov edx, dword [str.Ranged_attack]
mov eax, dword [0x449e20]
mov dword [0x451c80], edx
mov edx, dword [0x449e24]
mov dword [0x451c84], eax
mov ax, word [0x449e28]
mov dword [0x451c88], edx
mov word [0x451c8c], ax
jmp 0x43b032
cmp ecx, 4
jne 0x43afed
mov edx, dword [str.Melee_attack]
mov eax, dword [0x449e10]
mov dword [0x451c80], edx
mov edx, dword [0x449e14]
mov dword [0x451c84], eax
mov al, byte [0x449e18]
mov dword [0x451c88], edx
mov byte [0x451c8c], al
jmp 0x43b032
cmp ecx, 5
jne 0x43b00c
mov edx, dword [str.Giant]
mov ax, word [0x449e08]
mov dword [0x451c80], edx
mov word [0x451c84], ax
jmp 0x43b032
cmp ecx, 6
jne 0x43b029
mov edx, dword [str.Full]
mov al, byte [0x449e00]
mov dword [0x451c80], edx
mov byte [0x451c84], al
jmp 0x43b094
test ecx, ecx
jle 0x43b094
cmp ecx, 6
jge 0x43b094
mov eax, dword [0x451b74]
test eax, eax
jne 0x43b055
mov edi, 0x451c80
add edi, 0xffffffff
mov al, byte [edi + 1]
add edi, 1
test al, al
jne 0x43b043
mov edx, dword [0x449df8]
jmp 0x43b092
cmp eax, 1
jne 0x43b075
mov edi, 0x451c80
add edi, 0xffffffff
mov al, byte [edi + 1]
add edi, 1
test al, al
jne 0x43b062
mov eax, dword [0x449df4]
mov dword [edi], eax
jmp 0x43b094
cmp eax, 2
jne 0x43b094
mov edi, 0x451c80
add edi, 0xffffffff
mov al, byte [edi + 1]
add edi, 1
test al, al
jne 0x43b082
mov edx, dword [0x449df0]
mov dword [edi], edx
mov eax, dword [str.dd_n__]
cmp eax, 0x64
je 0x43b12d
cmp ecx, 0xffffffff
je 0x43b0cb
mov ecx, 0x451c80
add ecx, 0xffffffff
nop
mov dl, byte [ecx + 1]
add ecx, 1
test dl, dl
jne 0x43b0b0
mov edx, dword [str.]
mov dword [ecx], edx
mov dl, byte [0x449dec]
mov byte [ecx + 4], dl
cdq
mov ecx, 0x64
idiv ecx
mov ecx, eax
mov eax, 0x66666667
imul edx
sar edx, 2
mov eax, edx
shr eax, 0x1f
add eax, edx
push eax
push ecx
push str.Defense:__d._d
push 0x451bb8
call ebx
mov eax, 0x451bb8
add esp, 0x10
mov ecx, eax
mov edi, edi
mov dl, byte [eax]
add eax, 1
test dl, dl
jne 0x43b100
mov edi, 0x451c80
sub eax, ecx
mov esi, ecx
add edi, 0xffffffff
mov cl, byte [edi + 1]
add edi, 1
test cl, cl
jne 0x43b115
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]
push 0
push 0
push 1
push 4
push 0x40
call fcn.00414650
push 0xa
push 0x451c80
call fcn.00423a70
mov ecx, dword [0x44d384]
nop
test ecx, ecx
mov byte [0x451c80], 0
jne 0x43b175
mov edx, dword [str.Zero]
mov al, byte [0x449e48]
mov dword [0x451c80], edx
mov byte [0x451c84], al
jmp 0x43b2e2
cmp ecx, 1
jne 0x43b1a1
mov edx, dword [str.Balanced]
mov eax, dword [0x449e3c]
mov dword [0x451c80], edx
mov dl, byte [0x449e40]
mov dword [0x451c84], eax
mov byte [0x451c88], dl
jmp 0x43b27b
cmp ecx, 2
jne 0x43b1cb
mov eax, dword [str.Inferior]
mov edx, dword [0x449e30]
mov dword [0x451c80], eax
mov al, byte [0x449e34]
mov dword [0x451c84], edx
mov byte [0x451c88], al
jmp 0x43b27b
cmp ecx, 3
jne 0x43b203
mov edx, dword [str.Ranged_attack]
mov eax, dword [0x449e20]
mov dword [0x451c80], edx
mov edx, dword [0x449e24]
mov dword [0x451c84], eax
mov ax, word [0x449e28]
mov dword [0x451c88], edx
mov word [0x451c8c], ax
jmp 0x43b27b
cmp ecx, 4
jne 0x43b236
mov edx, dword [str.Melee_attack]
mov eax, dword [0x449e10]
mov dword [0x451c80], edx
mov edx, dword [0x449e14]
mov dword [0x451c84], eax
mov al, byte [0x449e18]
mov dword [0x451c88], edx
mov byte [0x451c8c], al
jmp 0x43b27b
cmp ecx, 5
jne 0x43b255
mov edx, dword [str.Giant]
mov ax, word [0x449e08]
mov dword [0x451c80], edx
mov word [0x451c84], ax
jmp 0x43b27b
cmp ecx, 6
jne 0x43b272
mov edx, dword [str.Full]
mov al, byte [0x449e00]
mov dword [0x451c80], edx
mov byte [0x451c84], al
jmp 0x43b2e2
test ecx, ecx
jle 0x43b2e2
cmp ecx, 6
jge 0x43b2e2
mov eax, dword [0x451b78]
test eax, eax
jne 0x43b2a2
mov edi, 0x451c80
add edi, 0xffffffff
lea esp, [esp]
mov al, byte [edi + 1]
add edi, 1
test al, al
jne 0x43b290
mov edx, dword [0x449df8]
jmp 0x43b2e0
cmp eax, 1
jne 0x43b2c3
mov edi, 0x451c80
add edi, 0xffffffff
nop
mov al, byte [edi + 1]
add edi, 1
test al, al
jne 0x43b2b0
mov eax, dword [0x449df4]
mov dword [edi], eax
jmp 0x43b2e2
cmp eax, 2
jne 0x43b2e2
mov edi, 0x451c80
add edi, 0xffffffff
mov al, byte [edi + 1]
add edi, 1
test al, al
jne 0x43b2d0
mov edx, dword [0x449df0]
mov dword [edi], edx
mov eax, dword [0x44d75c]
cmp eax, 0x64
je 0x43b37d
cmp ecx, 0xffffffff
je 0x43b31b
mov ecx, 0x451c80
add ecx, 0xffffffff
lea ecx, [ecx]
mov dl, byte [ecx + 1]
add ecx, 1
test dl, dl
jne 0x43b300
mov edx, dword [str.]
mov dword [ecx], edx
mov dl, byte [0x449dec]
mov byte [ecx + 4], dl
cdq
mov ecx, 0x64
idiv ecx
mov ecx, eax
mov eax, 0x66666667
imul edx
sar edx, 2
mov eax, edx
shr eax, 0x1f
add eax, edx
push eax
push ecx
push str.Defense:__d._d
push 0x451bb8
call ebx
mov eax, 0x451bb8
add esp, 0x10
mov ecx, eax
mov edi, edi
mov dl, byte [eax]
add eax, 1
test dl, dl
jne 0x43b350
mov edi, 0x451c80
sub eax, ecx
mov esi, ecx
add edi, 0xffffffff
mov cl, byte [edi + 1]
add edi, 1
test cl, cl
jne 0x43b365
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 eax, 0x451c80
lea edx, [eax + 1]
mov cl, byte [eax]
add eax, 1
test cl, cl
jne 0x43b385
push 5
push 0
push 2
sub eax, edx
push 4
push 0x40
lea ecx, [eax*8]
mov edx, 0x311
push 0x85
sub edx, ecx
push edx
push 0x451c80
call fcn.00423a70
mov ecx, dword [esp + 0xa4]
nop
pop edi
pop esi
pop ebx
xor ecx, esp
call fcn.004450b2
mov esp, ebp
pop ebp
ret 4