Function at 0x43a960
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
jmp 0x43aa10
mov ecx, dword [esp + 0x10]
cmp byte [esi + ecx + 4], 0
je 0x43aadc
mov edx, dword [esp + 0x18]
mov eax, dword [edx]
mov dword [esp + 0x14], eax
mov eax, dword [eax + 0x344]
cmp eax, ebx
jle 0x43aaa1
cmp eax, 3
jge 0x43aaa1
cmp ecx, 0x14
jl 0x43aaa1
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 0x43aa63
cmp edi, 0x26
jne 0x43aa6d
cmp edi, 0x7a
je 0x43aa6d
cmp edi, 0x7b
jne 0x43aaa1
xor ecx, ecx
cmp dword [0x44d37c], ebx
jle 0x43aaa1
cmp dword [ecx*4 + 0x44d350], edi
jne 0x43aa96
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 0x43aa77
mov ecx, dword [esp + 0x14]
mov edx, dword [ecx + 0x368]
cmp dword [edx + 0x6f8], ebx
jne 0x43aadc
mov eax, dword [ecx + 0x2fc]
cmp eax, ebx
jle 0x43aadc
mov edx, 1
cmp dword [ecx + 0x364], edx
jne 0x43aad4
add dword [esp + 0x20], edx
add dword [esp + 0x28], eax
jmp 0x43aadc
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 0x43aa10
cmp dword [0x44d37c], ebx
mov dword [esp + 0x10], ebx
jl 0x43af04
jmp 0x43ab10
cmp dword [0x44d37c], 0
mov dword [esp + 0x18], 0
jle 0x43aeec
mov ebx, dword [esp + 0x10]
add ebx, ebx
add ebx, ebx
mov dword [esp + 0x14], ebx
cmp dword [ebx + 0x44d6a8], 0
jle 0x43aece
mov eax, dword [ebx + 0x44d700]
cmp eax, dword [esp + ebx + 0x38]
jle 0x43aece
mov edi, 0x14
cmp byte [esi + edi + 4], 0
je 0x43ab6a
add edi, 1
cmp edi, 0x190
jl 0x43ab53
jmp 0x43aece
mov ecx, dword [esi + 0x7d4]
mov edx, dword [ecx + 0x4d82380]
xor eax, eax
test edx, edx
mov dword [esp + 0x1c], edx
jle 0x43aece
mov edx, dword [esp + 0x18]
mov edx, dword [edx*4 + 0x44d350]
nop
mov ebx, dword [ecx]
cmp dword [ebx + 0x6f4], edx
je 0x43abab
add eax, 1
add ecx, 4
cmp eax, dword [esp + 0x1c]
jl 0x43ab90
jmp 0x43aeca
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.004061e0
fld qword [0x4499b8]
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 [0x447920]
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.00417190
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 0x43ac76
mov edx, dword [ecx + 0x6f8]
neg edx
sbb edx, edx
and edx, 0x96
add edx, 0xffffff9c
mov dword [eax + 0x10], edx
jmp 0x43acbf
cmp dword [ecx + 0x6f8], 0
jne 0x43aca0
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 0x43acbf
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 0x43ad28
mov edx, dword [esi + edi*4 + 0x194]
mov ebx, dword [edx + 0x368]
cmp dword [ebx + 0x6f8], 0
jne 0x43ad28
cmp ecx, 0x25
mov dword [edx + 0x318], 0x8c
jne 0x43ad28
mov eax, dword [esi + edi*4 + 0x194]
mov dword [eax + 0x318], 0x72
jmp 0x43ad43
cmp ecx, 0x24
jne 0x43ad34
mov eax, 0xfa
jmp 0x43ad7c
cmp ecx, 0x25
je 0x43ad43
cmp ecx, 0x23
je 0x43ad43
cmp ecx, 0x20
jne 0x43ad48
mov eax, 0xc8
cmp ecx, 0x27
je 0x43ad52
cmp ecx, 0x21
jne 0x43ad57
mov eax, 0x96
cmp ecx, 0x22
jne 0x43ad63
mov eax, 0x64
jmp 0x43ad7c
cmp ecx, 0x1f
je 0x43ad6d
cmp ecx, 0x1e
jne 0x43ad72
mov eax, 0x32
cmp ecx, 0x7a
jne 0x43ad7c
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 0x43ae2a
cmp ecx, 5
je 0x43ae2a
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 0x43aebf
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 0x43ab31
mov eax, dword [esp + 0x10]
mov ecx, dword [0x44d37c]
add eax, ecx
cmp eax, ecx
mov dword [esp + 0x10], eax
jle 0x43ab10
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 0x43af3e
mov eax, dword [esi]
mov ecx, edi
mov edx, ebx
add eax, dword [ecx]
add ecx, 4
sub edx, 1
jne 0x43af32
mov dword [esi], eax
add edi, dword [esp + 0x1c]
mov eax, 1
add esi, 4
sub dword [esp + 0x14], eax
jne 0x43af28
mov esi, dword [esp + 0x34]
mov dword [0x451b7c], eax
mov eax, dword [esp + 0x30]
xor ecx, ecx
cmp eax, ecx
jle 0x43af6d
cmp esi, ecx
jle 0x43af6d
mov dword [0x451b7c], ecx
cmp dword [esp + 0x20], ecx
jle 0x43af7f
cmp dword [esp + 0x24], ecx
jle 0x43af7f
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, dword [0x455608]
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 0x43b02e
mov edx, dword [str.Zero]
mov al, byte [0x449e30]
mov dword [0x451c80], edx
mov byte [0x451c84], al
jmp 0x43b196
cmp ecx, 1
jne 0x43b05a
mov edx, dword [str.Balanced]
mov eax, dword [0x449e24]
mov dword [0x451c80], edx
mov dl, byte [0x449e28]
mov dword [0x451c84], eax
mov byte [0x451c88], dl
jmp 0x43b134
cmp ecx, 2
jne 0x43b084
mov eax, dword [str.Inferior]
mov edx, dword [0x449e18]
mov dword [0x451c80], eax
mov al, byte [0x449e1c]
mov dword [0x451c84], edx
mov byte [0x451c88], al
jmp 0x43b134
cmp ecx, 3
jne 0x43b0bc
mov edx, dword [str.Ranged_attack]
mov eax, dword [0x449e08]
mov dword [0x451c80], edx
mov edx, dword [0x449e0c]
mov dword [0x451c84], eax
mov ax, word [0x449e10]
mov dword [0x451c88], edx
mov word [0x451c8c], ax
jmp 0x43b134
cmp ecx, 4
jne 0x43b0ef
mov edx, dword [str.Melee_attack]
mov eax, dword [0x449df8]
mov dword [0x451c80], edx
mov edx, dword [0x449dfc]
mov dword [0x451c84], eax
mov al, byte [0x449e00]
mov dword [0x451c88], edx
mov byte [0x451c8c], al
jmp 0x43b134
cmp ecx, 5
jne 0x43b10e
mov edx, dword [str.Giant]
mov ax, word [0x449df0]
mov dword [0x451c80], edx
mov word [0x451c84], ax
jmp 0x43b134
cmp ecx, 6
jne 0x43b12b
mov edx, dword [str.Full]
mov al, byte [0x449de8]
mov dword [0x451c80], edx
mov byte [0x451c84], al
jmp 0x43b196
test ecx, ecx
jle 0x43b196
cmp ecx, 6
jge 0x43b196
mov eax, dword [0x451b74]
test eax, eax
jne 0x43b157
mov edi, 0x451c80
add edi, 0xffffffff
mov al, byte [edi + 1]
add edi, 1
test al, al
jne 0x43b145
mov edx, dword [0x449de0]
jmp 0x43b194
cmp eax, 1
jne 0x43b177
mov edi, 0x451c80
add edi, 0xffffffff
mov al, byte [edi + 1]
add edi, 1
test al, al
jne 0x43b164
mov eax, dword [0x449ddc]
mov dword [edi], eax
jmp 0x43b196
cmp eax, 2
jne 0x43b196
mov edi, 0x451c80
add edi, 0xffffffff
mov al, byte [edi + 1]
add edi, 1
test al, al
jne 0x43b184
mov edx, dword [0x449dd8]
mov dword [edi], edx
mov eax, dword [str.dd_n__]
cmp eax, 0x64
je 0x43b22d
cmp ecx, 0xffffffff
je 0x43b1cc
mov ecx, 0x451c80
add ecx, 0xffffffff
mov dl, byte [ecx + 1]
add ecx, 1
test dl, dl
jne 0x43b1b1
mov edx, dword [0x449dd0]
mov dword [ecx], edx
mov dl, byte [0x449dd4]
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
nop
mov dl, byte [eax]
add eax, 1
test dl, dl
jne 0x43b200
mov edi, 0x451c80
sub eax, ecx
mov esi, ecx
add edi, 0xffffffff
mov cl, byte [edi + 1]
add edi, 1
test cl, cl
jne 0x43b215
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 1
push 4
push 0x40
push 0x85
push 0xa
push 0x451c80
call fcn.00423af0
mov ecx, dword [0x44d384]
add esp, 0x1c
test ecx, ecx
mov byte [0x451c80], 0
jne 0x43b275
mov edx, dword [str.Zero]
mov al, byte [0x449e30]
mov dword [0x451c80], edx
mov byte [0x451c84], al
jmp 0x43b3e2
cmp ecx, 1
jne 0x43b2a1
mov edx, dword [str.Balanced]
mov eax, dword [0x449e24]
mov dword [0x451c80], edx
mov dl, byte [0x449e28]
mov dword [0x451c84], eax
mov byte [0x451c88], dl
jmp 0x43b37b
cmp ecx, 2
jne 0x43b2cb
mov eax, dword [str.Inferior]
mov edx, dword [0x449e18]
mov dword [0x451c80], eax
mov al, byte [0x449e1c]
mov dword [0x451c84], edx
mov byte [0x451c88], al
jmp 0x43b37b
cmp ecx, 3
jne 0x43b303
mov edx, dword [str.Ranged_attack]
mov eax, dword [0x449e08]
mov dword [0x451c80], edx
mov edx, dword [0x449e0c]
mov dword [0x451c84], eax
mov ax, word [0x449e10]
mov dword [0x451c88], edx
mov word [0x451c8c], ax
jmp 0x43b37b
cmp ecx, 4
jne 0x43b336
mov edx, dword [str.Melee_attack]
mov eax, dword [0x449df8]
mov dword [0x451c80], edx
mov edx, dword [0x449dfc]
mov dword [0x451c84], eax
mov al, byte [0x449e00]
mov dword [0x451c88], edx
mov byte [0x451c8c], al
jmp 0x43b37b
cmp ecx, 5
jne 0x43b355
mov edx, dword [str.Giant]
mov ax, word [0x449df0]
mov dword [0x451c80], edx
mov word [0x451c84], ax
jmp 0x43b37b
cmp ecx, 6
jne 0x43b372
mov edx, dword [str.Full]
mov al, byte [0x449de8]
mov dword [0x451c80], edx
mov byte [0x451c84], al
jmp 0x43b3e2
test ecx, ecx
jle 0x43b3e2
cmp ecx, 6
jge 0x43b3e2
mov eax, dword [0x451b78]
test eax, eax
jne 0x43b3a2
mov edi, 0x451c80
add edi, 0xffffffff
lea esp, [esp]
mov al, byte [edi + 1]
add edi, 1
test al, al
jne 0x43b390
mov edx, dword [0x449de0]
jmp 0x43b3e0
cmp eax, 1
jne 0x43b3c3
mov edi, 0x451c80
add edi, 0xffffffff
nop
mov al, byte [edi + 1]
add edi, 1
test al, al
jne 0x43b3b0
mov eax, dword [0x449ddc]
mov dword [edi], eax
jmp 0x43b3e2
cmp eax, 2
jne 0x43b3e2
mov edi, 0x451c80
add edi, 0xffffffff
mov al, byte [edi + 1]
add edi, 1
test al, al
jne 0x43b3d0
mov edx, dword [0x449dd8]
mov dword [edi], edx
mov eax, dword [0x44d75c]
cmp eax, 0x64
je 0x43b47d
cmp ecx, 0xffffffff
je 0x43b41b
mov ecx, 0x451c80
add ecx, 0xffffffff
lea ecx, [ecx]
mov dl, byte [ecx + 1]
add ecx, 1
test dl, dl
jne 0x43b400
mov edx, dword [0x449dd0]
mov dword [ecx], edx
mov dl, byte [0x449dd4]
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 0x43b450
mov edi, 0x451c80
sub eax, ecx
mov esi, ecx
add edi, 0xffffffff
mov cl, byte [edi + 1]
add edi, 1
test cl, cl
jne 0x43b465
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 0x43b485
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.00423af0
mov ecx, dword [esp + 0xc0]
add esp, 0x1c
pop edi
pop esi
pop ebx
xor ecx, esp
call fcn.004451a2
mov esp, ebp
pop ebp
ret 4