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

Disassembly:
push 0xffffffffffffffff
push 0x60d843
mov eax, dword fs:[0]
push eax
sub esp, 0x154
push ebx
push ebp
push esi
push edi
mov eax, dword [0x67dc50]
xor eax, esp
push eax
lea eax, [esp + 0x168]
mov dword fs:[0], eax
mov ebx, ecx
mov dword [esp + 0x1c], ebx
mov eax, dword [esp + 0x178]
xor edi, edi
mov dword [ebx + 0x5c], eax
mov eax, dword [eax + 0x30]
lea esi, [ebx + 0x7c]
push edi
mov ecx, esi
mov dword [esp + 0x174], edi
mov dword [ebx + 0x58], eax
call fcn.005ee5c0
mov dword [esi], edi
mov ecx, dword [0x67df84]
cmp ecx, edi
je 0x408169
call dword [sym.imp.BMB_NX_C9.dll_public:_class_BMBMapMaterial____thiscall_BMBProduct::GetMapMaterial_void_]
mov dword [ebx + 0x78], eax
cmp eax, edi
jne 0x408169
push 0x24
call sub.MSVCR90.dll_void____cdecl_operator_new_unsigned_int_
mov esi, eax
add esp, 4
mov dword [esp + 0x88], esi
mov byte [esp + 0x170], 1
cmp esi, edi
je 0x40814f
mov ecx, esi
call dword [sym.imp.BMB_NX_C9.dll_public:_void___thiscall_BMBMapMaterial::constructor_void_]
mov dword [esi], vtable.BMBMapMaterial.0
jmp 0x408151
xor esi, esi
mov dword [ebx + 0x78], esi
mov ecx, dword [0x67df84]
push esi
mov byte [esp + 0x174], 0
call dword [sym.imp.BMB_NX_C9.dll_public:_void___thiscall_BMBProduct::PutMapMaterial_class_BMBMapMaterial__]
mov ecx, dword [0x67df90]
cmp ecx, edi
je 0x4098c0
call dword [sym.imp.BMA_C9.dll_public:_class_BMAInterface____thiscall_BMAProject::GetInterface_void_]
mov ecx, eax
call dword [sym.imp.BMA_C9.dll_public:_class_BMAIfBD____thiscall_BMAInterface::GetBD_void_]
mov ebp, eax
push edi
mov ecx, ebp
mov dword [esp + 0x94], ebp
call dword [sym.imp.BMA_C9.dll_public:_class_BMAIfBDLayer____thiscall_BMAIfBD::GetLayer_int_]
lea ecx, [esp + 0x94]
call fcn.00405fd0
push edi
lea ecx, [esp + 0x98]
mov byte [esp + 0x174], 2
call fcn.005e99d0
lea eax, [esp + 0x188]
push 0x62dc24
push eax
mov dword [esp + 0x9c], edi
call fcn.005e8db0
add esp, 8
test eax, eax
je 0x408261
mov ecx, ebp
xor edi, edi
call dword [sym.imp.BMA_C9.dll_public:_int___thiscall_BMAIfBD::CountLayer_void_]
test eax, eax
jle 0x40828c
mov edi, edi
push edi
mov ecx, ebp
call dword [sym.imp.BMA_C9.dll_public:_class_BMAIfBDLayer____thiscall_BMAIfBD::GetLayer_int_]
cmp byte [eax + 0x1c], 1
jne 0x408252
mov eax, dword [eax + 0xc]
push eax
lea ecx, [esp + 0xa4]
push ecx
mov ecx, ebx
call fcn.00406e90
mov esi, eax
mov edx, dword [esp + 0x94]
push edx
lea ecx, [esp + 0x98]
mov byte [esp + 0x174], 3
call fcn.005e99d0
mov ecx, dword [esi + 4]
mov esi, dword [esi]
push ecx
push esi
mov ecx, eax
call fcn.005e8730
lea ecx, [esp + 0xa0]
mov byte [esp + 0x170], 2
call fcn.005e8710
mov ecx, ebp
inc edi
call dword [sym.imp.BMA_C9.dll_public:_int___thiscall_BMAIfBD::CountLayer_void_]
cmp edi, eax
jl 0x4081f0
jmp 0x40828c
mov eax, dword [esp + 0x94]
push eax
lea ecx, [esp + 0x98]
call fcn.005e99d0
mov ecx, dword [esp + 0x18c]
mov edx, dword [esp + 0x188]
push ecx
push edx
mov ecx, eax
call fcn.005e8730
mov esi, dword [sym.imp.BMA_C9.dll_public:_class_ATL::CStringT_char__class_StrTraitMFC_DLL_char__class_ATL::ChTraitsCRT_char______thiscall_BMAIfBD::GetBaseLayerNameOfSimpleShape_int_]
push 0
lea eax, [esp + 0xb8]
push eax
mov ecx, ebp
call esi
mov eax, dword [eax]
push eax
lea ecx, [esp + 0xc8]
push ecx
mov ecx, ebx
mov byte [esp + 0x178], 4
call fcn.00406e90
lea ecx, [esp + 0xb4]
mov byte [esp + 0x170], 6
call dword [sym.imp.mfc90.dll_Ordinal_601]
push 1
lea edx, [esp + 0xb4]
push edx
mov ecx, ebp
call esi
mov eax, dword [eax]
push eax
lea eax, [esp + 0xbc]
push eax
mov ecx, ebx
mov byte [esp + 0x178], 7
call fcn.00406e90
lea ecx, [esp + 0xb0]
mov byte [esp + 0x170], 9
call dword [sym.imp.mfc90.dll_Ordinal_601]
mov edx, dword [esp + 0xc8]
mov eax, dword [esp + 0xc4]
push edx
lea ecx, [ebx + 0x30]
push eax
call fcn.005e8730
mov edx, dword [esp + 0xbc]
mov eax, dword [esp + 0xb8]
push edx
lea ecx, [ebx + 0x3c]
push eax
call fcn.005e8730
mov ecx, ebp
call dword [sym.imp.BMA_C9.dll_public:_float___thiscall_BMAIfBD::GetMinLength_void_]
fstp dword [ebx + 0x48]
mov ecx, ebp
call dword [sym.imp.BMA_C9.dll_public:_float___thiscall_BMAIfBD::GetMinDiameter_void_]
fstp dword [ebx + 0x4c]
mov ecx, ebp
call dword [sym.imp.BMA_C9.dll_public:_int___thiscall_BMAIfBD::GetDivideNum_void_]
cmp eax, 0x168
mov dword [ebx + 0x50], eax
jle 0x40836b
mov dword [ebx + 0x50], 0x168
mov ecx, dword [ebx + 0x5c]
mov eax, dword [ecx + 0x3c]
xor edi, edi
xor ebp, ebp
mov dword [esp + 0x20], edi
test eax, eax
jle 0x4083e1
mov eax, dword [ebx + 0x5c]
mov eax, dword [eax + 0x40]
movzx edx, bp
mov esi, dword [eax + edx*4]
lea eax, [eax + edx*4]
test esi, esi
je 0x4083b6
mov eax, dword [esi + 8]
test eax, eax
jne 0x4083b2
mov edi, dword [esi + 4]
and edi, 0x7f
call fcn.004fe0e0
mov eax, dword [eax + edi*4 - 4]
push esi
mov ecx, eax
call fcn.004fd530
mov edi, dword [esp + 0x20]
mov esi, eax
jmp 0x4083b8
xor esi, esi
mov edx, dword [esi]
mov eax, dword [edx + 0x3c]
mov ecx, esi
call eax
movzx ecx, ax
cmp ecx, edi
jle 0x4083d8
mov edx, dword [esi]
mov eax, dword [edx + 0x3c]
mov ecx, esi
call eax
movzx edi, ax
mov dword [esp + 0x20], edi
mov ecx, dword [ebx + 0x5c]
inc ebp
cmp ebp, dword [ecx + 0x3c]
jl 0x40837d
xor esi, esi
test edi, edi
jl 0x408414
lea ebp, [ebx + 0x6c]
lea ebx, [ebx]
cmp esi, dword [ebp]
jge 0x4083fd
mov edx, dword [ebp + 8]
lea eax, [edx + esi*4]
jmp 0x408405
push esi
mov ecx, ebp
call fcn.005ee1f0
xor ecx, ecx
cmp dword [ebx + 4], ecx
sete cl
inc esi
cmp esi, edi
mov dword [eax], ecx
jle 0x4083f0
cmp dword [ebx + 4], 0
je 0x4085b6
lea ecx, [esp + 0xd0]
call fcn.005ea770
mov ecx, dword [ebx + 0x5c]
push 3
mov byte [esp + 0x174], 0xa
call fcn.004dee40
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0x58]
call eax
push eax
lea ecx, [esp + 0x8c]
call fcn.004b7700
lea ecx, [esp + 0x88]
mov byte [esp + 0x170], 0xb
call fcn.004b7720
lea ecx, [esp + 0x88]
call fcn.004f32d0
test eax, eax
je 0x4084de
jmp 0x408480
lea ecx, [esp + 0x88]
call fcn.004f32d0
mov esi, eax
mov edx, dword [esi]
mov eax, dword [edx + 0x38]
mov ecx, esi
call eax
cmp eax, 0xe
je 0x4084aa
mov edx, dword [esi]
mov eax, dword [edx + 0x38]
mov ecx, esi
call eax
cmp eax, 0xf
jne 0x4084c2
mov ecx, esi
call fcn.0046d010
test eax, eax
je 0x4084c2
push eax
lea ecx, [esp + 0xd4]
call fcn.005ea570
lea ecx, [esp + 0x88]
call fcn.004b7750
lea ecx, [esp + 0x88]
call fcn.004f32d0
test eax, eax
jne 0x408480
lea ecx, [esp + 0xd0]
push ecx
lea ecx, [esp + 0xa4]
call fcn.005ea970
lea ecx, [esp + 0xa0]
mov byte [esp + 0x170], 0xc
call fcn.005ea910
mov eax, dword [esp + 0xa8]
test eax, eax
je 0x40857a
lea ebp, [eax + 0x4c]
mov dword [esp + 0x14], eax
movzx eax, word [ebp]
xor edx, edx
xor esi, esi
cmp dx, ax
jae 0x408563
lea edi, [ebx + 0x6c]
jmp 0x408530
mov ecx, dword [esp + 0x14]
push esi
call fcn.004b5e90
movzx eax, word [eax]
cmp eax, dword [edi]
jge 0x408549
mov ecx, dword [edi + 8]
lea eax, [ecx + eax*4]
jmp 0x408551
push eax
mov ecx, edi
call fcn.005ee1f0
mov dword [eax], 1
movzx eax, word [ebp]
movzx edx, ax
inc esi
cmp esi, edx
jl 0x408530
lea ecx, [esp + 0xa0]
call fcn.005ea930
mov eax, dword [esp + 0xa8]
test eax, eax
jne 0x408511
lea ecx, [esp + 0xa0]
mov byte [esp + 0x170], 0xb
call fcn.004ed1b0
lea ecx, [esp + 0x88]
mov byte [esp + 0x170], 0xa
call fcn.004ed1b0
lea ecx, [esp + 0xd0]
mov byte [esp + 0x170], 9
call fcn.005ea800
lea ecx, [esp + 0x2c]
call fcn.00405fe0
fldz
xor edi, edi
fstp dword [ebx + 0x54]
cmp dword [ebx + 0x58], edi
mov byte [esp + 0x170], 0xd
mov dword [esp + 0x24], 1
jle 0x4088fe
nop
mov eax, dword [ebx + 0x5c]
mov ecx, dword [eax + 0x30]
movzx esi, di
cmp ecx, esi
jle 0x40861e
mov eax, dword [eax + 0x34]
mov ebp, dword [eax + esi*4]
lea eax, [eax + esi*4]
test ebp, ebp
je 0x40861e
mov eax, dword [ebp + 8]
test eax, eax
jne 0x408620
mov ebx, dword [ebp + 4]
and ebx, 0x7f
call fcn.004fe0e0
mov ebx, dword [eax + ebx*4 - 4]
push ebp
mov ecx, ebx
call fcn.004fd530
mov ebx, dword [esp + 0x1c]
jmp 0x408620
xor eax, eax
cmp dword [ebx + 0x2c], 0
mov dword [esp + 0x2c], eax
mov dword [esp + 0x30], 0
mov dword [esp + 0x6c], 1
je 0x408689
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0x48]
call eax
test eax, eax
je 0x408689
mov ecx, dword [esp + 0x2c]
mov ebp, ecx
test ecx, ecx
je 0x408689
call fcn.0046ce00
test eax, eax
je 0x408689
mov ecx, ebp
call fcn.0046ce00
mov dword [esp + 0x30], eax
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0x3c]
call eax
mov ecx, dword [esp + 0x180]
movzx eax, ax
shl eax, 5
add eax, dword [ecx + 8]
movzx eax, word [eax + 0x10]
movzx edx, ax
mov dword [esp + 0x6c], edx
push str.Conductive_
lea ecx, [esp + 0x38]
call fcn.005e8ed0
lea eax, [edi + 1]
push eax
lea ecx, [esp + 0x38]
mov dword [esp + 0x24], eax
call fcn.005e8ff0
mov ax, word [esp + 0x24]
mov word [esp + 0x50], ax
test edi, edi
jne 0x4086d9
mov ecx, dword [ebx + 0x58]
mov dx, cx
mov dword [esp + 0x40], 1
mov dword [esp + 0x44], ecx
mov byte [esp + 0x58], 2
mov word [esp + 0x54], dx
mov byte [esp + 0x7d], 0
jmp 0x408732
mov eax, dword [ebx + 0x58]
lea ecx, [eax - 1]
cmp edi, ecx
jne 0x408708
mov edx, 1
mov dword [esp + 0x40], 2
mov dword [esp + 0x44], 1
mov byte [esp + 0x58], 3
mov word [esp + 0x54], dx
mov byte [esp + 0x7d], dl
jmp 0x408732
sub eax, edi
dec eax
cmp edi, eax
setg al
add al, 4
xor ecx, ecx
mov dword [esp + 0x40], 3
mov dword [esp + 0x44], 0
mov byte [esp + 0x58], al
mov word [esp + 0x54], cx
mov byte [esp + 0x7d], 2
mov edx, dword [esp + 0x7d]
mov ecx, dword [esp + 0x90]
push edx
xor ebp, ebp
push 5
mov dword [esp + 0x50], ebp
mov byte [esp + 0x5e], 1
mov byte [esp + 0x5f], 5
call dword [sym.imp.BMA_C9.dll_public:_bool___thiscall_BMAIfBD::GetImportElement_unsigned_char__unsigned_char_]
sub esp, 0xc
lea eax, [esp + 0xa0]
mov ecx, esp
mov dword [esp + 0x94], esp
push eax
call fcn.005e9b60
sub esp, 0xc
lea edx, [esp + 0x4c]
mov ecx, esp
mov dword [esp + 0x2c], esp
push edx
mov byte [esp + 0x18c], 0xe
call fcn.005e8e10
mov ecx, ebx
mov byte [esp + 0x188], 0xd
call fcn.00406dc0
mov edx, dword [esp + 0x180]
xor ecx, ecx
cmp eax, ebp
setne cl
inc dword [esp + 0x24]
mov eax, esi
shl eax, 5
add eax, dword [edx + 0x10]
mov edx, dword [esp + 0x184]
mov dword [esp + 0x4c], ebp
mov dword [esp + 0x80], ecx
movzx eax, word [eax + 0x10]
mov dword [esp + 0x68], eax
mov eax, dword [edx + 0x14]
lea ecx, [esi + esi*2]
lea eax, [eax + ecx*4]
movzx ecx, byte [eax + 8]
and ecx, 1
mov dword [esp + 0x70], ecx
mov ecx, dword [esp + 0x17c]
push edi
call fcn.004792f0
mov ecx, eax
call fcn.00478890
cmp dword [esp + 0x198], 1
mov ebp, eax
jne 0x40883b
test ebp, ebp
je 0x408829
mov edx, dword [ebp + 0x14]
lea eax, [esp + 0x14]
push eax
mov dword [esp + 0x18], edx
call fcn.00405da0
fstp dword [esp + 0x7c]
fld dword [ebx + 0x54]
add esp, 4
fadd dword [esp + 0x78]
fstp dword [ebx + 0x54]
jmp 0x408841
fldz
fstp dword [esp + 0x78]
fld dword [ebx + 0x54]
fadd dword [esp + 0x78]
fstp dword [ebx + 0x54]
jmp 0x408841
fldz
fstp dword [esp + 0x78]
test ebp, ebp
je 0x408852
mov ebp, dword [ebp + 0x18]
push ebp
lea ecx, [esp + 0x60]
call fcn.005e8ed0
mov eax, dword [ebx + 0x5c]
cmp dword [eax + 0x30], esi
jle 0x408886
mov ecx, dword [eax + 0x34]
lea esi, [ecx + esi*4]
mov esi, dword [esi]
test esi, esi
je 0x408886
mov eax, dword [esi + 8]
test eax, eax
jne 0x408888
mov ebp, dword [esi + 4]
and ebp, 0x7f
call fcn.004fe0e0
mov ebp, dword [eax + ebp*4 - 4]
push esi
mov ecx, ebp
call fcn.004fd530
jmp 0x408888
xor eax, eax
mov eax, dword [eax + 0x34]
cmp eax, 1
je 0x40889a
mov byte [esp + 0x59], 0
cmp eax, 2
jne 0x40889e
mov byte [esp + 0x59], al
mov eax, dword [ebx + 0x60]
lea edx, [esp + 0x2c]
lea ecx, [ebx + 0x60]
push edx
push eax
call fcn.00407d00
mov ecx, eax
call fcn.00406110
mov esi, dword [esp + 0x20]
cmp esi, dword [ebx + 0x58]
jge 0x4088f3
mov ecx, dword [esp + 0x19c]
mov edx, dword [esp + 0x17c]
push ecx
push edx
push edi
mov ecx, ebx
call fcn.00407c30
fstp dword [esp + 0x14]
mov eax, dword [ebx + 0x7c]
lea ecx, [ebx + 0x7c]
push eax
call fcn.005ee5c0
fld dword [esp + 0x14]
fst dword [eax]
fadd dword [ebx + 0x54]
fstp dword [ebx + 0x54]
mov edi, esi
cmp edi, dword [ebx + 0x58]
jl 0x4085e0
mov ecx, dword [0x67df84]
xor ebp, ebp
cmp ecx, ebp
je 0x408a0a
lea edx, [esp + 0xe0]
push edx
call dword [sym.imp.BMB_NX_C9.dll_public:_void___thiscall_BMBProduct::GetModelingRule_struct_BMB_ModelingRule___]
mov edi, dword [ebx + 0x60]
lea ecx, [esp + 0x110]
call fcn.00405fe0
fldz
lea esi, [ebp + 1]
fstp dword [esp + 0x18]
cmp edi, esi
mov byte [esp + 0x170], 0xf
jle 0x408995
mov eax, esi
imul eax, eax, 0x58
add eax, dword [ebx + 0x68]
lea ecx, [esp + 0x110]
push eax
call fcn.00406110
cmp esi, 1
jne 0x40896a
fld dword [esp + 0x15c]
fstp dword [esp + 0xec]
jmp 0x408990
lea ecx, [edi - 1]
cmp esi, ecx
jne 0x408981
fld dword [esp + 0x15c]
fstp dword [esp + 0xf0]
jmp 0x408990
fld dword [esp + 0x15c]
fadd dword [esp + 0x18]
fstp dword [esp + 0x18]
inc esi
cmp esi, edi
jl 0x408940
fld dword [esp + 0x18]
dec edi
mov dword [esp + 0x14], edi
fidiv dword [esp + 0x14]
mov ecx, dword [ebx + 0x7c]
cmp ecx, ebp
mov dword [esp + 0x14], ecx
fstp dword [esp + 0xf4]
fldz
fstp dword [esp + 0x18]
jle 0x4089d3
mov eax, dword [ebx + 0x84]
fld dword [esp + 0x18]
add eax, 4
sub ecx, 1
fadd dword [eax - 4]
fstp dword [esp + 0x18]
jne 0x4089c0
fld dword [esp + 0x18]
mov ecx, dword [0x67df84]
fidiv dword [esp + 0x14]
lea edx, [esp + 0xe0]
push edx
fstp dword [esp + 0xfc]
call dword [sym.imp.BMB_NX_C9.dll_public:_void___thiscall_BMBProduct::PutModelingRule_struct_BMB_ModelingRule___]
lea ecx, [esp + 0x110]
mov byte [esp + 0x170], 0xd
call fcn.004060b0
mov ecx, dword [ebx + 0x5c]
push 3
call fcn.004dee40
mov dword [esp + 0x2c], eax
mov dword [esp + 0x30], ebp
mov dword [esp + 0x6c], 1
cmp dword [ebx + 0x2c], ebp
je 0x408a78
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0x48]
call eax
test eax, eax
je 0x408a78
mov ecx, dword [esp + 0x2c]
mov esi, ecx
cmp ecx, ebp
je 0x408a78
call fcn.0046ce00
test eax, eax
je 0x408a78
mov ecx, esi
call fcn.0046ce00
mov dword [esp + 0x30], eax
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0x3c]
call eax
mov ecx, dword [esp + 0x180]
movzx eax, ax
shl eax, 5
add eax, dword [ecx + 8]
movzx eax, word [eax + 0x10]
movzx edx, ax
mov dword [esp + 0x6c], edx
push str.Hole
lea ecx, [esp + 0x38]
call fcn.005e8ed0
fldz
mov ecx, dword [esp + 0x180]
mov esi, dword [esp + 0x24]
xor eax, eax
mov word [esp + 0x54], ax
mov eax, dword [ecx + 8]
add eax, 0x60
mov dword [esp + 0x40], ebp
mov byte [esp + 0x58], 6
mov byte [esp + 0x7d], 0
mov dword [esp + 0x44], ebp
mov word [esp + 0x50], si
mov dword [esp + 0x48], ebp
mov byte [esp + 0x57], 2
mov byte [esp + 0x56], 3
mov dword [esp + 0x4c], ebp
movzx eax, word [eax + 0x10]
movzx edx, ax
mov eax, dword [esp + 0x184]
mov eax, dword [eax + 0xc]
add eax, 0x24
mov dword [esp + 0x68], edx
movzx ecx, byte [eax + 8]
fstp dword [esp + 0x78]
and ecx, 1
mov dword [esp + 0x70], ecx
push 0x62dc24
lea ecx, [esp + 0x60]
mov byte [esp + 0x5d], 0
call fcn.005e8ed0
sub esp, 0xc
lea edx, [esp + 0xa0]
mov ecx, esp
mov dword [esp + 0x94], esp
push edx
mov byte [esp + 0x8d], 0
call fcn.005e9b60
sub esp, 0xc
lea eax, [esp + 0x4c]
mov ecx, esp
mov dword [esp + 0x2c], esp
push eax
mov byte [esp + 0x18c], 0x10
call fcn.005e8e10
mov ecx, ebx
mov byte [esp + 0x188], 0xd
call fcn.00406dc0
xor ecx, ecx
cmp eax, 1
mov eax, dword [ebx + 0x60]
sete cl
lea edx, [esp + 0x2c]
push edx
push eax
mov dword [esp + 0x88], ecx
lea ecx, [ebx + 0x60]
mov dword [esp + 0x20], ecx
call fcn.00407d00
mov ecx, eax
call fcn.00406110
inc esi
cmp dword [ebx + 0x58], ebp
mov dword [esp + 0x24], esi
mov dword [esp + 0x28], ebp
jle 0x409138
jmp 0x408b90
mov eax, dword [ebx + 0x5c]
movzx ecx, word [esp + 0x28]
mov edx, dword [eax + 0x30]
cmp edx, ecx
jle 0x408bcc
mov edx, dword [eax + 0x34]
mov esi, dword [edx + ecx*4]
lea eax, [edx + ecx*4]
cmp esi, ebp
je 0x408bcc
mov eax, dword [esi + 8]
cmp eax, ebp
jne 0x408bce
mov edi, dword [esi + 4]
and edi, 0x7f
call fcn.004fe0e0
mov edi, dword [eax + edi*4 - 4]
push esi
mov ecx, edi
call fcn.004fd530
jmp 0x408bce
xor eax, eax
cmp dword [eax + 0x24], ebp
mov dword [esp + 0x84], eax
mov dword [esp + 0x20], ebp
jle 0x409126
fldz
push 0x62dc24
lea ecx, [esp + 0x60]
fstp dword [esp + 0x7c]
mov byte [esp + 0x5d], 0
call fcn.005e8ed0
mov esi, dword [esp + 0x84]
mov ecx, esi
call fcn.004fed00
mov eax, dword [esi + 0x24]
movzx esi, word [esp + 0x20]
cmp esi, eax
jge 0x408c3e
mov edi, dword [esp + 0x84]
mov eax, dword [edi + 0x24]
add edi, 0x20
cmp esi, eax
jl 0x408c33
mov ecx, esi
sub ecx, eax
inc ecx
push ecx
mov ecx, edi
call fcn.00407fc0
mov eax, dword [edi + 8]
lea edx, [esi + esi*2]
lea edi, [eax + edx*4]
jmp 0x408c40
xor edi, edi
mov ecx, edi
mov dword [esp + 0x14], ebp
call fcn.004f32d0
dec eax
cmp eax, 0x10
ja case.0x408c5c.9
movzx ecx, byte [eax + 0x40990c]
jmp dword [ecx*4 + 0x4098f4]
cmp dword [ebx + 8], ebp
je 0x40910d
mov dword [esp + 0x48], 2
mov dword [esp + 0x4c], 1
mov byte [esp + 0x57], 9
mov byte [esp + 0x56], 4
jmp 0x408e5a
mov ecx, edi
mov dword [esp + 0x48], 1
mov dword [esp + 0x4c], ebp
call fcn.004f32d0
cmp eax, 2
setne dl
inc dl
mov ecx, edi
mov byte [esp + 0x7c], dl
mov byte [esp + 0x57], 6
mov byte [esp + 0x56], 4
call fcn.004878a0
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0x38]
call eax
cmp eax, ebp
je 0x408d21
mov ecx, str.Resist_A
lea ecx, [ecx]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x408cf0
test dl, dl
je 0x408cec
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x408cf0
add eax, 2
add ecx, 2
test dl, dl
jne 0x408cd0
xor eax, eax
jmp 0x408cf5
sbb eax, eax
sbb eax, 0xffffffff
cmp eax, ebp
jne 0x408d21
mov ecx, dword [esp + 0x17c]
call fcn.004792f0
mov esi, eax
mov ecx, esi
call fcn.00478870
test ax, ax
jbe 0x408dd8
push ebp
mov ecx, esi
call fcn.004788f0
jmp 0x408d8b
mov ecx, edi
call fcn.004878a0
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0x38]
call eax
cmp eax, ebp
je 0x408dd8
mov ecx, str.Resist_B
mov edi, edi
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x408d60
test dl, dl
je 0x408d5c
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x408d60
add eax, 2
add ecx, 2
test dl, dl
jne 0x408d40
xor eax, eax
jmp 0x408d65
sbb eax, eax
sbb eax, 0xffffffff
cmp eax, ebp
jne 0x408dd8
mov ecx, dword [esp + 0x17c]
call fcn.004792f0
mov esi, eax
mov ecx, esi
call fcn.00478880
test ax, ax
jbe 0x408dd8
push ebp
mov ecx, esi
call fcn.00478950
cmp dword [esp + 0x198], 1
mov esi, eax
jne 0x408dc7
cmp esi, ebp
je 0x408dd8
mov eax, dword [esi + 0x10]
cmp eax, ebp
jle 0x408dc7
lea ecx, [esp + 0x88]
push ecx
mov dword [esp + 0x8c], eax
call fcn.00405da0
fstp dword [esp + 0x7c]
fld dword [ebx + 0x54]
add esp, 4
fadd dword [esp + 0x78]
fstp dword [ebx + 0x54]
cmp esi, ebp
je 0x408dd8
mov esi, dword [esi + 0x14]
push esi
lea ecx, [esp + 0x60]
call fcn.005e8ed0
cmp dword [ebx + 0xc], ebp
je 0x40910d
jmp 0x408e5a
cmp dword [ebx + 0x10], ebp
je 0x40910d
mov dword [esp + 0x48], 3
mov dword [esp + 0x4c], 1
mov byte [esp + 0x57], 7
mov byte [esp + 0x56], 4
jmp 0x408e5a
cmp dword [ebx + 0x14], ebp
je 0x40910d
mov dword [esp + 0x48], 3
mov dword [esp + 0x4c], 1
mov byte [esp + 0x57], 8
mov byte [esp + 0x56], 4
jmp 0x408e5a
cmp dword [ebx + 0x14], ebp
jmp 0x408de6
cmp dword [ebx + 0x18], ebp
je 0x40910d
mov eax, 1
mov dword [esp + 0x48], 4
mov dword [esp + 0x4c], eax
mov byte [esp + 0x57], 0xb
mov byte [esp + 0x56], 2
mov dword [esp + 0x14], eax
mov esi, dword [esp + 0x28]
mov dx, word [esp + 0x24]
lea eax, [esi + 1]
mov ecx, edi
mov word [esp + 0x50], dx
mov word [esp + 0x52], ax
call fcn.004878a0
mov ecx, eax
mov dword [esp + 0x2c], ecx
mov dword [esp + 0x30], ebp
mov dword [esp + 0x6c], 1
cmp dword [ebx + 0x2c], ebp
je 0x408ee7
mov edx, dword [ecx]
mov eax, dword [edx + 0x48]
call eax
test eax, eax
je 0x408ee3
mov ecx, dword [esp + 0x2c]
mov esi, ecx
cmp ecx, ebp
je 0x408f34
call fcn.0046ce00
test eax, eax
je 0x408edf
mov ecx, esi
call fcn.0046ce00
mov dword [esp + 0x30], eax
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0x3c]
call eax
mov ecx, dword [esp + 0x180]
movzx eax, ax
shl eax, 5
add eax, dword [ecx + 8]
movzx eax, word [eax + 0x10]
movzx edx, ax
mov dword [esp + 0x6c], edx
mov esi, dword [esp + 0x28]
mov ecx, dword [esp + 0x2c]
cmp dword [esp + 0x14], ebp
je 0x408f02
mov eax, dword [esp + 0x30]
push eax
push ecx
mov ecx, ebx
call fcn.00406830
test eax, eax
jne 0x40910d
mov ecx, edi
call fcn.004878a0
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0x38]
call eax
push eax
lea ecx, [esp + 0x38]
call fcn.005e8ed0
cmp esi, ebp
jne 0x408f3a
mov dword [esp + 0x40], 1
mov byte [esp + 0x58], 2
mov byte [esp + 0x7d], 0
jmp 0x408f74
mov esi, dword [esp + 0x28]
jmp 0x408ee7
mov eax, dword [ebx + 0x58]
lea ecx, [eax - 1]
cmp esi, ecx
jne 0x408f58
mov dword [esp + 0x40], 2
mov byte [esp + 0x58], 3
mov byte [esp + 0x7d], 1
jmp 0x408f74
sub eax, esi
dec eax
cmp esi, eax
setg dl
add dl, 4
mov dword [esp + 0x40], 3
mov byte [esp + 0x58], dl
mov byte [esp + 0x7d], 2
cmp dword [esp + 0x48], 4
jne 0x408f80
mov byte [esp + 0x7d], 0
mov ecx, edi
mov dword [esp + 0x44], ebp
call fcn.004878a0
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0x3c]
call eax
mov ecx, dword [esp + 0x180]
movzx eax, ax
shl eax, 5
add eax, dword [ecx + 0x14]
mov ecx, edi
movzx eax, word [eax + 0x10]
movzx edx, ax
mov dword [esp + 0x68], edx
call fcn.004878a0
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0x3c]
call eax
mov edx, dword [esp + 0x184]
movzx eax, ax
lea ecx, [eax + eax*2]
mov eax, dword [edx + 0x18]
lea eax, [eax + ecx*4]
movzx ecx, byte [eax + 8]
lea edx, [esp + 0xc4]
push edx
lea eax, [esp + 0x38]
and ecx, 1
push eax
mov dword [esp + 0x78], ecx
mov dword [esp + 0x88], 1
call fcn.005e8de0
add esp, 8
test eax, eax
je 0x409086
lea ecx, [esp + 0xb8]
push ecx
lea edx, [esp + 0x38]
push edx
call fcn.005e8de0
add esp, 8
test eax, eax
je 0x409086
mov eax, dword [esp + 0x7d]
mov ecx, dword [esp + 0x57]
push eax
push ecx
mov ecx, dword [esp + 0x98]
call dword [sym.imp.BMA_C9.dll_public:_bool___thiscall_BMAIfBD::GetImportElement_unsigned_char__unsigned_char_]
sub esp, 0xc
lea edx, [esp + 0xa0]
mov ecx, esp
mov dword [esp + 0x94], esp
push edx
call fcn.005e9b60
sub esp, 0xc
lea eax, [esp + 0x4c]
mov ecx, esp
mov dword [esp + 0x2c], esp
push eax
mov byte [esp + 0x18c], 0x11
call fcn.005e8e10
mov ecx, ebx
mov byte [esp + 0x188], 0xd
call fcn.00406dc0
xor ecx, ecx
cmp eax, ebp
setne cl
mov dword [esp + 0x80], ecx
mov edx, dword [esp + 0x18]
mov edi, dword [edx]
lea ecx, [esp + 0x110]
call fcn.00405fe0
xor esi, esi
cmp edi, ebp
mov byte [esp + 0x170], 0x12
jle 0x4090d9
xor ebp, ebp
mov eax, dword [ebx + 0x68]
add eax, ebp
push eax
lea ecx, [esp + 0x114]
call fcn.00406110
lea ecx, [esp + 0x2c]
push ecx
lea ecx, [esp + 0x114]
call fcn.004061d0
test eax, eax
jne 0x4090f7
inc esi
add ebp, 0x58
cmp esi, edi
jl 0x4090a8
xor ebp, ebp
mov ecx, dword [esp + 0x18]
mov eax, dword [ecx]
lea edx, [esp + 0x2c]
push edx
push eax
call fcn.00407d00
mov ecx, eax
call fcn.00406110
inc dword [esp + 0x24]
jmp 0x4090f9
xor ebp, ebp
lea ecx, [esp + 0x110]
mov byte [esp + 0x170], 0xd
call fcn.004060b0
mov eax, dword [esp + 0x20]
mov ecx, dword [esp + 0x84]
inc eax
cmp eax, dword [ecx + 0x24]
mov dword [esp + 0x20], eax
jl 0x408be2
mov eax, dword [esp + 0x28]
inc eax
cmp eax, dword [ebx + 0x58]
mov dword [esp + 0x28], eax
jl 0x408b90
fldz
xor edx, edx
push 0x62dc24
fstp dword [esp + 0x7c]
lea ecx, [esp + 0x60]
mov word [esp + 0x56], dx
mov byte [esp + 0x5d], dl
call fcn.005e8ed0
mov eax, dword [ebx + 0x5c]
cmp dword [eax + 0x3c], ebp
mov dword [esp + 0x28], ebp
jle 0x40953d
mov ebx, dword [esp + 0x1c]
mov eax, dword [ebx + 0x5c]
mov edx, dword [eax + 0x40]
movzx ecx, bp
mov esi, dword [edx + ecx*4]
lea eax, [edx + ecx*4]
test esi, esi
je 0x4091a7
mov eax, dword [esi + 8]
test eax, eax
jne 0x40919c
mov edi, dword [esi + 4]
and edi, 0x7f
call fcn.004fe0e0
mov edi, dword [eax + edi*4 - 4]
push esi
mov ecx, edi
call fcn.004fd530
mov esi, eax
mov dword [esp + 0x84], eax
jmp 0x4091b0
xor esi, esi
mov dword [esp + 0x84], esi
cmp dword [ebx + 0x58], 0
mov dword [esp + 0x20], 0
jle 0x40927b
mov eax, dword [esp + 0x1c]
mov eax, dword [eax + 0x5c]
movzx ecx, word [esp + 0x20]
mov edx, dword [eax + 0x30]
cmp edx, ecx
jle 0x409204
mov edx, dword [eax + 0x34]
mov esi, dword [edx + ecx*4]
lea ecx, [edx + ecx*4]
test esi, esi
je 0x409204
mov eax, dword [esi + 8]
test eax, eax
jne 0x409200
mov edi, dword [esi + 4]
and edi, 0x7f
call fcn.004fe0e0
mov edi, dword [eax + edi*4 - 4]
push esi
mov ecx, edi
call fcn.004fd530
mov edi, eax
jmp 0x409206
xor edi, edi
xor ebx, ebx
cmp dword [edi + 0x24], ebx
jle 0x40925a
mov ecx, edi
call fcn.004fed00
mov eax, dword [edi + 0x24]
movzx esi, bx
cmp esi, eax
jge 0x409240
mov eax, dword [edi + 0x24]
cmp esi, eax
lea ebp, [edi + 0x20]
jl 0x409235
mov ecx, esi
sub ecx, eax
inc ecx
push ecx
mov ecx, ebp
call fcn.00407fc0
mov eax, dword [ebp + 8]
lea edx, [esi + esi*2]
lea ecx, [eax + edx*4]
jmp 0x409242
xor ecx, ecx
call fcn.004878a0
cmp eax, dword [esp + 0x84]
je 0x409524
inc ebx
cmp ebx, dword [edi + 0x24]
jl 0x40920d
mov eax, dword [esp + 0x20]
mov ecx, dword [esp + 0x1c]
inc eax
cmp eax, dword [ecx + 0x58]
mov dword [esp + 0x20], eax
jl 0x4091c2
mov esi, dword [esp + 0x84]
mov ebp, dword [esp + 0x28]
mov edx, dword [esp + 0x1c]
cmp dword [edx + 0x2c], 0
mov ecx, esi
mov ebx, 1
mov dword [esp + 0x2c], ecx
mov dword [esp + 0x30], 0
mov dword [esp + 0x6c], ebx
je 0x4092ed
mov eax, dword [esi]
mov edx, dword [eax + 0x48]
call edx
test eax, eax
je 0x4092e9
mov ecx, dword [esp + 0x2c]
mov edi, ecx
test ecx, ecx
je 0x4092ed
call fcn.0046ce00
test eax, eax
je 0x4092e9
mov ecx, edi
call fcn.0046ce00
mov dword [esp + 0x30], eax
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0x3c]
call eax
mov ecx, dword [esp + 0x180]
movzx eax, ax
shl eax, 5
add eax, dword [ecx + 8]
movzx eax, word [eax + 0x10]
movzx edx, ax
mov dword [esp + 0x6c], edx
mov ecx, dword [esp + 0x2c]
mov eax, dword [esp + 0x30]
mov edi, dword [esp + 0x1c]
push eax
push ecx
mov ecx, edi
call fcn.00406830
test eax, eax
jne 0x409524
mov edx, dword [esi]
mov eax, dword [edx + 0x60]
mov ecx, esi
call eax
cmp eax, ebx
jne 0x409327
mov byte [esp + 0x58], 6
mov byte [esp + 0x57], 2
mov byte [esp + 0x56], 3
jmp 0x4093e8
mov edx, dword [esi]
mov eax, dword [edx + 0x38]
mov ecx, esi
call eax
push eax
lea ecx, [esp + 0xa4]
call fcn.005e9060
lea ecx, [esp + 0xa0]
push str.BendLine
push ecx
mov byte [esp + 0x178], 0x13
call fcn.005e8db0
add esp, 8
test eax, eax
je 0x40936a
mov byte [esp + 0x58], 6
mov byte [esp + 0x56], 3
jmp 0x4093cf
mov eax, dword [esp + 0xa0]
test eax, eax
je 0x40939b
push 0xc
push str.FlexibleArea
push eax
call dword [sym.imp.MSVCR90.dll_strncmp]
add esp, 0xc
test eax, eax
jne 0x40939b
mov byte [esp + 0x58], 1
mov byte [esp + 0x57], 7
mov byte [esp + 0x56], 3
jmp 0x4093d4
lea edx, [esp + 0xa0]
push str.BendArea
push edx
call fcn.005e8db0
add esp, 8
test eax, eax
je 0x4093c5
mov byte [esp + 0x58], 1
mov byte [esp + 0x57], 7
mov byte [esp + 0x56], 3
jmp 0x4093d4
mov byte [esp + 0x58], 0
mov byte [esp + 0x56], 2
mov byte [esp + 0x57], 0xb
lea ecx, [esp + 0xa0]
mov byte [esp + 0x170], 0xd
call fcn.005e8710
mov eax, dword [esi]
mov edx, dword [eax + 0x38]
mov ecx, esi
call edx
push eax
lea ecx, [esp + 0x38]
call fcn.005e8ed0
fldz
mov ax, word [esp + 0x24]
mov edx, dword [esp + 0x180]
mov word [esp + 0x50], ax
movzx ecx, bp
mov eax, ecx
shl eax, 5
add eax, dword [edx + 0x14]
mov edx, dword [esp + 0x184]
mov dword [esp + 0x40], 3
mov dword [esp + 0x44], 0
mov dword [esp + 0x48], 4
mov dword [esp + 0x4c], ebx
movzx eax, word [eax + 0x10]
mov dword [esp + 0x68], eax
mov eax, dword [edx + 0x18]
lea ecx, [ecx + ecx*2]
lea eax, [eax + ecx*4]
movzx ecx, byte [eax + 8]
fstp dword [esp + 0x78]
lea edx, [esp + 0xc4]
push edx
lea eax, [esp + 0x38]
and ecx, ebx
push eax
mov dword [esp + 0x78], ecx
mov byte [esp + 0x85], 0
mov dword [esp + 0x88], ebx
call fcn.005e8de0
add esp, 8
test eax, eax
je 0x409508
lea ecx, [esp + 0xb8]
push ecx
lea edx, [esp + 0x38]
push edx
call fcn.005e8de0
add esp, 8
test eax, eax
je 0x409508
mov eax, dword [esp + 0x7d]
mov ecx, dword [esp + 0x57]
push eax
push ecx
mov ecx, dword [esp + 0x98]
call dword [sym.imp.BMA_C9.dll_public:_bool___thiscall_BMAIfBD::GetImportElement_unsigned_char__unsigned_char_]
sub esp, 0xc
lea edx, [esp + 0xa0]
mov ecx, esp
mov dword [esp + 0x94], esp
push edx
call fcn.005e9b60
sub esp, 0xc
lea eax, [esp + 0x4c]
mov ecx, esp
mov dword [esp + 0x2c], esp
push eax
mov byte [esp + 0x18c], 0x14
call fcn.005e8e10
mov ecx, edi
mov byte [esp + 0x188], 0xd
call fcn.00406dc0
xor ecx, ecx
test eax, eax
setne cl
mov dword [esp + 0x80], ecx
mov ecx, dword [esp + 0x18]
mov eax, dword [ecx]
lea edx, [esp + 0x2c]
push edx
push eax
call fcn.00407d00
mov ecx, eax
call fcn.00406110
add dword [esp + 0x24], ebx
mov ebp, dword [esp + 0x28]
mov ecx, dword [esp + 0x1c]
mov edx, dword [ecx + 0x5c]
inc ebp
cmp ebp, dword [edx + 0x3c]
mov dword [esp + 0x28], ebp
jl 0x409167
mov esi, dword [esp + 0x1c]
mov ecx, dword [esi + 0x5c]
push 2
call fcn.004dee40
xor ebp, ebp
mov ebx, 1
mov dword [esp + 0x2c], eax
mov dword [esp + 0x30], ebp
mov dword [esp + 0x6c], ebx
cmp dword [esi + 0x2c], ebp
je 0x4095b4
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0x48]
call eax
test eax, eax
je 0x4095b4
mov ecx, dword [esp + 0x2c]
mov esi, ecx
cmp ecx, ebp
je 0x4095b4
call fcn.0046ce00
test eax, eax
je 0x4095b4
mov ecx, esi
call fcn.0046ce00
mov dword [esp + 0x30], eax
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0x3c]
call eax
mov esi, dword [esp + 0x180]
movzx eax, ax
shl eax, 5
add eax, dword [esi + 8]
movzx eax, word [eax + 0x10]
movzx ecx, ax
mov dword [esp + 0x6c], ecx
jmp 0x4095bb
mov esi, dword [esp + 0x180]
push str.BOARD_FIGURE
lea ecx, [esp + 0x38]
call fcn.005e8ed0
mov eax, dword [esi + 8]
mov edi, dword [esp + 0x24]
add eax, 0x40
mov dword [esp + 0x40], 3
mov byte [esp + 0x58], bl
mov dword [esp + 0x44], ebp
mov dword [esp + 0x48], 4
mov dword [esp + 0x4c], ebx
mov word [esp + 0x50], di
mov byte [esp + 0x56], 3
mov byte [esp + 0x57], 0xa
movzx eax, word [eax + 0x10]
movzx edx, ax
mov eax, dword [esp + 0x184]
mov eax, dword [eax + 0xc]
add eax, 0x18
mov dword [esp + 0x68], edx
test byte [eax + 8], bl
je 0x40961f
mov dword [esp + 0x70], ebx
cmp dword [esp + 0x198], ebx
jne 0x409631
mov ecx, dword [esp + 0x1c]
fld dword [ecx + 0x54]
jmp 0x409633
fldz
push 0x62dc24
fstp dword [esp + 0x7c]
lea ecx, [esp + 0x60]
mov byte [esp + 0x5d], 0
call fcn.005e8ed0
mov edx, dword [esp + 0x57]
mov ecx, dword [esp + 0x90]
push ebp
push edx
mov byte [esp + 0x85], 0
mov dword [esp + 0x88], ebx
call dword [sym.imp.BMA_C9.dll_public:_bool___thiscall_BMAIfBD::GetImportElement_unsigned_char__unsigned_char_]
movzx eax, al
cmp eax, ebx
jne 0x4096e0
sub esp, 0xc
lea eax, [esp + 0xa0]
mov ecx, esp
mov dword [esp + 0x94], esp
push eax
call fcn.005e9b60
sub esp, 0xc
lea edx, [esp + 0x4c]
mov ecx, esp
mov dword [esp + 0x2c], esp
push edx
mov byte [esp + 0x18c], 0x15
call fcn.005e8e10
mov ecx, dword [esp + 0x34]
mov byte [esp + 0x188], 0xd
call fcn.00406dc0
xor ecx, ecx
cmp eax, ebx
sete cl
lea edx, [esp + 0x2c]
push edx
mov dword [esp + 0x84], ecx
mov ecx, dword [esp + 0x1c]
mov eax, dword [ecx]
push eax
call fcn.00407d00
mov ecx, eax
call fcn.00406110
add edi, ebx
mov ecx, dword [esp + 0x1c]
mov ecx, dword [ecx + 0x5c]
push 5
call fcn.004dee40
mov edx, dword [esp + 0x1c]
mov dword [esp + 0x2c], eax
mov dword [esp + 0x30], ebp
mov dword [esp + 0x6c], ebx
cmp dword [edx + 0x2c], ebp
je 0x40974d
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0x48]
call eax
test eax, eax
je 0x40974d
mov ecx, dword [esp + 0x2c]
mov ebp, ecx
test ecx, ecx
je 0x40974b
call fcn.0046ce00
test eax, eax
je 0x40974b
mov ecx, ebp
call fcn.0046ce00
mov dword [esp + 0x30], eax
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0x3c]
call eax
movzx eax, ax
shl eax, 5
add eax, dword [esi + 8]
movzx eax, word [eax + 0x10]
movzx ecx, ax
mov dword [esp + 0x6c], ecx
xor ebp, ebp
push str.LAYOUT_AREA
lea ecx, [esp + 0x38]
call fcn.005e8ed0
mov eax, dword [esi + 8]
add eax, 0xa0
mov dword [esp + 0x40], 3
mov byte [esp + 0x58], 1
mov dword [esp + 0x44], ebp
mov dword [esp + 0x48], 4
mov dword [esp + 0x4c], ebx
mov word [esp + 0x50], di
mov byte [esp + 0x56], 4
mov byte [esp + 0x57], 7
movzx eax, word [eax + 0x10]
movzx edx, ax
mov eax, dword [esp + 0x184]
mov eax, dword [eax + 0xc]
add eax, 0x3c
mov dword [esp + 0x68], edx
test byte [eax + 8], 1
je 0x4097b1
mov dword [esp + 0x70], ebx
fldz
push 0x62dc24
lea ecx, [esp + 0x60]
fstp dword [esp + 0x7c]
mov byte [esp + 0x5d], 0
call fcn.005e8ed0
mov ecx, dword [esp + 0x57]
mov edi, dword [esp + 0x90]
mov esi, dword [sym.imp.BMA_C9.dll_public:_bool___thiscall_BMAIfBD::GetImportElement_unsigned_char__unsigned_char_]
push ebp
push ecx
mov ecx, edi
mov byte [esp + 0x85], 0
mov dword [esp + 0x88], ebx
call esi
movzx eax, al
cmp eax, ebp
jne 0x409804
mov edx, dword [esp + 0x57]
push ebx
push edx
mov ecx, edi
call esi
movzx eax, al
cmp eax, ebx
jne 0x409873
sub esp, 0xc
lea eax, [esp + 0xa0]
mov ecx, esp
mov dword [esp + 0x94], esp
push eax
call fcn.005e9b60
sub esp, 0xc
lea edx, [esp + 0x4c]
mov ecx, esp
mov dword [esp + 0x2c], esp
push edx
mov byte [esp + 0x18c], 0x16
call fcn.005e8e10
mov ecx, dword [esp + 0x34]
mov byte [esp + 0x188], 0xd
call fcn.00406dc0
xor ecx, ecx
cmp eax, ebx
sete cl
lea edx, [esp + 0x2c]
push edx
mov dword [esp + 0x84], ecx
mov ecx, dword [esp + 0x1c]
mov eax, dword [ecx]
push eax
call fcn.00407d00
mov ecx, eax
call fcn.00406110
lea ecx, [esp + 0x2c]
mov byte [esp + 0x170], 9
call fcn.004060b0
lea ecx, [esp + 0xb8]
mov byte [esp + 0x170], 6
call fcn.005e8710
lea ecx, [esp + 0xc4]
mov byte [esp + 0x170], 2
call fcn.005e8710
lea ecx, [esp + 0x94]
mov byte [esp + 0x170], 0
call fcn.005e9950
lea ecx, [esp + 0x188]
mov dword [esp + 0x170], 0xffffffff
call fcn.005e8710
mov ecx, dword [esp + 0x168]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x160
ret 0x28