Function at 0x4124a0
Capabilities:
Check for software breakpoints
Resolve function by parsing pe exports

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
push 0xffffffffffffffff
push 0x60e6c5
mov eax, dword fs:[0]
push eax
sub esp, 0x238
push ebx
push esi
push edi
mov eax, dword [0x67dc50]
xor eax, esp
push eax
lea eax, [esp + 0x248]
mov dword fs:[0], eax
mov edi, ecx
xor esi, esi
mov dword [esp + 0x24], esi
cmp dword [edi + 0x2ac], 1
jne 0x4124ec
mov eax, dword [ebp + 8]
push eax
call fcn.0040d2b0
mov ecx, dword [0x67df84]
push esi
call dword [sym.imp.BMB_NX_C9.dll_public:_class_BMBSheet____thiscall_BMBProduct::GetSheet_int_]
mov ebx, eax
mov dword [esp + 0x1b0], ebx
cmp ebx, esi
jne 0x412520
xor eax, eax
mov ecx, dword [esp + 0x248]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4
mov ecx, dword [0x67df84]
call dword [sym.imp.BMB_NX_C9.dll_public:_class_BMBMapPad____thiscall_BMBProduct::GetMapPad_void_]
mov dword [esp + 0x88], eax
cmp eax, esi
je 0x412506
mov ecx, dword [0x67df84]
call dword [sym.imp.BMB_NX_C9.dll_public:_class_BMBTableLayer____thiscall_BMBProduct::GetTableLayer_void_]
mov ecx, dword [edi + 0x54]
push ecx
lea ecx, [esp + 0x218]
call fcn.00472590
mov edx, dword [edi + 0x48]
mov dword [edi + 0x2c8], esi
mov eax, dword [edx + 0x30]
lea ecx, [esp + 0x214]
mov dword [esp + 0x54], eax
call fcn.00472570
mov eax, dword [esp + 0x21c]
cmp eax, esi
je 0x4141af
mov edi, edi
sub esp, 0xc
mov esi, eax
mov eax, dword [eax + 0x34]
mov ecx, esp
mov dword [esp + 0xd0], esp
push eax
call fcn.005e9060
mov ecx, edi
call fcn.0040af30
dec eax
push eax
mov ecx, ebx
call dword [sym.imp.BMB_NX_C9.dll_public:_class_BMBNet____thiscall_BMBSheet::GetNet_int_]
mov dword [esp + 0x5c], eax
test eax, eax
je 0x414194
push esi
lea ecx, [esp + 0xc0]
call fcn.004733d0
xor esi, esi
lea ecx, [esp + 0x9c]
mov dword [esp + 0x250], esi
call fcn.00405fd0
push esi
lea ecx, [esp + 0xa0]
mov byte [esp + 0x254], 1
call fcn.005ee1f0
lea ecx, [esp + 0xbc]
mov dword [esp + 0x9c], esi
call fcn.004733f0
lea ecx, [esp + 0xbc]
call fcn.004f32d0
test eax, eax
je 0x413e25
lea ecx, [esp + 0xbc]
call fcn.004f32d0
test eax, eax
je 0x413e05
push eax
lea ecx, [esp + 0x68]
call fcn.00473430
lea ecx, [esp + 0x64]
mov byte [esp + 0x250], 2
call fcn.00473450
lea ecx, [esp + 0x64]
call fcn.004f32d0
test eax, eax
je 0x413df4
lea ecx, [esp + 0x64]
call fcn.004f32d0
test eax, eax
je 0x413dda
mov ecx, eax
call fcn.0046ce00
mov esi, eax
test esi, esi
je 0x413dda
mov ecx, esi
call fcn.004a8b00
test eax, eax
je 0x413dda
mov edx, dword [esi]
mov eax, dword [edx + 0x38]
mov ecx, esi
call eax
mov ebx, eax
mov ecx, esi
mov dword [esp + 0x60], ebx
call fcn.004a8b00
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0x3c]
call eax
mov ecx, dword [edi + 0x2ac]
cmp ecx, 1
je 0x4126cc
cmp dword [edi + 0x25c], 1
jne 0x4126cc
cmp eax, 0xce
je 0x413dda
cmp eax, 0xcd
je 0x413dda
cmp eax, 0xcc
je 0x4126e5
cmp eax, 0xce
je 0x4126e5
cmp eax, 0xcd
jne 0x413dda
cmp ecx, 1
je 0x41398f
cmp ebx, 0xe
je 0x4126fc
cmp ebx, 0xf
jne 0x41398f
xor eax, eax
push 0xb0
mov dword [esp + 0x48], eax
mov dword [esp + 0x1c], eax
call sub.MSVCR90.dll_void____cdecl_operator_new_unsigned_int_
mov ebx, eax
add esp, 4
mov dword [esp + 0x4c], ebx
mov byte [esp + 0x250], 3
test ebx, ebx
je 0x41274d
mov ecx, dword [0x67df8c]
push 1
push 0
push ecx
mov ecx, ebx
call dword [sym.imp.BMB_NX_C9.dll_public:_void___thiscall_BMB2DStack::constructor_int__unsigned_char__unsigned_char_]
mov dword [ebx], vtable.BMB2DStack.1.0
mov dword [ebx + 0x6c], vtable.BMB2DStack.0
mov dword [esp + 0x1c], ebx
xor ebx, ebx
jmp 0x412753
xor ebx, ebx
mov dword [esp + 0x1c], ebx
push 0x62dc24
lea ecx, [esp + 0x1fc]
mov byte [esp + 0x254], 2
call fcn.005e9060
mov eax, dword [esp + 0x60]
inc dword [0x67df8c]
mov byte [esp + 0x250], 4
mov dword [esp + 0xc8], ebx
mov dword [esp + 0x6c], ebx
cmp eax, 0xe
je 0x412797
cmp eax, 0xf
jne 0x413854
lea ecx, [esp + 0xfc]
mov dword [esp + 0x48], ebx
call fcn.00405fd0
lea ecx, [esp + 0x114]
mov byte [esp + 0x250], 5
call fcn.00405fd0
mov edx, dword [esi]
mov eax, dword [edx + 0x38]
mov ecx, esi
mov byte [esp + 0x250], 6
call eax
cmp eax, 0xf
jne 0x41281a
lea ecx, [esp + 0x38]
push ecx
lea edx, [esp + 0x118]
push edx
lea eax, [esp + 0x104]
push eax
mov ecx, esi
mov dword [esp + 0x54], esi
mov dword [esp + 0x44], ebx
call fcn.004bb080
cmp dword [esp + 0xfc], ebx
jle 0x412809
mov dword [esp + 0xc8], 1
cmp dword [esp + 0x114], ebx
jle 0x41281a
mov dword [esp + 0x6c], 1
mov ecx, esi
call fcn.0046d010
mov ecx, eax
call fcn.004b5d80
mov ecx, dword [edi + 0x34]
push 0
push eax
call fcn.0046ce00
mov ecx, eax
call fcn.004b3f70
mov ecx, dword [esp + 0x1c]
mov ebx, eax
test byte [ebx + 0x20], 1
mov dword [esp + 0x34], ebx
je 0x41284e
push 0
jmp 0x412850
push 1
call dword [sym.imp.BMB_NX_C9.dll_public:_void___thiscall_BMB2DStack::PutPlated_unsigned_char_]
mov edx, dword [esi]
mov eax, dword [edx + 0x7c]
mov ecx, esi
call eax
fstp dword [esp + 0x38]
fld dword [esp + 0x38]
push ecx
mov ecx, dword [esp + 0x20]
fstp dword [esp]
call dword [sym.imp.BMB_NX_C9.dll_public:_void___thiscall_BMB2DStack::PutRotation_float_]
lea ecx, [esp + 0x220]
push ecx
mov ecx, esi
call fcn.0046d010
mov ecx, eax
call fcn.004b6050
mov ecx, dword [eax + 4]
mov eax, dword [eax]
push ecx
push eax
lea ecx, [esp + 0x200]
mov byte [esp + 0x258], 7
call fcn.005e8730
lea ecx, [esp + 0x220]
mov byte [esp + 0x250], 6
call fcn.005e8710
movzx eax, word [esi + 0x5c]
movzx edx, ax
movzx eax, word [esi + 0x5e]
push 0
mov ecx, ebx
mov dword [esp + 0x48], edx
mov dword [esp + 0x1c], eax
call fcn.004b5e50
cmp dword [edi + 0x2c4], 2
jne 0x4128f1
mov ecx, dword [esp + 0x1c]
call dword [sym.imp.BMB_NX_C9.dll_public:_unsigned_char___thiscall_BMB2DStack::GetPlated_void_]
cmp al, 1
je 0x412ab6
mov edx, dword [esi]
mov eax, dword [edx + 0xe0]
mov ecx, esi
call eax
test eax, eax
je 0x412ab6
mov edx, dword [esi]
mov edx, dword [edx + 0xf4]
lea eax, [esp + 0x2c]
push eax
mov ecx, esi
mov dword [esp + 0x30], 0
call edx
lea ecx, [esp + 0x1cc]
call fcn.00405fd0
mov ecx, dword [edi + 0x48]
push 3
mov byte [esp + 0x254], 8
call fcn.004dee40
test eax, eax
je 0x412aa2
push 0
lea ecx, [esp + 0x1d0]
push ecx
push eax
lea ecx, [edi + 0x100]
call fcn.00406780
test eax, eax
je 0x412aa2
mov edx, dword [esp + 0x2c]
push edx
mov ecx, edi
call fcn.0040b9d0
cmp eax, 1
jne 0x412aa2
cmp byte [edi + 0x291], al
jne 0x412aa2
mov eax, dword [esp + 0x1d4]
mov ecx, dword [eax]
push 0x7c
mov dword [esp + 0x3c], ecx
call sub.MSVCR90.dll_void____cdecl_operator_new_unsigned_int_
mov ebx, eax
add esp, 4
mov dword [esp + 0x4c], ebx
mov byte [esp + 0x250], 9
test ebx, ebx
je 0x4129ca
mov edx, dword [0x67df8c]
push edx
mov ecx, ebx
call dword [sym.imp.BMB_NX_C9.dll_public:_void___thiscall_BMBHole::constructor_int_]
mov dword [ebx], vtable.BMBHole.1.0
mov dword [ebx + 0x6c], vtable.BMBHole.0
jmp 0x4129cc
xor ebx, ebx
inc dword [0x67df8c]
mov eax, dword [esi]
mov edx, dword [eax + 0x7c]
mov ecx, esi
mov byte [esp + 0x250], 8
call edx
fstp dword [esp + 0x154]
xor eax, eax
push eax
lea ecx, [esp + 0x1dc]
mov dword [esp + 0x13c], eax
mov dword [esp + 0xec], eax
call fcn.005e8640
mov edx, dword [esi]
mov edx, dword [edx + 0x5c]
lea eax, [esp + 0x154]
push eax
lea eax, [esp + 0x1f4]
push eax
mov ecx, esi
mov byte [esp + 0x258], 0xa
call edx
mov edx, dword [esp + 0x30]
push eax
lea eax, [esp + 0x140]
push eax
lea ecx, [esp + 0xf4]
push ecx
push edx
lea eax, [esp + 0x1ec]
push eax
push ebx
mov ecx, edi
call fcn.0041b2c0
lea ecx, [esp + 0x1d8]
mov byte [esp + 0x250], 8
call fcn.005e8710
mov ecx, dword [esp + 0x38]
push ecx
mov ecx, ebx
call dword [sym.imp.BMB_NX_C9.dll_public:_void___thiscall_BMBSymbol::PutLayerNumber_short_int_]
mov eax, dword [edi + 0x264]
cmp eax, 1
je 0x412a97
mov ecx, dword [esp + 0x1c]
cmp eax, 2
jne 0x412a8d
call dword [sym.imp.BMB_NX_C9.dll_public:_unsigned_char___thiscall_BMB2DStack::GetPlated_void_]
test al, al
jmp 0x412a95
call dword [sym.imp.BMB_NX_C9.dll_public:_unsigned_char___thiscall_BMB2DStack::GetPlated_void_]
cmp al, 1
jne 0x412aa2
mov ecx, dword [esp + 0x1c]
push ebx
call dword [sym.imp.BMB_NX_C9.dll_public:_void___thiscall_BMB2DStack::PutHole_class_BMBHole__]
lea ecx, [esp + 0x1cc]
mov byte [esp + 0x250], 6
call fcn.005ee4c0
movzx ebx, word [esi + 0x5c]
movzx edx, word [esi + 0x5e]
lea ecx, [esp + 0xa8]
mov dword [esp + 0x58], ebx
mov dword [esp + 0x50], edx
call fcn.00405fd0
cmp bx, word [esp + 0x50]
movzx eax, bx
mov byte [esp + 0x250], 0xb
mov dword [esp + 0x20], eax
jg 0x4130cf
lea esp, [esp]
mov eax, dword [edi + 0x48]
movzx ecx, word [esp + 0x20]
mov edx, dword [eax + 0x30]
cmp edx, ecx
jle 0x412b36
mov edx, dword [eax + 0x34]
mov ebx, dword [edx + ecx*4]
lea eax, [edx + ecx*4]
test ebx, ebx
je 0x412b36
mov eax, dword [ebx + 8]
test eax, eax
jne 0x412b32
mov eax, dword [ebx + 4]
and eax, 0x7f
mov dword [esp + 0x38], eax
call fcn.004fe0e0
mov ecx, dword [esp + 0x38]
mov eax, dword [eax + ecx*4 - 4]
push ebx
mov ecx, eax
call fcn.004fd530
mov ecx, eax
jmp 0x412b38
xor ecx, ecx
mov edx, dword [ecx]
mov eax, dword [edx + 0x3c]
call eax
movzx ecx, ax
push ecx
mov ecx, dword [esp + 0x38]
call fcn.004b5db0
mov ebx, eax
mov dword [esp + 0x30], ebx
test ebx, ebx
je 0x4130bb
mov edx, dword [esp + 0x20]
mov ecx, dword [edi + 0x48]
push edx
call fcn.00407010
mov dword [esp + 0x38], eax
mov eax, dword [esp + 0x20]
push eax
mov ecx, esi
call fcn.004b12c0
mov edx, dword [esp + 0x38]
push 0
lea ecx, [esp + 0xac]
push ecx
push edx
lea ecx, [edi + 0x100]
mov dword [esp + 0x4c], eax
mov dword [esp + 0x8c], 0
call fcn.00406820
test eax, eax
je 0x4130bb
mov eax, dword [esp + 0xb0]
mov eax, dword [eax]
mov dword [esp + 0x38], eax
test eax, eax
je 0x4130bb
cmp dword [esp + 0xc8], 1
jne 0x412f49
mov ecx, dword [edi + 0x34]
mov edx, dword [esp + 0x40]
mov dword [esp + 0x2c], ecx
push edx
mov ecx, ebx
call fcn.004bccb0
mov ecx, dword [esp + 0x2c]
movzx eax, ax
push eax
call fcn.00438fc0
mov ecx, eax
call fcn.004bc570
mov dword [esp + 0x7c], eax
test eax, eax
je 0x4130bb
mov ecx, eax
call fcn.004bbd50
test eax, eax
je 0x4130bb
cmp dword [esp + 0xfc], 0
mov dword [esp + 0x40], 0
jle 0x412f49
jmp 0x412c30
mov ecx, dword [esp + 0x104]
mov edx, dword [esp + 0x40]
movzx ecx, word [ecx + edx*2]
movsx eax, word [esp + 0x20]
cmp eax, ecx
jne 0x412f21
mov edx, dword [esp + 0x20]
mov ecx, dword [edi + 0x48]
push edx
mov dword [esp + 0x84], 1
mov dword [esp + 0x2c], 0
call fcn.00407010
mov ecx, dword [edi + 0x34]
mov ebx, dword [esi]
lea edx, [esp + 0x28]
push edx
mov edx, dword [eax]
mov dword [esp + 0x30], ecx
mov ecx, eax
mov eax, dword [edx + 0x3c]
add ebx, 0xec
call eax
movzx ecx, ax
push ecx
mov ecx, dword [esp + 0x34]
call fcn.00438fc0
mov edx, dword [ebx]
push eax
mov ecx, esi
call edx
mov eax, dword [esp + 0x28]
test eax, eax
je 0x412f21
cmp word [eax + 4], 1
jb 0x412f21
mov ecx, dword [esp + 0x7c]
call fcn.004bbd50
push eax
lea ecx, [esp + 0xe0]
call fcn.005e9060
push 0x62dc28
lea ecx, [esp + 0xe0]
mov byte [esp + 0x254], 0xc
call fcn.005e8f10
mov eax, dword [edi + 0x2c8]
lea ecx, [eax + 1]
mov dword [edi + 0x2c8], ecx
push eax
lea ecx, [esp + 0xe0]
call fcn.005e9050
push 0x7c
call sub.MSVCR90.dll_void____cdecl_operator_new_unsigned_int_
mov ebx, eax
add esp, 4
mov dword [esp + 0x4c], ebx
mov byte [esp + 0x250], 0xd
test ebx, ebx
je 0x412d84
mov eax, dword [0x67df8c]
sub esp, 0xc
mov dword [esp + 0x38], eax
lea edx, [esp + 0xe8]
inc eax
mov ecx, esp
mov dword [esp + 0xd0], esp
push edx
mov dword [0x67df8c], eax
call fcn.005e8e10
lea eax, [esp + 0x150]
push eax
mov ecx, edi
call fcn.004277f0
mov eax, dword [eax]
mov ecx, dword [esp + 0x2c]
or dword [esp + 0x24], 1
push eax
push 0
push ecx
mov ecx, ebx
mov byte [esp + 0x25c], 0xe
call dword [sym.imp.BMB_NX_C9.dll_public:_void___thiscall_BMBPad::constructor_int__unsigned_char__char_const__]
mov dword [ebx], vtable.BMBPad.1.0
mov dword [ebx + 0x6c], vtable.BMBPad.0
mov dword [esp + 0x2c], ebx
jmp 0x412d8c
mov dword [esp + 0x2c], 0
test byte [esp + 0x24], 1
mov dword [esp + 0x250], 0xc
je 0x412db0
and dword [esp + 0x24], 0xfffffffe
lea ecx, [esp + 0x144]
call dword [sym.imp.mfc90.dll_Ordinal_601]
mov edx, dword [esp + 0x28]
mov eax, dword [edx + 4]
xor ecx, ecx
xor ebx, ebx
cmp cx, ax
jae 0x412efb
fldz
fst dword [esp + 0xb4]
fstp dword [esp + 0xb8]
mov edx, dword [esi]
mov eax, dword [edx + 0x7c]
mov ecx, esi
call eax
fstp dword [esp + 0x158]
mov ecx, dword [esp + 0x34]
call fcn.004b6180
mov ecx, dword [esp + 0x34]
movzx edx, word [ecx + 0x20]
mov ecx, dword [esp + 0x28]
shr edx, 2
mov dword [esp + 0x168], eax
and edx, 1
mov dword [esp + 0x16c], edx
mov edx, dword [ecx + 8]
movzx eax, bx
mov eax, dword [edx + eax*4]
mov edx, dword [esi]
mov edx, dword [edx + 0x5c]
lea ecx, [esp + 0x158]
mov dword [esp + 0x3c], eax
push ecx
lea eax, [esp + 0x1ec]
push eax
mov ecx, esi
call edx
mov edx, dword [esp + 0x40]
push eax
lea eax, [esp + 0x170]
push eax
lea ecx, [esp + 0x178]
push ecx
mov ecx, dword [esp + 0x3c]
push edx
lea eax, [esp + 0xf0]
push eax
push ecx
mov ecx, edi
call fcn.0041b0c0
lea ecx, [esp + 0x1a0]
call dword [sym.imp.mfc90.dll_Ordinal_316]
mov edx, dword [esp + 0xdc]
push edx
lea ecx, [esp + 0x1a4]
mov byte [esp + 0x254], 0x10
call dword [sym.imp.mfc90.dll_Ordinal_820]
mov ax, word [esp + 0x38]
mov ecx, dword [esp + 0xb4]
mov edx, dword [esp + 0xb8]
sub esp, 0x10
mov word [esp + 0x1b4], ax
mov dword [esp + 0x1b8], ecx
lea eax, [esp + 0x1b0]
mov ecx, esp
mov dword [esp + 0x5c], esp
push eax
mov dword [esp + 0x1c0], edx
call fcn.0040ae00
mov ecx, dword [esp + 0x2c]
push 0
call dword [sym.imp.BMB_NX_C9.dll_public:_void___thiscall_BMB2DStack::AddPad_class_BMBPad___struct_BMB_LinkPad_t_]
lea ecx, [esp + 0x1a0]
mov byte [esp + 0x250], 0xc
call dword [sym.imp.mfc90.dll_Ordinal_601]
mov ecx, dword [esp + 0x28]
movzx edx, word [ecx + 4]
inc ebx
movsx eax, bx
cmp eax, edx
jl 0x412dd4
mov ecx, dword [esp + 0x2c]
push ecx
mov ecx, dword [esp + 0x8c]
call dword [sym.imp.BMB_NX_C9.dll_public:_void___thiscall_BMBMapPad::AddElement_class_BMBPad__]
lea ecx, [esp + 0xdc]
mov byte [esp + 0x250], 0xb
call fcn.005e8710
mov eax, dword [esp + 0x40]
inc eax
cmp eax, dword [esp + 0xfc]
mov dword [esp + 0x40], eax
jl 0x412c30
cmp dword [esp + 0x80], 1
je 0x4130bb
mov ebx, dword [esp + 0x30]
mov edx, dword [edi + 0x34]
push 0
mov ecx, ebx
mov dword [esp + 0x34], edx
call fcn.004bccb0
mov ecx, dword [esp + 0x30]
movzx eax, ax
push eax
call fcn.00438fc0
mov ecx, eax
call fcn.004bc570
mov ecx, dword [edi + 0x34]
mov dword [esp + 0x30], ecx
push 1
mov ecx, ebx
mov dword [esp + 0x80], eax
call fcn.004bccb0
mov ecx, dword [esp + 0x30]
movzx edx, ax
push edx
call fcn.00438fc0
mov ecx, eax
call fcn.004bc570
mov dword [esp + 0x80], eax
mov eax, dword [edi + 0x34]
push 2
mov ecx, ebx
mov dword [esp + 0x34], eax
call fcn.004bccb0
movzx ecx, ax
push ecx
mov ecx, dword [esp + 0x34]
call fcn.00438fc0
mov ecx, eax
call fcn.004bc570
mov edx, dword [edi + 0x34]
push 3
mov ecx, ebx
mov dword [esp + 0x40], eax
mov dword [esp + 0x34], edx
call fcn.004bccb0
mov ecx, dword [esp + 0x30]
movzx eax, ax
push eax
call fcn.00438fc0
mov ecx, eax
call fcn.004bc570
mov ecx, dword [esp + 0x20]
push ecx
mov ecx, dword [edi + 0x48]
mov ebx, eax
call fcn.00407010
cmp dword [eax + 0x34], 1
jne 0x41300a
test ebx, ebx
jne 0x413021
mov ebx, dword [esp + 0x3c]
jmp 0x413019
mov ebx, dword [esp + 0x7c]
test ebx, ebx
jne 0x413021
mov ebx, dword [esp + 0x80]
test ebx, ebx
je 0x4130bb
lea ecx, [esp + 0x190]
call dword [sym.imp.mfc90.dll_Ordinal_316]
mov ecx, ebx
mov byte [esp + 0x250], 0x11
call fcn.004bbd50
push eax
lea ecx, [esp + 0x194]
call dword [sym.imp.mfc90.dll_Ordinal_820]
fldz
mov dx, word [esp + 0x38]
fst dword [esp + 0x160]
mov eax, dword [esp + 0x160]
fstp dword [esp + 0x164]
mov ecx, dword [esp + 0x164]
sub esp, 0x10
mov word [esp + 0x1a4], dx
mov dword [esp + 0x1ac], ecx
lea edx, [esp + 0x1a0]
mov ecx, esp
mov dword [esp + 0x5c], esp
push edx
mov dword [esp + 0x1ac], eax
call fcn.0040ae00
mov ecx, dword [esp + 0x2c]
push 0
call dword [sym.imp.BMB_NX_C9.dll_public:_void___thiscall_BMB2DStack::AddPad_class_BMBPad___struct_BMB_LinkPad_t_]
lea ecx, [esp + 0x190]
mov byte [esp + 0x250], 0xb
call dword [sym.imp.mfc90.dll_Ordinal_601]
mov eax, dword [esp + 0x20]
inc eax
cmp ax, word [esp + 0x50]
mov dword [esp + 0x20], eax
jle 0x412af0
cmp dword [esp + 0x6c], 1
jne 0x4135f9
mov ecx, dword [edi + 0x48]
xor eax, eax
cmp dword [ecx + 0x3c], eax
mov dword [esp + 0x6c], eax
mov dword [esp + 0x28], eax
jle 0x413816
movzx ecx, word [esp + 0x28]
mov eax, dword [edi + 0x48]
mov eax, dword [eax + 0x40]
movzx edx, cx
mov ebx, dword [eax + edx*4]
lea eax, [eax + edx*4]
mov dword [esp + 0x3c], ecx
test ebx, ebx
je 0x413136
mov eax, dword [ebx + 8]
test eax, eax
jne 0x413132
mov eax, dword [ebx + 4]
and eax, 0x7f
mov dword [esp + 0x30], eax
call fcn.004fe0e0
mov ecx, dword [esp + 0x30]
mov eax, dword [eax + ecx*4 - 4]
push ebx
mov ecx, eax
call fcn.004fd530
mov ebx, eax
jmp 0x413138
xor ebx, ebx
push 0
lea edx, [esp + 0xac]
push edx
push ebx
lea ecx, [edi + 0x100]
call fcn.00406820
test eax, eax
je 0x4135df
mov eax, dword [ebx]
mov edx, dword [eax + 0x3c]
mov ecx, ebx
call edx
mov ecx, dword [esp + 0x34]
movzx eax, ax
push eax
call fcn.004b5e10
test eax, eax
je 0x4135df
mov ecx, dword [edi + 0x34]
push eax
call fcn.00438fc0
mov ecx, eax
call fcn.004bc570
mov dword [esp + 0x38], eax
test eax, eax
je 0x4135df
mov ecx, dword [esp + 0x114]
xor eax, eax
test ecx, ecx
jle 0x4131bb
mov edx, dword [esp + 0x11c]
movzx ebx, word [edx + eax*2]
cmp dword [esp + 0x28], ebx
jne 0x4131b6
mov dword [esp + 0x6c], 1
inc eax
cmp eax, ecx
jl 0x4131a4
cmp dword [esp + 0x6c], 1
jne 0x4134e9
mov edx, dword [esp + 0x48]
mov ebx, dword [edx]
mov edx, dword [esp + 0x3c]
mov ecx, dword [edi + 0x34]
lea eax, [esp + 0x20]
push eax
push edx
mov dword [esp + 0x28], 0
add ebx, 0xf0
call fcn.00438fc0
mov ecx, dword [esp + 0x50]
push eax
mov eax, dword [ebx]
call eax
cmp dword [esp + 0xa8], 0
mov dword [esp + 0x50], 0
jle 0x4135df
mov eax, dword [esp + 0x20]
nop
test eax, eax
je 0x4134ce
cmp word [eax + 4], 1
jb 0x4134ce
mov ecx, dword [esp + 0x38]
call fcn.004bbd50
push eax
lea ecx, [esp + 0x1c4]
call fcn.005e9060
push 0x62dc28
lea ecx, [esp + 0x1c4]
mov byte [esp + 0x254], 0x12
call fcn.005e8f10
mov eax, dword [edi + 0x2c8]
lea ecx, [eax + 1]
mov dword [edi + 0x2c8], ecx
push eax
lea ecx, [esp + 0x1c4]
call fcn.005e9050
push 0x7c
call sub.MSVCR90.dll_void____cdecl_operator_new_unsigned_int_
mov ebx, eax
add esp, 4
mov dword [esp + 0x4c], ebx
mov byte [esp + 0x250], 0x13
test ebx, ebx
je 0x4132f3
mov eax, dword [0x67df8c]
sub esp, 0xc
mov dword [esp + 0x3c], eax
lea edx, [esp + 0x1cc]
inc eax
mov ecx, esp
mov dword [esp + 0xd0], esp
push edx
mov dword [0x67df8c], eax
call fcn.005e8e10
lea eax, [esp + 0x17c]
push eax
mov ecx, edi
call fcn.004277f0
mov eax, dword [eax]
mov ecx, dword [esp + 0x30]
or dword [esp + 0x24], 2
push eax
push 0
push ecx
mov ecx, ebx
mov byte [esp + 0x25c], 0x14
call dword [sym.imp.BMB_NX_C9.dll_public:_void___thiscall_BMBPad::constructor_int__unsigned_char__char_const__]
mov dword [ebx], vtable.BMBPad.1.0
mov dword [ebx + 0x6c], vtable.BMBPad.0
mov dword [esp + 0x2c], ebx
jmp 0x4132fb
mov dword [esp + 0x2c], 0
test byte [esp + 0x24], 2
mov dword [esp + 0x250], 0x12
je 0x41331f
and dword [esp + 0x24], 0xfffffffd
lea ecx, [esp + 0x170]
call dword [sym.imp.mfc90.dll_Ordinal_601]
mov edx, dword [esp + 0x20]
mov eax, dword [edx + 4]
xor ecx, ecx
mov dword [esp + 0x40], 0
cmp cx, ax
jae 0x4134a4
fldz
fst dword [esp + 0x13c]
fstp dword [esp + 0x140]
lea esp, [esp]
mov edx, dword [esi]
mov eax, dword [edx + 0x7c]
mov ecx, esi
call eax
fstp dword [esp + 0x174]
mov ebx, dword [esp + 0x34]
mov ecx, ebx
call fcn.004b6180
movzx ecx, word [ebx + 0x20]
movzx edx, word [esp + 0x40]
shr ecx, 2
mov dword [esp + 0x150], eax
mov eax, dword [esp + 0x20]
and ecx, 1
mov dword [esp + 0x134], ecx
mov ecx, dword [eax + 8]
mov ebx, dword [ecx + edx*4]
mov eax, dword [esi]
lea edx, [esp + 0x174]
push edx
mov edx, dword [eax + 0x5c]
lea ecx, [esp + 0x230]
push ecx
mov ecx, esi
call edx
push eax
lea eax, [esp + 0x158]
push eax
mov eax, dword [esp + 0x38]
lea ecx, [esp + 0x140]
push ecx
push ebx
lea edx, [esp + 0x1d4]
push edx
push eax
mov ecx, edi
call fcn.0041b0c0
lea ecx, [esp + 0xcc]
call dword [sym.imp.mfc90.dll_Ordinal_316]
mov ecx, dword [esp + 0x1c0]
push ecx
lea ecx, [esp + 0xd0]
mov byte [esp + 0x254], 0x16
call dword [sym.imp.mfc90.dll_Ordinal_820]
mov edx, dword [esp + 0xb0]
mov eax, dword [esp + 0x50]
mov cx, word [edx + eax*4]
mov edx, dword [esp + 0x13c]
mov eax, dword [esp + 0x140]
sub esp, 0x10
mov word [esp + 0xe0], cx
mov ebx, esp
lea ecx, [esp + 0xdc]
mov dword [esp + 0x5c], esp
push ecx
mov ecx, ebx
mov dword [esp + 0xe8], edx
mov dword [esp + 0xec], eax
call dword [sym.imp.mfc90.dll_Ordinal_300]
mov dx, word [esp + 0xe0]
mov word [ebx + 4], dx
mov eax, dword [esp + 0xe4]
mov dword [ebx + 8], eax
mov ecx, dword [esp + 0xe8]
mov dword [ebx + 0xc], ecx
mov ecx, dword [esp + 0x2c]
push 0
call dword [sym.imp.BMB_NX_C9.dll_public:_void___thiscall_BMB2DStack::AddPad_class_BMBPad___struct_BMB_LinkPad_t_]
lea ecx, [esp + 0xcc]
mov byte [esp + 0x250], 0x12
call dword [sym.imp.mfc90.dll_Ordinal_601]
mov eax, dword [esp + 0x40]
mov edx, dword [esp + 0x20]
movzx ecx, word [edx + 4]
inc eax
movsx edx, ax
cmp edx, ecx
mov dword [esp + 0x40], eax
jl 0x413350
mov eax, dword [esp + 0x2c]
mov ecx, dword [esp + 0x88]
push eax
call dword [sym.imp.BMB_NX_C9.dll_public:_void___thiscall_BMBMapPad::AddElement_class_BMBPad__]
lea ecx, [esp + 0x1c0]
mov byte [esp + 0x250], 0xb
call fcn.005e8710
mov eax, dword [esp + 0x20]
mov ecx, dword [esp + 0x50]
inc ecx
cmp ecx, dword [esp + 0xa8]
mov dword [esp + 0x50], ecx
jl 0x413210
jmp 0x4135df
cmp dword [esp + 0xa8], 0
mov dword [esp + 0x50], 0
jle 0x4135df
fldz
fst dword [esp + 0x148]
fstp dword [esp + 0x14c]
nop
lea ecx, [esp + 0xec]
call dword [sym.imp.mfc90.dll_Ordinal_316]
mov ecx, dword [esp + 0x38]
mov byte [esp + 0x250], 0x17
call fcn.004bbd50
push eax
lea ecx, [esp + 0xf0]
call dword [sym.imp.mfc90.dll_Ordinal_820]
mov ecx, dword [esp + 0xb0]
mov edx, dword [esp + 0x50]
mov ax, word [ecx + edx*4]
mov ecx, dword [esp + 0x148]
mov edx, dword [esp + 0x14c]
sub esp, 0x10
mov word [esp + 0x100], ax
mov ebx, esp
lea eax, [esp + 0xfc]
mov dword [esp + 0x104], ecx
mov dword [esp + 0x5c], esp
push eax
mov ecx, ebx
mov dword [esp + 0x10c], edx
call dword [sym.imp.mfc90.dll_Ordinal_300]
mov cx, word [esp + 0x100]
mov word [ebx + 4], cx
mov edx, dword [esp + 0x104]
mov ecx, dword [esp + 0x2c]
mov dword [ebx + 8], edx
mov eax, dword [esp + 0x108]
push 0
mov dword [ebx + 0xc], eax
call dword [sym.imp.BMB_NX_C9.dll_public:_void___thiscall_BMB2DStack::AddPad_class_BMBPad___struct_BMB_LinkPad_t_]
lea ecx, [esp + 0xec]
mov byte [esp + 0x250], 0xb
call dword [sym.imp.mfc90.dll_Ordinal_601]
mov eax, dword [esp + 0x50]
inc eax
cmp eax, dword [esp + 0xa8]
mov dword [esp + 0x50], eax
jl 0x413510
mov eax, dword [esp + 0x28]
mov ecx, dword [edi + 0x48]
inc eax
cmp eax, dword [ecx + 0x3c]
mov dword [esp + 0x28], eax
jl 0x4130f0
jmp 0x413816
mov edx, dword [edi + 0x48]
cmp dword [edx + 0x3c], 0
mov dword [esp + 0x40], 0
jle 0x413816
mov eax, dword [edi + 0x48]
movzx ecx, word [esp + 0x40]
mov edx, dword [eax + 0x40]
mov ebx, dword [edx + ecx*4]
lea eax, [edx + ecx*4]
test ebx, ebx
je 0x41364d
mov eax, dword [ebx + 8]
test eax, eax
jne 0x413649
mov eax, dword [ebx + 4]
and eax, 0x7f
mov dword [esp + 0x30], eax
call fcn.004fe0e0
mov ecx, dword [esp + 0x30]
mov eax, dword [eax + ecx*4 - 4]
push ebx
mov ecx, eax
call fcn.004fd530
mov ebx, eax
jmp 0x41364f
xor ebx, ebx
push 0
lea edx, [esp + 0xac]
push edx
push ebx
lea ecx, [edi + 0x100]
call fcn.00406820
test eax, eax
je 0x413801
mov eax, dword [ebx]
mov edx, dword [eax + 0x3c]
mov ecx, ebx
call edx
mov ecx, dword [esp + 0x34]
movzx eax, ax
push eax
call fcn.004b5e10
test eax, eax
je 0x413801
mov ecx, dword [edi + 0x34]
push eax
call fcn.00438fc0
mov ecx, eax
call fcn.004bc570
mov dword [esp + 0x30], eax
test eax, eax
je 0x413801
xor ebx, ebx
cmp dword [esp + 0xa8], ebx
mov dword [esp + 0x48], ebx
jle 0x413801
lea ebx, [ebx]
lea ecx, [esp + 0x8c]
call dword [sym.imp.mfc90.dll_Ordinal_316]
mov ecx, dword [esp + 0xb0]
mov eax, dword [ecx + ebx*4]
push eax
lea ecx, [edi + 0x100]
mov byte [esp + 0x254], 0x18
call fcn.00406430
test eax, eax
je 0x413737
movsx edx, word [esp + 0x58]
inc edx
cmp eax, edx
jge 0x413713
lea ecx, [esp + 0x8c]
mov byte [esp + 0x250], 0xb
call dword [sym.imp.mfc90.dll_Ordinal_601]
jmp 0x4137ef
movsx ecx, word [esp + 0x50]
inc ecx
cmp eax, ecx
jle 0x413737
lea ecx, [esp + 0x8c]
mov byte [esp + 0x250], 0xb
call dword [sym.imp.mfc90.dll_Ordinal_601]
jmp 0x4137ef
mov ecx, dword [esp + 0x30]
call fcn.004bbd50
push eax
lea ecx, [esp + 0x90]
call dword [sym.imp.mfc90.dll_Ordinal_820]
fldz
mov edx, dword [esp + 0xb0]
fst dword [esp + 0x12c]
mov eax, dword [esp + 0x48]
fstp dword [esp + 0x130]
mov cx, word [edx + eax*4]
mov edx, dword [esp + 0x12c]
mov eax, dword [esp + 0x130]
sub esp, 0x10
mov word [esp + 0xa0], cx
mov ebx, esp
lea ecx, [esp + 0x9c]
mov dword [esp + 0x5c], esp
push ecx
mov ecx, ebx
mov dword [esp + 0xa8], edx
mov dword [esp + 0xac], eax
call dword [sym.imp.mfc90.dll_Ordinal_300]
mov dx, word [esp + 0xa0]
mov word [ebx + 4], dx
mov eax, dword [esp + 0xa4]
mov dword [ebx + 8], eax
mov ecx, dword [esp + 0xa8]
mov dword [ebx + 0xc], ecx
mov ecx, dword [esp + 0x2c]
push 0
call dword [sym.imp.BMB_NX_C9.dll_public:_void___thiscall_BMB2DStack::AddPad_class_BMBPad___struct_BMB_LinkPad_t_]
lea ecx, [esp + 0x8c]
mov byte [esp + 0x250], 0xb
call dword [sym.imp.mfc90.dll_Ordinal_601]
mov ebx, dword [esp + 0x48]
inc ebx
cmp ebx, dword [esp + 0xa8]
mov dword [esp + 0x48], ebx
jl 0x4136c0
mov eax, dword [esp + 0x40]
mov edx, dword [edi + 0x48]
inc eax
cmp eax, dword [edx + 0x3c]
mov dword [esp + 0x40], eax
jl 0x41360e
lea ecx, [esp + 0xa8]
mov byte [esp + 0x250], 6
call fcn.005ee4c0
lea ecx, [esp + 0x114]
mov byte [esp + 0x250], 5
call fcn.005ee4c0
lea ecx, [esp + 0xfc]
mov byte [esp + 0x250], 4
call fcn.005ee4c0
xor ebx, ebx
mov eax, dword [edi + 0x48]
mov eax, dword [eax + 0x30]
dec eax
movzx eax, ax
cmp dword [esp + 0x44], ebx
jne 0x413875
movsx ecx, ax
mov byte [esp + 0x84], 1
cmp dword [esp + 0x18], ecx
je 0x41387d
mov byte [esp + 0x84], 2
mov edx, dword [esi]
mov edx, dword [edx + 0x5c]
lea eax, [esp + 0x234]
push eax
mov ecx, esi
call edx
mov eax, dword [eax]
lea ecx, [esp + 0x15c]
push ecx
mov ecx, edi
mov dword [esp + 0x160], eax
call fcn.00427770
fstp dword [esp + 0x30]
mov edx, dword [esi]
mov edx, dword [edx + 0x5c]
lea eax, [esp + 0x23c]
push eax
mov ecx, esi
call edx
mov eax, dword [eax + 4]
lea ecx, [esp + 0x14]
push ecx
mov ecx, edi
mov dword [esp + 0x18], eax
call fcn.00427770
fstp dword [esp + 0x58]
push 0x8c
call sub.MSVCR90.dll_void____cdecl_operator_new_unsigned_int_
mov ebx, eax
add esp, 4
mov dword [esp + 0x4c], ebx
mov byte [esp + 0x250], 0x19
test ebx, ebx
je 0x413923
fld dword [esp + 0x58]
mov edx, dword [0x67df8c]
push 0
sub esp, 8
fstp dword [esp + 4]
mov ecx, ebx
fld dword [esp + 0x3c]
fstp dword [esp]
push edx
call dword [sym.imp.BMB_NX_C9.dll_public:_void___thiscall_BMBVia::constructor_int__float__float__class_BMB2DStack__]
mov dword [ebx], vtable.BMBVia.1.0
mov dword [ebx + 0x6c], vtable.BMBVia.0
jmp 0x413925
xor ebx, ebx
mov eax, dword [esp + 0x1c]
push eax
mov ecx, ebx
mov byte [esp + 0x254], 4
call dword [sym.imp.BMB_NX_C9.dll_public:_void___thiscall_BMBVia::PutStack_class_BMB2DStack__]
mov ecx, dword [esp + 0x84]
push ecx
mov ecx, ebx
call dword [sym.imp.BMB_NX_C9.dll_public:_void___thiscall_BMBVia::PutViaType_unsigned_char_]
mov edx, dword [esp + 0x44]
inc edx
push edx
mov ecx, ebx
call dword [sym.imp.BMB_NX_C9.dll_public:_void___thiscall_BMBVia::PutTopLayerNumber_short_int_]
mov eax, dword [esp + 0x18]
inc eax
push eax
mov ecx, ebx
call dword [sym.imp.BMB_NX_C9.dll_public:_void___thiscall_BMBVia::PutBottomLayerNumber_short_int_]
mov ecx, dword [esp + 0x5c]
inc dword [0x67df8c]
push ebx
call dword [sym.imp.BMB_NX_C9.dll_public:_void___thiscall_BMBNet::AddVia_class_BMBVia__]
lea ecx, [esp + 0x1f8]
mov byte [esp + 0x250], 2
call fcn.005e8710
mov ebx, dword [esp + 0x60]
cmp ebx, 0xe
je 0x4139bf
cmp ebx, 0xf
je 0x4139bf
cmp ebx, 0xb
je 0x4139b5
cmp ebx, 0xc
je 0x4139b5
cmp ebx, 9
jne 0x4139de
mov ecx, dword [esp + 0x9c]
push ecx
jmp 0x413dcc
mov edx, dword [esp + 0x9c]
push edx
jmp 0x4139d0
cmp dword [edi + 0x2ac], 1
jne 0x4139de
mov eax, dword [esp + 0x9c]
push eax
lea ecx, [esp + 0xa0]
call fcn.005ee1f0
mov dword [eax], esi
cmp ebx, 3
je 0x4139f1
cmp ebx, 0x1c
je 0x4139f1
cmp ebx, 4
jne 0x413dda
mov eax, 1
cmp dword [edi + 0x2ac], eax
je 0x413c73
cmp dword [edi + 0x2a4], eax
je 0x413c73
cmp ebx, 3
jne 0x413b3e
mov ecx, esi
call fcn.004a3cd0
test eax, eax
je 0x413dda
mov ecx, eax
call fcn.00471270
mov ebx, eax
test ebx, ebx
je 0x413dda
mov edx, dword [ebx]
mov eax, dword [edx + 0x4c]
mov ecx, ebx
call eax
test eax, eax
je 0x413dda
lea ecx, [esp + 0x184]
call fcn.00405fd0
push 0
lea ecx, [esp + 0x188]
push ecx
push ebx
lea ecx, [edi + 0x100]
mov byte [esp + 0x25c], 0x1c
call fcn.00406780
test eax, eax
jne 0x413a8f
lea ecx, [esp + 0x184]
mov byte [esp + 0x250], 2
call fcn.005ee4c0
jmp 0x413dda
mov edx, dword [esp + 0x18c]
mov eax, dword [edx]
inc dword [0x67df8c]
push 0x84
mov dword [esp + 0x5c], eax
call sub.MSVCR90.dll_void____cdecl_operator_new_unsigned_int_
mov ebx, eax
add esp, 4
mov dword [esp + 0x4c], ebx
mov byte [esp + 0x250], 0x1d
test ebx, ebx
je 0x413ae7
mov ecx, dword [0x67df8c]
push 0
push 1
push ecx
mov ecx, ebx
call dword [sym.imp.BMB_NX_C9.dll_public:_void___thiscall_BMBPattern::constructor_int__unsigned_char__char_const__]
mov dword [ebx], vtable.BMBPattern.1.0
mov dword [ebx + 0x6c], vtable.BMBPattern.0
mov dword [esp + 0x18], ebx
jmp 0x413aef
mov dword [esp + 0x18], 0
mov ebx, dword [esp + 0x58]
mov ecx, dword [esp + 0x18]
push ebx
mov byte [esp + 0x254], 0x1c
call dword [sym.imp.BMB_NX_C9.dll_public:_void___thiscall_BMBSymbol::PutLayerNumber_short_int_]
push 0
push 0
push 0
push ebx
push esi
mov esi, dword [esp + 0x2c]
push esi
mov ecx, edi
call fcn.00412490
mov ecx, dword [esp + 0x5c]
push esi
call dword [sym.imp.BMB_NX_C9.dll_public:_void___thiscall_BMBNet::AddPattern_class_BMBPattern__]
lea ecx, [esp + 0x184]
mov byte [esp + 0x250], 2
call fcn.005ee4c0
jmp 0x413dda
cmp ebx, 4
je 0x413b4c
cmp ebx, 0x1c
jne 0x413dda
mov ecx, esi
call fcn.004a3cd0
test eax, eax
je 0x413dda
mov ecx, eax
call fcn.00471270
mov ebx, eax
test ebx, ebx
je 0x413dda
mov edx, dword [ebx]
mov eax, dword [edx + 0x4c]
mov ecx, ebx
call eax
test eax, eax
je 0x413dda
lea ecx, [esp + 0x178]
call fcn.00405fd0
push 0
lea ecx, [esp + 0x17c]
push ecx
push ebx
lea ecx, [edi + 0x100]
mov byte [esp + 0x25c], 0x1e
call fcn.00406780
test eax, eax
jne 0x413bc4
lea ecx, [esp + 0x178]
mov byte [esp + 0x250], 2
call fcn.005ee4c0
jmp 0x413dda
mov edx, dword [esp + 0x180]
mov eax, dword [edx]
inc dword [0x67df8c]
push 0x84
mov dword [esp + 0x5c], eax
call sub.MSVCR90.dll_void____cdecl_operator_new_unsigned_int_
mov ebx, eax
add esp, 4
mov dword [esp + 0x4c], ebx
mov byte [esp + 0x250], 0x1f
test ebx, ebx
je 0x413c1c
mov ecx, dword [0x67df8c]
push 0
push 3
push ecx
mov ecx, ebx
call dword [sym.imp.BMB_NX_C9.dll_public:_void___thiscall_BMBPattern::constructor_int__unsigned_char__char_const__]
mov dword [ebx], vtable.BMBPattern.1.0
mov dword [ebx + 0x6c], vtable.BMBPattern.0
mov dword [esp + 0x18], ebx
jmp 0x413c24
mov dword [esp + 0x18], 0
mov ebx, dword [esp + 0x58]
mov ecx, dword [esp + 0x18]
push ebx
mov byte [esp + 0x254], 0x1e
call dword [sym.imp.BMB_NX_C9.dll_public:_void___thiscall_BMBSymbol::PutLayerNumber_short_int_]
push 0
push 0
push 0
push ebx
push esi
mov esi, dword [esp + 0x2c]
push esi
mov ecx, edi
call fcn.00412490
mov ecx, dword [esp + 0x5c]
push esi
call dword [sym.imp.BMB_NX_C9.dll_public:_void___thiscall_BMBNet::AddPattern_class_BMBPattern__]
lea ecx, [esp + 0x178]
mov byte [esp + 0x250], 2
call fcn.005ee4c0
jmp 0x413dda
cmp ebx, 3
jne 0x413db1
mov ecx, esi
call fcn.004bd0e0
test byte [eax + 8], 0xf
je 0x413db1
mov ecx, esi
call fcn.004a3cd0
test eax, eax
je 0x413dda
mov ecx, eax
call fcn.00471270
mov ebx, eax
test ebx, ebx
je 0x413dda
mov edx, dword [ebx]
mov eax, dword [edx + 0x4c]
mov ecx, ebx
call eax
test eax, eax
je 0x413dda
lea ecx, [esp + 0x1b4]
call fcn.00405fd0
push 0
lea ecx, [esp + 0x1b8]
push ecx
push ebx
lea ecx, [edi + 0x100]
mov byte [esp + 0x25c], 0x1a
call fcn.00406780
test eax, eax
jne 0x413d05
lea ecx, [esp + 0x1b4]
mov byte [esp + 0x250], 2
call fcn.005ee4c0
jmp 0x413dda
mov edx, dword [esp + 0x1bc]
mov eax, dword [edx]
inc dword [0x67df8c]
push 0x84
mov dword [esp + 0x5c], eax
call sub.MSVCR90.dll_void____cdecl_operator_new_unsigned_int_
mov ebx, eax
add esp, 4
mov dword [esp + 0x4c], ebx
mov byte [esp + 0x250], 0x1b
test ebx, ebx
je 0x413d5d
mov ecx, dword [0x67df8c]
push 0
push 1
push ecx
mov ecx, ebx
call dword [sym.imp.BMB_NX_C9.dll_public:_void___thiscall_BMBPattern::constructor_int__unsigned_char__char_const__]
mov dword [ebx], vtable.BMBPattern.1.0
mov dword [ebx + 0x6c], vtable.BMBPattern.0
mov dword [esp + 0x18], ebx
jmp 0x413d65
mov dword [esp + 0x18], 0
mov ebx, dword [esp + 0x58]
mov ecx, dword [esp + 0x18]
push ebx
mov byte [esp + 0x254], 0x1a
call dword [sym.imp.BMB_NX_C9.dll_public:_void___thiscall_BMBSymbol::PutLayerNumber_short_int_]
push 0
push 0
push 0
push ebx
push esi
mov esi, dword [esp + 0x2c]
push esi
mov ecx, edi
call fcn.00412490
mov ecx, dword [esp + 0x5c]
push esi
call dword [sym.imp.BMB_NX_C9.dll_public:_void___thiscall_BMBNet::AddPattern_class_BMBPattern__]
lea ecx, [esp + 0x1b4]
mov byte [esp + 0x250], 2
call fcn.005ee4c0
jmp 0x413dda
cmp dword [ebp + 8], 1
jne 0x413dc4
push esi
mov ecx, edi
call fcn.0040c060
cmp eax, 1
je 0x413dda
mov edx, dword [esp + 0x9c]
push edx
lea ecx, [esp + 0xa0]
call fcn.005ee1f0
mov dword [eax], esi
lea ecx, [esp + 0x64]
call fcn.00473460
lea ecx, [esp + 0x64]
call fcn.004f32d0
test eax, eax
jne 0x412652
lea ecx, [esp + 0x64]
mov byte [esp + 0x250], 1
call fcn.004ed1b0
lea ecx, [esp + 0xbc]
call fcn.00473400
lea ecx, [esp + 0xbc]
call fcn.004f32d0
test eax, eax
jne 0x412612
mov eax, 1
cmp dword [edi + 0x2ac], eax
je 0x413e3e
cmp dword [edi + 0x2a4], eax
jne 0x414162
lea ecx, [esp + 0x120]
call fcn.00405fd0
lea ecx, [esp + 0x70]
mov byte [esp + 0x250], 0x20
call fcn.00513f30
lea ecx, [esp + 0x108]
mov byte [esp + 0x250], 0x21
call fcn.00513f30
xor ebx, ebx
xor eax, eax
cmp ax, word [esp + 0x54]
mov byte [esp + 0x250], 0x22
mov dword [esp + 0x28], ebx
jge 0x41411d
movsx eax, bx
mov dword [esp + 0x60], eax
inc eax
push eax
lea ecx, [edi + 0x100]
call fcn.00406310
test eax, eax
je 0x41410d
cmp dword [edi + 0x2ac], 1
jne 0x413f57
mov eax, dword [edi + 0x48]
mov edx, dword [eax + 0x30]
movzx ecx, bx
cmp edx, ecx
jle 0x413ef1
mov edx, dword [eax + 0x34]
mov esi, dword [edx + ecx*4]
lea eax, [edx + ecx*4]
test esi, esi
je 0x413ef1
mov eax, dword [esi + 8]
test eax, eax
jne 0x413ef3
mov ebx, dword [esi + 4]
and ebx, 0x7f
call fcn.004fe0e0
mov ebx, dword [eax + ebx*4 - 4]
push esi
mov ecx, ebx
call fcn.004fd530
mov ebx, dword [esp + 0x28]
jmp 0x413ef3
xor eax, eax
cmp dword [eax + 0x34], 1
je 0x41410d
cmp dword [edi + 0x2ac], 1
jne 0x413f57
cmp dword [edi + 0x2b0], 1
jne 0x413f57
mov eax, dword [edi + 0x48]
movzx ecx, bx
cmp dword [eax + 0x30], ecx
jle 0x413f4b
mov eax, dword [eax + 0x34]
mov esi, dword [eax + ecx*4]
lea eax, [eax + ecx*4]
test esi, esi
je 0x413f4b
mov eax, dword [esi + 8]
test eax, eax
jne 0x413f4d
mov ebx, dword [esi + 4]
and ebx, 0x7f
call fcn.004fe0e0
mov ebx, dword [eax + ebx*4 - 4]
push esi
mov ecx, ebx
call fcn.004fd530
mov ebx, dword [esp + 0x28]
jmp 0x413f4d
xor eax, eax
cmp dword [eax + 0x34], 2
je 0x41410d
xor esi, esi
push esi
lea ecx, [esp + 0x74]
call fcn.005ee1f0
cmp dword [esp + 0x9c], esi
mov dword [esp + 0x70], esi
mov dword [esp + 0x18], esi
jle 0x4140f4
jmp 0x413f80
mov ecx, dword [esp + 0xa4]
mov edx, dword [esp + 0x18]
mov esi, dword [ecx + edx*4]
mov eax, dword [esi]
mov edx, dword [eax + 0x38]
mov ecx, esi
call edx
cmp eax, 0xe
je 0x41400d
mov eax, dword [esi]
mov edx, dword [eax + 0x38]
mov ecx, esi
call edx
cmp eax, 0xf
je 0x41400d
mov ecx, esi
call fcn.004a3cd0
mov ecx, eax
call fcn.00471270
push 0
lea ecx, [esp + 0x124]
mov ebx, eax
call fcn.005ee1f0
push 0
lea eax, [esp + 0x124]
push eax
push ebx
lea ecx, [edi + 0x100]
mov dword [esp + 0x12c], 0
call fcn.00406780
test eax, eax
je 0x41401f
mov ecx, dword [esp + 0x128]
mov eax, dword [ecx]
test eax, eax
je 0x41401f
lea edx, [eax - 1]
mov eax, dword [esp + 0x60]
cmp edx, eax
jne 0x41401f
push eax
lea eax, [esp + 0x74]
push eax
jmp 0x414017
mov ecx, dword [esp + 0x60]
push ecx
lea edx, [esp + 0x74]
push edx
push esi
mov ecx, edi
call fcn.0040ffc0
mov eax, dword [esp + 0x18]
inc eax
cmp eax, dword [esp + 0x9c]
mov dword [esp + 0x18], eax
jl 0x413f80
cmp dword [esp + 0x70], 0
jle 0x4140f4
push 0
lea eax, [esp + 0x74]
push eax
lea ecx, [esp + 0x110]
push ecx
call fcn.0053c7d0
xor ebx, ebx
add esp, 0xc
cmp dword [esp + 0x108], ebx
jle 0x4140f4
push 0x84
call sub.MSVCR90.dll_void____cdecl_operator_new_unsigned_int_
mov esi, eax
add esp, 4
mov dword [esp + 0x4c], esi
mov byte [esp + 0x250], 0x23
test esi, esi
je 0x4140ae
mov eax, dword [0x67df8c]
push 0
mov ecx, eax
push 3
inc eax
push ecx
mov ecx, esi
mov dword [0x67df8c], eax
call dword [sym.imp.BMB_NX_C9.dll_public:_void___thiscall_BMBPattern::constructor_int__unsigned_char__char_const__]
mov dword [esi], vtable.BMBPattern.1.0
mov dword [esi + 0x6c], vtable.BMBPattern.0
jmp 0x4140b0
xor esi, esi
mov eax, dword [esp + 0x28]
inc eax
push eax
mov ecx, esi
mov byte [esp + 0x254], 0x22
call dword [sym.imp.BMB_NX_C9.dll_public:_void___thiscall_BMBSymbol::PutLayerNumber_short_int_]
mov edx, dword [esp + 0x110]
mov eax, dword [edx + ebx*4]
push 0
push eax
push esi
mov ecx, edi
call fcn.0040f3b0
mov ecx, dword [esp + 0x5c]
push esi
call dword [sym.imp.BMB_NX_C9.dll_public:_void___thiscall_BMBNet::AddPattern_class_BMBPattern__]
inc ebx
cmp ebx, dword [esp + 0x108]
jl 0x414066
lea ecx, [esp + 0x70]
call fcn.00513f80
lea ecx, [esp + 0x108]
call fcn.00513f80
mov ebx, dword [esp + 0x28]
inc ebx
cmp bx, word [esp + 0x54]
mov dword [esp + 0x28], ebx
jl 0x413e8a
lea ecx, [esp + 0x9c]
call fcn.005ee340
lea ecx, [esp + 0x108]
mov byte [esp + 0x250], 0x21
call fcn.0048f310
lea ecx, [esp + 0x70]
mov byte [esp + 0x250], 0x20
call fcn.0048f310
lea ecx, [esp + 0x120]
mov byte [esp + 0x250], 1
call fcn.005ee4c0
lea ecx, [esp + 0x9c]
mov byte [esp + 0x250], 0
call fcn.005ee4c0
lea ecx, [esp + 0xbc]
mov dword [esp + 0x250], 0xffffffff
call fcn.004ed1b0
mov ebx, dword [esp + 0x1b0]
lea ecx, [esp + 0x214]
call fcn.004a5c10
mov eax, dword [esp + 0x21c]
test eax, eax
jne 0x412580
cmp word [edi + 0x254], 2
jne 0x4159bc
mov ecx, dword [edi + 0x48]
push 3
call fcn.004dee40
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0x58]
call eax
push eax
lea ecx, [esp + 0xb8]
call fcn.004b7700
lea ecx, [esp + 0xb4]
mov dword [esp + 0x250], 0x24
call fcn.004b7720
lea ecx, [esp + 0xb4]
call fcn.004f32d0
test eax, eax
je 0x4159a5
jmp 0x414210
lea ecx, [esp + 0xb4]
call fcn.004f32d0
mov esi, eax
test esi, esi
je 0x415985
mov ecx, esi
call fcn.004a8b00
test eax, eax
je 0x415985
mov edx, dword [esi]
mov eax, dword [edx + 0x38]
mov ecx, esi
call eax
cmp eax, 0xe
je 0x414255
mov edx, dword [esi]
mov eax, dword [edx + 0x38]
mov ecx, esi
call eax
cmp eax, 0xf
jne 0x415985
mov edx, dword [esi]
mov eax, dword [edx + 0x38]
mov ecx, esi
call eax
mov ecx, esi
mov dword [esp + 0x14], eax
call fcn.004a8b00
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0x3c]
call eax
cmp eax, 0xce
je 0x415985
cmp eax, 0xcc
jne 0x415985
xor eax, eax
push 0xb0
mov dword [esp + 0x44], eax
mov dword [esp + 0x30], eax
call sub.MSVCR90.dll_void____cdecl_operator_new_unsigned_int_
mov ebx, eax
add esp, 4
mov dword [esp + 0x64], ebx
mov byte [esp + 0x250], 0x25
test ebx, ebx
je 0x4142d7
mov ecx, dword [0x67df8c]
push 1
push 0
push ecx
mov ecx, ebx
call dword [sym.imp.BMB_NX_C9.dll_public:_void___thiscall_BMB2DStack::constructor_int__unsigned_char__unsigned_char_]
mov dword [ebx], vtable.BMB2DStack.1.0
mov dword [ebx + 0x6c], vtable.BMB2DStack.0
mov dword [esp + 0x1c], ebx
jmp 0x4142df
mov dword [esp + 0x1c], 0
mov ebx, dword [esp + 0x14]
mov byte [esp + 0x250], 0x24
cmp ebx, 0xe
je 0x414303
cmp ebx, 0xf
je 0x414303
cmp ebx, 0xb
je 0x414303
cmp ebx, 0xc
jne 0x415985
push 0x62dc24
lea ecx, [esp + 0xe0]
call fcn.005e9060
inc dword [0x67df8c]
xor eax, eax
mov byte [esp + 0x250], 0x26
mov dword [esp + 0x54], eax
mov dword [esp + 0x6c], eax
cmp ebx, 0xe
je 0x4147e9
cmp ebx, 0xf
je 0x4147e9
cmp ebx, 0xc
jne 0x41466b
mov ecx, esi
call fcn.004a3cd0
mov ecx, eax
call fcn.00471270
mov ebx, eax
test ebx, ebx
je 0x415971
lea ecx, [esp + 0x178]
mov dword [esp + 0x54], 0
call fcn.00405fd0
push 0
lea edx, [esp + 0x17c]
push edx
push ebx
lea ecx, [edi + 0x100]
mov byte [esp + 0x25c], 0x3b
call fcn.00406820
test eax, eax
je 0x4143a2
mov eax, dword [esp + 0x180]
mov ecx, dword [eax]
mov dword [esp + 0x54], ecx
mov edx, dword [esi]
mov edx, dword [edx + 0xdc]
lea eax, [esp + 0x5c]
push eax
mov ecx, esi
mov dword [esp + 0x60], 0
call edx
mov eax, dword [esp + 0x5c]
test eax, eax
jne 0x4143dc
lea ecx, [esp + 0x178]
mov byte [esp + 0x250], 0x26
call fcn.005ee4c0
jmp 0x415971
cmp word [eax + 4], 1
jae 0x4143fc
lea ecx, [esp + 0x178]
mov byte [esp + 0x250], 0x26
call fcn.005ee4c0
jmp 0x415971
mov ecx, esi
call fcn.0046d010
mov ecx, eax
call fcn.004bbd50
push eax
lea ecx, [esp + 0x10c]
call fcn.005e9060
push 0x62dc28
lea ecx, [esp + 0x10c]
mov byte [esp + 0x254], 0x3c
call fcn.005e8f10
mov eax, dword [edi + 0x2c8]
lea ecx, [eax + 1]
mov dword [edi + 0x2c8], ecx
push eax
lea ecx, [esp + 0x10c]
call fcn.005e9050
push 0x7c
call sub.MSVCR90.dll_void____cdecl_operator_new_unsigned_int_
mov ebx, eax
add esp, 4
mov dword [esp + 0x64], ebx
mov byte [esp + 0x250], 0x3d
test ebx, ebx
je 0x4144ce
mov eax, dword [0x67df8c]
sub esp, 0xc
mov dword [esp + 0x20], eax
lea edx, [esp + 0x114]
inc eax
mov ecx, esp
mov dword [esp + 0x48], esp
push edx
mov dword [0x67df8c], eax
call fcn.005e8e10
lea eax, [esp + 0x168]
push eax
mov ecx, edi
call fcn.004277f0
mov eax, dword [eax]
mov ecx, dword [esp + 0x14]
or dword [esp + 0x24], 0x10
push eax
push 0
push ecx
mov ecx, ebx
mov byte [esp + 0x25c], 0x3e
call dword [sym.imp.BMB_NX_C9.dll_public:_void___thiscall_BMBPad::constructor_int__unsigned_char__char_const__]
mov dword [ebx], vtable.BMBPad.1.0
mov dword [ebx + 0x6c], vtable.BMBPad.0
mov dword [esp + 0x18], ebx
jmp 0x4144d6
mov dword [esp + 0x18], 0
test byte [esp + 0x24], 0x10
mov dword [esp + 0x250], 0x3c
je 0x4144fa
and dword [esp + 0x24], 0xffffffef
lea ecx, [esp + 0x15c]
call dword [sym.imp.mfc90.dll_Ordinal_601]
mov edx, dword [esp + 0x5c]
mov eax, dword [edx + 4]
xor ecx, ecx
xor ebx, ebx
cmp cx, ax
jae 0x41462c
fldz
fst dword [esp + 0x12c]
fstp dword [esp + 0x130]
mov edi, edi
mov edx, dword [esi]
mov eax, dword [edx + 0x7c]
mov ecx, esi
call eax
fstp dword [esp + 0x58]
mov edx, dword [esp + 0x5c]
xor eax, eax
mov dword [esp + 0x134], eax
mov dword [esp + 0x150], eax
mov eax, dword [edx + 8]
movzx ecx, bx
mov ecx, dword [eax + ecx*4]
mov eax, dword [esi]
mov dword [esp + 0x14], ecx
lea edx, [esp + 0x58]
push edx
mov edx, dword [eax + 0x5c]
lea ecx, [esp + 0x240]
push ecx
mov ecx, esi
call edx
mov edx, dword [esp + 0x18]
push eax
lea eax, [esp + 0x13c]
push eax
lea ecx, [esp + 0x15c]
push ecx
mov ecx, dword [esp + 0x28]
push edx
lea eax, [esp + 0x11c]
push eax
push ecx
mov ecx, edi
call fcn.0041b0c0
lea ecx, [esp + 0x190]
call dword [sym.imp.mfc90.dll_Ordinal_316]
mov edx, dword [esp + 0x108]
push edx
lea ecx, [esp + 0x194]
mov byte [esp + 0x254], 0x40
call dword [sym.imp.mfc90.dll_Ordinal_820]
mov ax, word [esp + 0x54]
mov ecx, dword [esp + 0x12c]
mov edx, dword [esp + 0x130]
sub esp, 0x10
mov word [esp + 0x1a4], ax
mov dword [esp + 0x1a8], ecx
lea eax, [esp + 0x1a0]
mov ecx, esp
mov dword [esp + 0x74], esp
push eax
mov dword [esp + 0x1b0], edx
call fcn.0040ae00
mov ecx, dword [esp + 0x2c]
push 0
call dword [sym.imp.BMB_NX_C9.dll_public:_void___thiscall_BMB2DStack::AddPad_class_BMBPad___struct_BMB_LinkPad_t_]
lea ecx, [esp + 0x190]
mov byte [esp + 0x250], 0x3c
call dword [sym.imp.mfc90.dll_Ordinal_601]
mov ecx, dword [esp + 0x5c]
movzx edx, word [ecx + 4]
inc ebx
movsx eax, bx
cmp eax, edx
jl 0x414520
mov ecx, dword [esp + 0x18]
push ecx
mov ecx, dword [esp + 0x8c]
call dword [sym.imp.BMB_NX_C9.dll_public:_void___thiscall_BMBMapPad::AddElement_class_BMBPad__]
lea ecx, [esp + 0x108]
mov byte [esp + 0x250], 0x3b
call fcn.005e8710
lea ecx, [esp + 0x178]
mov byte [esp + 0x250], 0x26
call fcn.005ee4c0
jmp 0x415856
cmp ebx, 0xb
jne 0x415856
mov edx, dword [esi]
mov eax, dword [edx + 0x7c]
mov ecx, esi
call eax
fstp dword [esp + 0x14]
fld dword [esp + 0x14]
push ecx
mov ecx, dword [esp + 0x20]
fstp dword [esp]
call dword [sym.imp.BMB_NX_C9.dll_public:_void___thiscall_BMB2DStack::PutRotation_float_]
mov ecx, esi
call fcn.004a3cd0
mov ecx, eax
call fcn.00471270
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0x3c]
call eax
movzx eax, ax
mov ecx, esi
mov dword [esp + 0x2c], eax
mov dword [esp + 0x40], eax
call fcn.0046d010
mov ecx, eax
call fcn.004bbd50
mov ecx, dword [edi + 0x34]
push eax
call fcn.00438fc0
mov ecx, eax
call fcn.004bc5f0
mov ebx, eax
test ebx, ebx
je 0x415971
mov ecx, esi
call fcn.004a3cd0
mov ecx, eax
call fcn.00471270
mov dword [esp + 0x14], eax
test eax, eax
je 0x415971
lea ecx, [esp + 0x1cc]
mov dword [esp + 0x54], 0
call fcn.00405fd0
mov edx, dword [esp + 0x14]
push 0
lea ecx, [esp + 0x1d0]
push ecx
push edx
lea ecx, [edi + 0x100]
mov byte [esp + 0x25c], 0x41
call fcn.00406820
test eax, eax
je 0x41473e
mov eax, dword [esp + 0x1d4]
mov ecx, dword [eax]
mov dword [esp + 0x54], ecx
lea ecx, [esp + 0x1a0]
call dword [sym.imp.mfc90.dll_Ordinal_316]
mov ecx, ebx
mov byte [esp + 0x250], 0x42
call fcn.004bbd50
push eax
lea ecx, [esp + 0x1a4]
call dword [sym.imp.mfc90.dll_Ordinal_820]
fldz
mov dx, word [esp + 0x54]
fst dword [esp + 0x148]
mov eax, dword [esp + 0x148]
fstp dword [esp + 0x14c]
mov ecx, dword [esp + 0x14c]
sub esp, 0x10
mov word [esp + 0x1b4], dx
mov dword [esp + 0x1bc], ecx
lea edx, [esp + 0x1b0]
mov ecx, esp
mov dword [esp + 0x74], esp
push edx
mov dword [esp + 0x1bc], eax
call fcn.0040ae00
mov ecx, dword [esp + 0x2c]
push 0
call dword [sym.imp.BMB_NX_C9.dll_public:_void___thiscall_BMB2DStack::AddPad_class_BMBPad___struct_BMB_LinkPad_t_]
lea ecx, [esp + 0x1a0]
call dword [sym.imp.mfc90.dll_Ordinal_601]
lea ecx, [esp + 0x1cc]
mov byte [esp + 0x250], 0x26
call fcn.005ee4c0
jmp 0x415856
xor ebx, ebx
lea ecx, [esp + 0x114]
mov dword [esp + 0x50], ebx
call fcn.00405fd0
lea ecx, [esp + 0x184]
mov byte [esp + 0x250], 0x27
call fcn.00405fd0
mov eax, dword [esi]
mov edx, dword [eax + 0x38]
mov ecx, esi
mov byte [esp + 0x250], 0x28
call edx
cmp eax, 0xf
jne 0x41486b
lea eax, [esp + 0x14]
push eax
lea ecx, [esp + 0x188]
push ecx
lea edx, [esp + 0x11c]
push edx
mov ecx, esi
mov dword [esp + 0x5c], esi
mov dword [esp + 0x20], ebx
call fcn.004bb080
cmp dword [esp + 0x114], ebx
jle 0x41485a
mov dword [esp + 0x54], 1
cmp dword [esp + 0x184], ebx
jle 0x41486b
mov dword [esp + 0x6c], 1
mov ecx, esi
call fcn.0046d010
mov ecx, eax
call fcn.004b5d80
mov ecx, dword [edi + 0x34]
push ebx
push eax
call fcn.0046ce00
mov ecx, eax
call fcn.004b3f70
test byte [eax + 0x20], 1
mov dword [esp + 0x28], eax
je 0x414897
push ebx
jmp 0x414899
push 1
mov ebx, dword [esp + 0x20]
mov ecx, ebx
call dword [sym.imp.BMB_NX_C9.dll_public:_void___thiscall_BMB2DStack::PutPlated_unsigned_char_]
mov eax, dword [esi]
mov edx, dword [eax + 0x7c]
mov ecx, esi
call edx
fstp dword [esp + 0x14]
fld dword [esp + 0x14]
push ecx
mov ecx, ebx
fstp dword [esp]
call dword [sym.imp.BMB_NX_C9.dll_public:_void___thiscall_BMB2DStack::PutRotation_float_]
lea eax, [esp + 0x220]
push eax
mov ecx, esi
call fcn.0046d010
mov ecx, eax
call fcn.004b6050
mov ecx, dword [eax + 4]
mov eax, dword [eax]
push ecx
push eax
lea ecx, [esp + 0xe4]
mov byte [esp + 0x258], 0x29
call fcn.005e8730
lea ecx, [esp + 0x220]
mov byte [esp + 0x250], 0x28
call fcn.005e8710
cmp dword [edi + 0x2c4], 2
movzx eax, word [esi + 0x5c]
movzx ecx, ax
movzx eax, word [esi + 0x5e]
movzx edx, ax
mov dword [esp + 0x40], ecx
mov dword [esp + 0x2c], edx
jne 0x414936
mov ecx, ebx
call dword [sym.imp.BMB_NX_C9.dll_public:_unsigned_char___thiscall_BMB2DStack::GetPlated_void_]
cmp al, 1
je 0x414af5
mov eax, dword [esi]
mov edx, dword [eax + 0xe0]
mov ecx, esi
call edx
test eax, eax
je 0x414af5
mov eax, dword [esi]
mov edx, dword [eax + 0xf4]
lea ecx, [esp + 0x18]
push ecx
mov ecx, esi
mov dword [esp + 0x1c], 0
call edx
lea ecx, [esp + 0x1b4]
call fcn.00405fd0
mov ecx, dword [edi + 0x48]
push 3
mov byte [esp + 0x254], 0x2a
call fcn.004dee40
test eax, eax
je 0x414ae1
push 0
lea ecx, [esp + 0x1b8]
push ecx
push eax
lea ecx, [edi + 0x100]
call fcn.00406780
test eax, eax
je 0x414ae1
mov edx, dword [esp + 0x18]
push edx
mov ecx, edi
call fcn.0040b9d0
cmp eax, 1
jne 0x414ae1
cmp byte [edi + 0x291], al
jne 0x414ae1
mov eax, dword [esp + 0x1bc]
mov ecx, dword [eax]
push 0x7c
mov dword [esp + 0x18], ecx
call sub.MSVCR90.dll_void____cdecl_operator_new_unsigned_int_
mov ebx, eax
add esp, 4
mov dword [esp + 0x64], ebx
mov byte [esp + 0x250], 0x2b
test ebx, ebx
je 0x414a0f
mov edx, dword [0x67df8c]
push edx
mov ecx, ebx
call dword [sym.imp.BMB_NX_C9.dll_public:_void___thiscall_BMBHole::constructor_int_]
mov dword [ebx], vtable.BMBHole.1.0
mov dword [ebx + 0x6c], vtable.BMBHole.0
jmp 0x414a11
xor ebx, ebx
inc dword [0x67df8c]
mov eax, dword [esi]
mov edx, dword [eax + 0x7c]
mov ecx, esi
mov byte [esp + 0x250], 0x2a
call edx
fstp dword [esp + 0x174]
xor eax, eax
push eax
lea ecx, [esp + 0x1fc]
mov dword [esp + 0x174], eax
mov dword [esp + 0x34], eax
call fcn.005e8640
mov edx, dword [esi]
mov edx, dword [edx + 0x5c]
lea eax, [esp + 0x174]
push eax
lea eax, [esp + 0x238]
push eax
mov ecx, esi
mov byte [esp + 0x258], 0x2c
call edx
mov edx, dword [esp + 0x1c]
push eax
lea eax, [esp + 0x178]
push eax
lea ecx, [esp + 0x3c]
push ecx
push edx
lea eax, [esp + 0x20c]
push eax
push ebx
mov ecx, edi
call fcn.0041b2c0
lea ecx, [esp + 0x1f8]
mov byte [esp + 0x250], 0x2a
call fcn.005e8710
mov ecx, dword [esp + 0x14]
push ecx
mov ecx, ebx
call dword [sym.imp.BMB_NX_C9.dll_public:_void___thiscall_BMBSymbol::PutLayerNumber_short_int_]
mov eax, dword [edi + 0x264]
cmp eax, 1
je 0x414ad6
mov ecx, dword [esp + 0x1c]
cmp eax, 2
jne 0x414acc
call dword [sym.imp.BMB_NX_C9.dll_public:_unsigned_char___thiscall_BMB2DStack::GetPlated_void_]
test al, al
jmp 0x414ad4
call dword [sym.imp.BMB_NX_C9.dll_public:_unsigned_char___thiscall_BMB2DStack::GetPlated_void_]
cmp al, 1
jne 0x414ae1
mov ecx, dword [esp + 0x1c]
push ebx
call dword [sym.imp.BMB_NX_C9.dll_public:_void___thiscall_BMB2DStack::PutHole_class_BMBHole__]
lea ecx, [esp + 0x1b4]
mov byte [esp + 0x250], 0x28
call fcn.005ee4c0
movzx ebx, word [esi + 0x5c]
movzx edx, word [esi + 0x5e]
lea ecx, [esp + 0x70]
mov dword [esp + 0x64], ebx
mov dword [esp + 0x48], edx
call fcn.00405fd0
cmp bx, word [esp + 0x48]
movzx eax, bx
mov byte [esp + 0x250], 0x2d
mov dword [esp + 0x20], eax
jg 0x4150ff
jmp 0x414b30
mov eax, dword [edi + 0x48]
movzx ecx, word [esp + 0x20]
mov edx, dword [eax + 0x30]
cmp edx, ecx
jle 0x414b76
mov edx, dword [eax + 0x34]
mov ebx, dword [edx + ecx*4]
lea eax, [edx + ecx*4]
test ebx, ebx
je 0x414b76
mov eax, dword [ebx + 8]
test eax, eax
jne 0x414b72
mov eax, dword [ebx + 4]
and eax, 0x7f
mov dword [esp + 0x14], eax
call fcn.004fe0e0
mov ecx, dword [esp + 0x14]
mov eax, dword [eax + ecx*4 - 4]
push ebx
mov ecx, eax
call fcn.004fd530
mov ecx, eax
jmp 0x414b78
xor ecx, ecx
mov edx, dword [ecx]
mov eax, dword [edx + 0x3c]
call eax
movzx ecx, ax
push ecx
mov ecx, dword [esp + 0x2c]
call fcn.004b5db0
mov ebx, eax
mov dword [esp + 0x7c], ebx
test ebx, ebx
je 0x4150eb
mov edx, dword [esp + 0x20]
mov ecx, dword [edi + 0x48]
push edx
call fcn.00407010
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0x20]
push eax
mov ecx, esi
call fcn.004b12c0
mov edx, dword [esp + 0x14]
push 0
lea ecx, [esp + 0x74]
push ecx
push edx
lea ecx, [edi + 0x100]
mov dword [esp + 0x48], eax
mov dword [esp + 0x6c], 0
call fcn.00406820
test eax, eax
je 0x4150eb
mov eax, dword [esp + 0x78]
mov eax, dword [eax]
mov dword [esp + 0x84], eax
test eax, eax
je 0x4150eb
cmp dword [esp + 0x54], 1
jne 0x414f76
mov ecx, dword [edi + 0x34]
mov edx, dword [esp + 0x3c]
mov dword [esp + 0x14], ecx
push edx
mov ecx, ebx
call fcn.004bccb0
mov ecx, dword [esp + 0x14]
movzx eax, ax
push eax
call fcn.00438fc0
mov ecx, eax
call fcn.004bc570
mov dword [esp + 0x3c], eax
test eax, eax
je 0x4150eb
mov ecx, eax
call fcn.004bbd50
test eax, eax
je 0x4150eb
cmp dword [esp + 0x114], 0
mov dword [esp + 0x44], 0
jle 0x414f76
lea ebx, [ebx]
mov ecx, dword [esp + 0x11c]
mov edx, dword [esp + 0x44]
movzx ecx, word [ecx + edx*2]
movsx eax, word [esp + 0x20]
cmp eax, ecx
jne 0x414f51
mov edx, dword [esp + 0x20]
mov ecx, dword [edi + 0x48]
push edx
mov dword [esp + 0x64], 1
mov dword [esp + 0x38], 0
call fcn.00407010
mov ecx, dword [edi + 0x34]
mov ebx, dword [esi]
lea edx, [esp + 0x34]
push edx
mov edx, dword [eax]
mov dword [esp + 0x18], ecx
mov ecx, eax
mov eax, dword [edx + 0x3c]
add ebx, 0xec
call eax
movzx ecx, ax
push ecx
mov ecx, dword [esp + 0x1c]
call fcn.00438fc0
mov edx, dword [ebx]
push eax
mov ecx, esi
call edx
mov eax, dword [esp + 0x34]
test eax, eax
je 0x414f51
cmp word [eax + 4], 1
jb 0x414f51
mov ecx, dword [esp + 0x3c]
call fcn.004bbd50
push eax
lea ecx, [esp + 0x100]
call fcn.005e9060
push 0x62dc28
lea ecx, [esp + 0x100]
mov byte [esp + 0x254], 0x2e
call fcn.005e8f10
mov eax, dword [edi + 0x2c8]
lea ecx, [eax + 1]
mov dword [edi + 0x2c8], ecx
push eax
lea ecx, [esp + 0x100]
call fcn.005e9050
push 0x7c
call sub.MSVCR90.dll_void____cdecl_operator_new_unsigned_int_
mov ebx, eax
add esp, 4
mov dword [esp + 0xe8], ebx
mov byte [esp + 0x250], 0x2f
test ebx, ebx
je 0x414db1
mov eax, dword [0x67df8c]
sub esp, 0xc
mov dword [esp + 0x20], eax
lea edx, [esp + 0x108]
inc eax
mov ecx, esp
mov dword [esp + 0x24], esp
push edx
mov dword [0x67df8c], eax
call fcn.005e8e10
lea eax, [esp + 0x178]
push eax
mov ecx, edi
call fcn.004277f0
mov eax, dword [eax]
mov ecx, dword [esp + 0x14]
or dword [esp + 0x24], 4
push eax
push 0
push ecx
mov ecx, ebx
mov byte [esp + 0x25c], 0x30
call dword [sym.imp.BMB_NX_C9.dll_public:_void___thiscall_BMBPad::constructor_int__unsigned_char__char_const__]
mov dword [ebx], vtable.BMBPad.1.0
mov dword [ebx + 0x6c], vtable.BMBPad.0
mov dword [esp + 0x18], ebx
jmp 0x414db9
mov dword [esp + 0x18], 0
test byte [esp + 0x24], 4
mov dword [esp + 0x250], 0x2e
je 0x414ddd
and dword [esp + 0x24], 0xfffffffb
lea ecx, [esp + 0x16c]
call dword [sym.imp.mfc90.dll_Ordinal_601]
mov edx, dword [esp + 0x34]
mov eax, dword [edx + 4]
xor ecx, ecx
xor ebx, ebx
cmp cx, ax
jae 0x414f2b
fldz
fst dword [esp + 0x13c]
fstp dword [esp + 0x140]
mov edx, dword [esi]
mov eax, dword [edx + 0x7c]
mov ecx, esi
call eax
fstp dword [esp + 0x168]
mov ecx, dword [esp + 0x28]
call fcn.004b6180
mov ecx, dword [esp + 0x28]
movzx edx, word [ecx + 0x20]
mov ecx, dword [esp + 0x34]
shr edx, 2
mov dword [esp + 0x158], eax
and edx, 1
mov dword [esp + 0x144], edx
mov edx, dword [ecx + 8]
movzx eax, bx
mov eax, dword [edx + eax*4]
mov edx, dword [esi]
mov edx, dword [edx + 0x5c]
lea ecx, [esp + 0x168]
mov dword [esp + 0x14], eax
push ecx
lea eax, [esp + 0x230]
push eax
mov ecx, esi
call edx
mov edx, dword [esp + 0x18]
push eax
lea eax, [esp + 0x160]
push eax
lea ecx, [esp + 0x150]
push ecx
mov ecx, dword [esp + 0x28]
push edx
lea eax, [esp + 0x110]
push eax
push ecx
mov ecx, edi
call fcn.0041b0c0
lea ecx, [esp + 0x1d8]
call dword [sym.imp.mfc90.dll_Ordinal_316]
mov edx, dword [esp + 0xfc]
push edx
lea ecx, [esp + 0x1dc]
mov byte [esp + 0x254], 0x32
call dword [sym.imp.mfc90.dll_Ordinal_820]
mov ax, word [esp + 0x84]
mov ecx, dword [esp + 0x13c]
mov edx, dword [esp + 0x140]
sub esp, 0x10
mov word [esp + 0x1ec], ax
mov dword [esp + 0x1f0], ecx
lea eax, [esp + 0x1e8]
mov ecx, esp
mov dword [esp + 0x24], esp
push eax
mov dword [esp + 0x1f8], edx
call fcn.0040ae00
mov ecx, dword [esp + 0x2c]
push 0
call dword [sym.imp.BMB_NX_C9.dll_public:_void___thiscall_BMB2DStack::AddPad_class_BMBPad___struct_BMB_LinkPad_t_]
lea ecx, [esp + 0x1d8]
mov byte [esp + 0x250], 0x2e
call dword [sym.imp.mfc90.dll_Ordinal_601]
mov ecx, dword [esp + 0x34]
movzx edx, word [ecx + 4]
inc ebx
movsx eax, bx
cmp eax, edx
jl 0x414e01
mov ecx, dword [esp + 0x18]
push ecx
mov ecx, dword [esp + 0x8c]
call dword [sym.imp.BMB_NX_C9.dll_public:_void___thiscall_BMBMapPad::AddElement_class_BMBPad__]
lea ecx, [esp + 0xfc]
mov byte [esp + 0x250], 0x2d
call fcn.005e8710
mov eax, dword [esp + 0x44]
inc eax
cmp eax, dword [esp + 0x114]
mov dword [esp + 0x44], eax
jl 0x414c60
cmp dword [esp + 0x60], 1
je 0x4150eb
mov ebx, dword [esp + 0x7c]
mov edx, dword [edi + 0x34]
push 0
mov ecx, ebx
mov dword [esp + 0x18], edx
call fcn.004bccb0
mov ecx, dword [esp + 0x14]
movzx eax, ax
push eax
call fcn.00438fc0
mov ecx, eax
call fcn.004bc570
mov ecx, dword [edi + 0x34]
mov dword [esp + 0x14], ecx
push 1
mov ecx, ebx
mov dword [esp + 0x80], eax
call fcn.004bccb0
mov ecx, dword [esp + 0x14]
movzx edx, ax
push edx
call fcn.00438fc0
mov ecx, eax
call fcn.004bc570
mov dword [esp + 0xe8], eax
mov eax, dword [edi + 0x34]
push 2
mov ecx, ebx
mov dword [esp + 0x18], eax
call fcn.004bccb0
movzx ecx, ax
push ecx
mov ecx, dword [esp + 0x18]
call fcn.00438fc0
mov ecx, eax
call fcn.004bc570
mov edx, dword [edi + 0x34]
push 3
mov ecx, ebx
mov dword [esp + 0x40], eax
mov dword [esp + 0x18], edx
call fcn.004bccb0
mov ecx, dword [esp + 0x14]
movzx eax, ax
push eax
call fcn.00438fc0
mov ecx, eax
call fcn.004bc570
mov ecx, dword [esp + 0x20]
push ecx
mov ecx, dword [edi + 0x48]
mov ebx, eax
call fcn.00407010
cmp dword [eax + 0x34], 1
jne 0x415037
test ebx, ebx
jne 0x41504e
mov ebx, dword [esp + 0x3c]
jmp 0x415046
mov ebx, dword [esp + 0x7c]
test ebx, ebx
jne 0x41504e
mov ebx, dword [esp + 0xe8]
test ebx, ebx
je 0x4150eb
lea ecx, [esp + 0x204]
call dword [sym.imp.mfc90.dll_Ordinal_316]
mov ecx, ebx
mov byte [esp + 0x250], 0x33
call fcn.004bbd50
push eax
lea ecx, [esp + 0x208]
call dword [sym.imp.mfc90.dll_Ordinal_820]
fldz
mov dx, word [esp + 0x84]
fst dword [esp + 0x160]
mov eax, dword [esp + 0x160]
fstp dword [esp + 0x164]
mov ecx, dword [esp + 0x164]
sub esp, 0x10
mov word [esp + 0x218], dx
mov dword [esp + 0x220], ecx
lea edx, [esp + 0x214]
mov ecx, esp
mov dword [esp + 0x24], esp
push edx
mov dword [esp + 0x220], eax
call fcn.0040ae00
mov ecx, dword [esp + 0x2c]
push 0
call dword [sym.imp.BMB_NX_C9.dll_public:_void___thiscall_BMB2DStack::AddPad_class_BMBPad___struct_BMB_LinkPad_t_]
lea ecx, [esp + 0x204]
mov byte [esp + 0x250], 0x2d
call dword [sym.imp.mfc90.dll_Ordinal_601]
mov eax, dword [esp + 0x20]
inc eax
cmp ax, word [esp + 0x48]
mov dword [esp + 0x20], eax
jle 0x414b30
cmp dword [esp + 0x6c], 1
jne 0x415613
mov ecx, dword [edi + 0x48]
xor eax, eax
cmp dword [ecx + 0x3c], eax
mov dword [esp + 0x54], eax
mov dword [esp + 0x20], eax
jle 0x41581d
movzx ecx, word [esp + 0x20]
mov eax, dword [edi + 0x48]
mov eax, dword [eax + 0x40]
movzx edx, cx
mov ebx, dword [eax + edx*4]
lea eax, [eax + edx*4]
mov dword [esp + 0x3c], ecx
test ebx, ebx
je 0x415166
mov eax, dword [ebx + 8]
test eax, eax
jne 0x415162
mov eax, dword [ebx + 4]
and eax, 0x7f
mov dword [esp + 0x14], eax
call fcn.004fe0e0
mov ecx, dword [esp + 0x14]
mov eax, dword [eax + ecx*4 - 4]
push ebx
mov ecx, eax
call fcn.004fd530
mov ebx, eax
jmp 0x415168
xor ebx, ebx
push 0
lea edx, [esp + 0x74]
push edx
push ebx
lea ecx, [edi + 0x100]
call fcn.00406820
test eax, eax
je 0x4155f9
mov eax, dword [ebx]
mov edx, dword [eax + 0x3c]
mov ecx, ebx
call edx
mov ecx, dword [esp + 0x28]
movzx eax, ax
push eax
call fcn.004b5e10
test eax, eax
je 0x4155f9
mov ecx, dword [edi + 0x34]
push eax
call fcn.00438fc0
mov ecx, eax
call fcn.004bc570
mov dword [esp + 0x60], eax
test eax, eax
je 0x4155f9
mov ecx, dword [esp + 0x184]
xor eax, eax
test ecx, ecx
jle 0x4151e8
mov edx, dword [esp + 0x18c]
movzx ebx, word [edx + eax*2]
cmp dword [esp + 0x20], ebx
jne 0x4151e3
mov dword [esp + 0x54], 1
inc eax
cmp eax, ecx
jl 0x4151d1
cmp dword [esp + 0x54], 1
jne 0x415509
mov edx, dword [esp + 0x50]
mov ebx, dword [edx]
mov edx, dword [esp + 0x3c]
mov ecx, dword [edi + 0x34]
lea eax, [esp + 0x34]
push eax
push edx
mov dword [esp + 0x3c], 0
add ebx, 0xf0
call fcn.00438fc0
mov ecx, dword [esp + 0x58]
push eax
mov eax, dword [ebx]
call eax
cmp dword [esp + 0x70], 0
mov dword [esp + 0x48], 0
jle 0x4155f9
mov eax, dword [esp + 0x34]
lea esp, [esp]
test eax, eax
je 0x4154f1
cmp word [eax + 4], 1
jb 0x4154f1
mov ecx, dword [esp + 0x60]
call fcn.004bbd50
push eax
lea ecx, [esp + 0x124]
call fcn.005e9060
push 0x62dc28
lea ecx, [esp + 0x124]
mov byte [esp + 0x254], 0x34
call fcn.005e8f10
mov eax, dword [edi + 0x2c8]
lea ecx, [eax + 1]
mov dword [edi + 0x2c8], ecx
push eax
lea ecx, [esp + 0x124]
call fcn.005e9050
push 0x7c
call sub.MSVCR90.dll_void____cdecl_operator_new_unsigned_int_
mov ebx, eax
add esp, 4
mov dword [esp + 0x64], ebx
mov byte [esp + 0x250], 0x35
test ebx, ebx
je 0x415320
mov eax, dword [0x67df8c]
sub esp, 0xc
mov dword [esp + 0x20], eax
lea edx, [esp + 0x12c]
inc eax
mov ecx, esp
mov dword [esp + 0x48], esp
push edx
mov dword [0x67df8c], eax
call fcn.005e8e10
lea eax, [esp + 0x144]
push eax
mov ecx, edi
call fcn.004277f0
mov eax, dword [eax]
mov ecx, dword [esp + 0x14]
or dword [esp + 0x24], 8
push eax
push 0
push ecx
mov ecx, ebx
mov byte [esp + 0x25c], 0x36
call dword [sym.imp.BMB_NX_C9.dll_public:_void___thiscall_BMBPad::constructor_int__unsigned_char__char_const__]
mov dword [ebx], vtable.BMBPad.1.0
mov dword [ebx + 0x6c], vtable.BMBPad.0
mov dword [esp + 0x44], ebx
jmp 0x415328
mov dword [esp + 0x44], 0
test byte [esp + 0x24], 8
mov dword [esp + 0x250], 0x34
je 0x41534c
and dword [esp + 0x24], 0xfffffff7
lea ecx, [esp + 0x138]
call dword [sym.imp.mfc90.dll_Ordinal_601]
mov edx, dword [esp + 0x34]
mov eax, dword [edx + 4]
xor ecx, ecx
mov dword [esp + 0x18], 0
cmp cx, ax
jae 0x4154c7
fldz
fst dword [esp + 0xbc]
fstp dword [esp + 0xc0]
mov edx, dword [esi]
mov eax, dword [edx + 0x7c]
mov ecx, esi
call eax
fstp dword [esp + 0x154]
mov ebx, dword [esp + 0x28]
mov ecx, ebx
call fcn.004b6180
movzx ecx, word [ebx + 0x20]
movzx edx, word [esp + 0x18]
shr ecx, 2
mov dword [esp + 0x80], eax
mov eax, dword [esp + 0x34]
and ecx, 1
mov dword [esp + 0xc8], ecx
mov ecx, dword [eax + 8]
mov ebx, dword [ecx + edx*4]
mov eax, dword [esi]
lea edx, [esp + 0x154]
push edx
mov edx, dword [eax + 0x5c]
lea ecx, [esp + 0x1c4]
push ecx
mov ecx, esi
call edx
push eax
lea eax, [esp + 0x88]
push eax
mov eax, dword [esp + 0x50]
lea ecx, [esp + 0xd4]
push ecx
push ebx
lea edx, [esp + 0x134]
push edx
push eax
mov ecx, edi
call fcn.0041b0c0
lea ecx, [esp + 0xec]
call dword [sym.imp.mfc90.dll_Ordinal_316]
mov ecx, dword [esp + 0x120]
push ecx
lea ecx, [esp + 0xf0]
mov byte [esp + 0x254], 0x38
call dword [sym.imp.mfc90.dll_Ordinal_820]
mov edx, dword [esp + 0x78]
mov eax, dword [esp + 0x48]
mov cx, word [edx + eax*4]
mov edx, dword [esp + 0xbc]
mov eax, dword [esp + 0xc0]
sub esp, 0x10
mov word [esp + 0x100], cx
mov ebx, esp
lea ecx, [esp + 0xfc]
mov dword [esp + 0x74], esp
push ecx
mov ecx, ebx
mov dword [esp + 0x108], edx
mov dword [esp + 0x10c], eax
call dword [sym.imp.mfc90.dll_Ordinal_300]
mov dx, word [esp + 0x100]
mov word [ebx + 4], dx
mov eax, dword [esp + 0x104]
mov dword [ebx + 8], eax
mov ecx, dword [esp + 0x108]
mov dword [ebx + 0xc], ecx
mov ecx, dword [esp + 0x2c]
push 0
call dword [sym.imp.BMB_NX_C9.dll_public:_void___thiscall_BMB2DStack::AddPad_class_BMBPad___struct_BMB_LinkPad_t_]
lea ecx, [esp + 0xec]
mov byte [esp + 0x250], 0x34
call dword [sym.imp.mfc90.dll_Ordinal_601]
mov eax, dword [esp + 0x18]
mov edx, dword [esp + 0x34]
movzx ecx, word [edx + 4]
inc eax
movsx edx, ax
cmp edx, ecx
mov dword [esp + 0x18], eax
jl 0x415376
mov eax, dword [esp + 0x44]
mov ecx, dword [esp + 0x88]
push eax
call dword [sym.imp.BMB_NX_C9.dll_public:_void___thiscall_BMBMapPad::AddElement_class_BMBPad__]
lea ecx, [esp + 0x120]
mov byte [esp + 0x250], 0x2d
call fcn.005e8710
mov eax, dword [esp + 0x34]
mov ecx, dword [esp + 0x48]
inc ecx
cmp ecx, dword [esp + 0x70]
mov dword [esp + 0x48], ecx
jl 0x415240
jmp 0x4155f9
cmp dword [esp + 0x70], 0
mov dword [esp + 0x18], 0
jle 0x4155f9
fldz
fst dword [esp + 0x1e8]
fstp dword [esp + 0x1ec]
lea esp, [esp]
lea ecx, [esp + 0xcc]
call dword [sym.imp.mfc90.dll_Ordinal_316]
mov ecx, dword [esp + 0x60]
mov byte [esp + 0x250], 0x39
call fcn.004bbd50
push eax
lea ecx, [esp + 0xd0]
call dword [sym.imp.mfc90.dll_Ordinal_820]
mov ecx, dword [esp + 0x78]
mov edx, dword [esp + 0x18]
mov ax, word [ecx + edx*4]
mov ecx, dword [esp + 0x1e8]
mov edx, dword [esp + 0x1ec]
sub esp, 0x10
mov word [esp + 0xe0], ax
mov ebx, esp
lea eax, [esp + 0xdc]
mov dword [esp + 0xe4], ecx
mov dword [esp + 0x74], esp
push eax
mov ecx, ebx
mov dword [esp + 0xec], edx
call dword [sym.imp.mfc90.dll_Ordinal_300]
mov cx, word [esp + 0xe0]
mov word [ebx + 4], cx
mov edx, dword [esp + 0xe4]
mov ecx, dword [esp + 0x2c]
mov dword [ebx + 8], edx
mov eax, dword [esp + 0xe8]
push 0
mov dword [ebx + 0xc], eax
call dword [sym.imp.BMB_NX_C9.dll_public:_void___thiscall_BMB2DStack::AddPad_class_BMBPad___struct_BMB_LinkPad_t_]
lea ecx, [esp + 0xcc]
mov byte [esp + 0x250], 0x2d
call dword [sym.imp.mfc90.dll_Ordinal_601]
mov eax, dword [esp + 0x18]
inc eax
cmp eax, dword [esp + 0x70]
mov dword [esp + 0x18], eax
jl 0x415530
mov eax, dword [esp + 0x20]
mov ecx, dword [edi + 0x48]
inc eax
cmp eax, dword [ecx + 0x3c]
mov dword [esp + 0x20], eax
jl 0x415120
jmp 0x41581d
mov edx, dword [edi + 0x48]
cmp dword [edx + 0x3c], 0
mov dword [esp + 0x44], 0
jle 0x41581d
mov eax, dword [edi + 0x48]
movzx ecx, word [esp + 0x44]
mov edx, dword [eax + 0x40]
mov ebx, dword [edx + ecx*4]
lea eax, [edx + ecx*4]
test ebx, ebx
je 0x415667
mov eax, dword [ebx + 8]
test eax, eax
jne 0x415663
mov eax, dword [ebx + 4]
and eax, 0x7f
mov dword [esp + 0x14], eax
call fcn.004fe0e0
mov ecx, dword [esp + 0x14]
mov eax, dword [eax + ecx*4 - 4]
push ebx
mov ecx, eax
call fcn.004fd530
mov ebx, eax
jmp 0x415669
xor ebx, ebx
push 0
lea edx, [esp + 0x74]
push edx
push ebx
lea ecx, [edi + 0x100]
call fcn.00406820
test eax, eax
je 0x415808
mov eax, dword [ebx]
mov edx, dword [eax + 0x3c]
mov ecx, ebx
call edx
mov ecx, dword [esp + 0x28]
movzx eax, ax
push eax
call fcn.004b5e10
test eax, eax
je 0x415808
mov ecx, dword [edi + 0x34]
push eax
call fcn.00438fc0
mov ecx, eax
call fcn.004bc570
mov dword [esp + 0x14], eax
test eax, eax
je 0x415808
xor ebx, ebx
cmp dword [esp + 0x70], ebx
mov dword [esp + 0x18], ebx
jle 0x415808
mov edi, edi
lea ecx, [esp + 0x8c]
call dword [sym.imp.mfc90.dll_Ordinal_316]
mov ecx, dword [esp + 0x78]
mov eax, dword [ecx + ebx*4]
push eax
lea ecx, [edi + 0x100]
mov byte [esp + 0x254], 0x3a
call fcn.00406430
test eax, eax
je 0x415744
movsx edx, word [esp + 0x64]
inc edx
cmp eax, edx
jge 0x415720
lea ecx, [esp + 0x8c]
mov byte [esp + 0x250], 0x2d
call dword [sym.imp.mfc90.dll_Ordinal_601]
jmp 0x4157f9
movsx ecx, word [esp + 0x48]
inc ecx
cmp eax, ecx
jle 0x415744
lea ecx, [esp + 0x8c]
mov byte [esp + 0x250], 0x2d
call dword [sym.imp.mfc90.dll_Ordinal_601]
jmp 0x4157f9
mov ecx, dword [esp + 0x14]
call fcn.004bbd50
push eax
lea ecx, [esp + 0x90]
call dword [sym.imp.mfc90.dll_Ordinal_820]
fldz
mov edx, dword [esp + 0x78]
fst dword [esp + 0x1f0]
mov eax, dword [esp + 0x18]
fstp dword [esp + 0x1f4]
mov cx, word [edx + eax*4]
mov edx, dword [esp + 0x1f0]
mov eax, dword [esp + 0x1f4]
sub esp, 0x10
mov word [esp + 0xa0], cx
mov ebx, esp
lea ecx, [esp + 0x9c]
mov dword [esp + 0x4c], esp
push ecx
mov ecx, ebx
mov dword [esp + 0xa8], edx
mov dword [esp + 0xac], eax
call dword [sym.imp.mfc90.dll_Ordinal_300]
mov dx, word [esp + 0xa0]
mov word [ebx + 4], dx
mov eax, dword [esp + 0xa4]
mov dword [ebx + 8], eax
mov ecx, dword [esp + 0xa8]
mov dword [ebx + 0xc], ecx
mov ecx, dword [esp + 0x2c]
push 0
call dword [sym.imp.BMB_NX_C9.dll_public:_void___thiscall_BMB2DStack::AddPad_class_BMBPad___struct_BMB_LinkPad_t_]
lea ecx, [esp + 0x8c]
mov byte [esp + 0x250], 0x2d
call dword [sym.imp.mfc90.dll_Ordinal_601]
mov ebx, dword [esp + 0x18]
inc ebx
cmp ebx, dword [esp + 0x70]
mov dword [esp + 0x18], ebx
jl 0x4156d0
mov eax, dword [esp + 0x44]
mov edx, dword [edi + 0x48]
inc eax
cmp eax, dword [edx + 0x3c]
mov dword [esp + 0x44], eax
jl 0x415628
lea ecx, [esp + 0x70]
mov byte [esp + 0x250], 0x28
call fcn.005ee4c0
lea ecx, [esp + 0x184]
mov byte [esp + 0x250], 0x27
call fcn.005ee4c0
lea ecx, [esp + 0x114]
mov byte [esp + 0x250], 0x26
call fcn.005ee4c0
mov eax, dword [edi + 0x48]
mov eax, dword [eax + 0x30]
mov ebx, dword [esp + 0x40]
dec eax
movzx eax, ax
test ebx, ebx
jne 0x415876
movsx ecx, ax
mov byte [esp + 0x38], 1
cmp dword [esp + 0x2c], ecx
je 0x41587b
mov byte [esp + 0x38], 2
mov edx, dword [esi]
mov edx, dword [edx + 0x5c]
lea eax, [esp + 0x9c]
push eax
mov ecx, esi
call edx
mov eax, dword [eax]
lea ecx, [esp + 0xc4]
push ecx
mov ecx, edi
mov dword [esp + 0xc8], eax
call fcn.00427770
fstp dword [esp + 0x14]
mov edx, dword [esi]
mov edx, dword [edx + 0x5c]
lea eax, [esp + 0xa8]
push eax
mov ecx, esi
call edx
mov eax, dword [eax + 4]
lea ecx, [esp + 0x4c]
push ecx
mov ecx, edi
mov dword [esp + 0x50], eax
call fcn.00427770
fstp dword [esp + 0x64]
push 0x8c
call sub.MSVCR90.dll_void____cdecl_operator_new_unsigned_int_
mov esi, eax
add esp, 4
mov dword [esp + 0x3c], esi
mov byte [esp + 0x250], 0x43
test esi, esi
je 0x415921
fld dword [esp + 0x64]
mov edx, dword [0x67df8c]
push 0
sub esp, 8
fstp dword [esp + 4]
mov ecx, esi
fld dword [esp + 0x20]
fstp dword [esp]
push edx
call dword [sym.imp.BMB_NX_C9.dll_public:_void___thiscall_BMBVia::constructor_int__float__float__class_BMB2DStack__]
mov dword [esi], vtable.BMBVia.1.0
mov dword [esi + 0x6c], vtable.BMBVia.0
jmp 0x415923
xor esi, esi
mov eax, dword [esp + 0x1c]
push eax
mov ecx, esi
mov byte [esp + 0x254], 0x26
call dword [sym.imp.BMB_NX_C9.dll_public:_void___thiscall_BMBVia::PutStack_class_BMB2DStack__]
mov ecx, dword [esp + 0x38]
push ecx
mov ecx, esi
call dword [sym.imp.BMB_NX_C9.dll_public:_void___thiscall_BMBVia::PutViaType_unsigned_char_]
inc ebx
push ebx
mov ecx, esi
call dword [sym.imp.BMB_NX_C9.dll_public:_void___thiscall_BMBVia::PutTopLayerNumber_short_int_]
mov edx, dword [esp + 0x2c]
inc edx
push edx
mov ecx, esi
call dword [sym.imp.BMB_NX_C9.dll_public:_void___thiscall_BMBVia::PutBottomLayerNumber_short_int_]
mov ecx, dword [esp + 0x1b0]
inc dword [0x67df8c]
push esi
call dword [sym.imp.BMB_NX_C9.dll_public:_void___thiscall_BMBSheet::AddVia_class_BMBVia__]
lea ecx, [esp + 0xdc]
mov byte [esp + 0x250], 0x24
call fcn.005e8710
lea ecx, [esp + 0xb4]
call fcn.004b7750
lea ecx, [esp + 0xb4]
call fcn.004f32d0
test eax, eax
jne 0x414210
lea ecx, [esp + 0xb4]
mov dword [esp + 0x250], 0xffffffff
call fcn.004ed1b0
mov eax, 1
mov ecx, dword [esp + 0x248]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4