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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
push 0xffffffffffffffff
push 0x613fe7
mov eax, dword fs:[0]
push eax
sub esp, 0x248
push ebx
push esi
push edi
mov eax, dword [0x685e38]
xor eax, esp
push eax
lea eax, [esp + 0x258]
mov dword fs:[0], eax
mov edi, ecx
xor esi, esi
mov eax, 1
mov dword [esp + 0x24], esi
cmp dword [edi + 0x344], eax
je 0x416e6e
cmp dword [edi + 0x2c0], eax
jne 0x41373c
mov eax, dword [ebp + 8]
push eax
call fcn.0040d1f0
mov ecx, dword [0x68615c]
push esi
call dword [sym.imp.BMB_NX_C9.dll_public:_class_BMBSheet____thiscall_BMBProduct::GetSheet_int_]
mov ebx, eax
mov dword [esp + 0x1c0], ebx
cmp ebx, esi
jne 0x413770
xor eax, eax
mov ecx, dword [esp + 0x258]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4
mov ecx, dword [0x68615c]
call dword [sym.imp.BMB_NX_C9.dll_public:_class_BMBMapPad____thiscall_BMBProduct::GetMapPad_void_]
mov dword [esp + 0xb0], eax
cmp eax, esi
je 0x413756
mov ecx, dword [0x68615c]
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 + 0x21c]
call fcn.004766f0
mov edx, dword [edi + 0x48]
mov dword [edi + 0x2e0], esi
mov eax, dword [edx + 0x30]
lea ecx, [esp + 0x218]
mov dword [esp + 0x54], eax
call fcn.004766d0
mov eax, dword [esp + 0x220]
cmp eax, esi
je 0x415652
jmp 0x4137d7
mov ebx, dword [esp + 0x1c0]
sub esp, 0xc
mov esi, eax
mov eax, dword [eax + 0x34]
mov ecx, esp
mov dword [esp + 0xcc], esp
push eax
call fcn.005edd80
mov ecx, edi
call fcn.0040b470
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 + 0x38], eax
test eax, eax
je 0x415637
push esi
lea ecx, [esp + 0xec]
call fcn.00476740
xor esi, esi
lea ecx, [esp + 0x90]
mov dword [esp + 0x260], esi
call fcn.005f3af0
push esi
lea ecx, [esp + 0x94]
mov byte [esp + 0x264], 1
call fcn.005f3cc0
lea ecx, [esp + 0xe8]
mov dword [esp + 0x90], esi
call fcn.00476760
lea ecx, [esp + 0xe8]
call fcn.004f69c0
test eax, eax
je 0x4152f7
lea ecx, [esp + 0xe8]
call fcn.004f69c0
test eax, eax
je 0x4152d7
push eax
lea ecx, [esp + 0x8c]
call fcn.004767a0
lea ecx, [esp + 0x88]
mov byte [esp + 0x260], 2
call fcn.004767c0
lea ecx, [esp + 0x88]
call fcn.004f69c0
test eax, eax
je 0x4152c3
lea ecx, [esp + 0x88]
call fcn.004f69c0
test eax, eax
je 0x4152a3
mov ecx, eax
call fcn.004b0b60
mov esi, eax
test esi, esi
je 0x4152a3
mov ecx, esi
call fcn.00475300
test eax, eax
je 0x4152a3
mov edx, dword [esi]
mov eax, dword [edx + 0x38]
mov ecx, esi
call eax
mov ebx, eax
mov ecx, esi
mov dword [esp + 0x18], ebx
call fcn.00475300
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0x3c]
call eax
mov ecx, dword [edi + 0x2c0]
cmp ecx, 1
je 0x41392f
cmp dword [edi + 0x270], 1
jne 0x41392f
cmp eax, 0xce
je 0x4152a3
cmp eax, 0xcd
je 0x4152a3
cmp eax, 0xcc
je 0x413948
cmp eax, 0xce
je 0x413948
cmp eax, 0xcd
jne 0x4152a3
cmp ecx, 1
je 0x414bdb
cmp ebx, 0xe
je 0x41395f
cmp ebx, 0xf
jne 0x414bdb
xor eax, eax
push 0xb4
mov dword [esp + 0x60], eax
mov dword [esp + 0x2c], eax
call sub.MSVCR90.dll_void____cdecl_operator_new_unsigned_int_
mov ebx, eax
add esp, 4
mov dword [esp + 0x44], ebx
mov byte [esp + 0x260], 3
test ebx, ebx
je 0x4139b0
mov ecx, dword [0x686164]
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 + 0x70], vtable.BMB2DStack.0
mov dword [esp + 0x1c], ebx
xor ebx, ebx
jmp 0x4139b6
xor ebx, ebx
mov dword [esp + 0x1c], ebx
push 0x633c9c
lea ecx, [esp + 0x210]
mov byte [esp + 0x264], 2
call fcn.005edd80
mov eax, dword [esp + 0x18]
inc dword [0x686164]
mov byte [esp + 0x260], 4
mov dword [esp + 0xc8], ebx
mov dword [esp + 0x6c], ebx
cmp eax, 0xe
je 0x4139fa
cmp eax, 0xf
jne 0x414a97
lea ecx, [esp + 0x100]
mov dword [esp + 0x58], ebx
call fcn.005f3af0
lea ecx, [esp + 0x118]
mov byte [esp + 0x260], 5
call fcn.005f3af0
mov edx, dword [esi]
mov eax, dword [edx + 0x38]
mov ecx, esi
mov byte [esp + 0x260], 6
call eax
cmp eax, 0xf
jne 0x413a7d
lea ecx, [esp + 0x4c]
push ecx
lea edx, [esp + 0x11c]
push edx
lea eax, [esp + 0x108]
push eax
mov ecx, esi
mov dword [esp + 0x64], esi
mov dword [esp + 0x58], ebx
call fcn.004bf130
cmp dword [esp + 0x100], ebx
jle 0x413a6c
mov dword [esp + 0xc8], 1
cmp dword [esp + 0x118], ebx
jle 0x413a7d
mov dword [esp + 0x6c], 1
mov ecx, esi
call fcn.00470f00
mov ecx, eax
call fcn.004b9eb0
mov ecx, dword [edi + 0x34]
push 0
push eax
call fcn.004b0b60
mov ecx, eax
call fcn.004b8050
mov ecx, dword [esp + 0x1c]
mov ebx, eax
test byte [ebx + 0x20], 1
mov dword [esp + 0x3c], ebx
je 0x413ab1
push 0
jmp 0x413ab3
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 + 0x4c]
fld dword [esp + 0x4c]
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 + 0x230]
push ecx
mov ecx, esi
call fcn.00470f00
mov ecx, eax
call fcn.004ba180
mov ecx, dword [eax + 4]
mov eax, dword [eax]
push ecx
push eax
lea ecx, [esp + 0x214]
mov byte [esp + 0x268], 7
call fcn.005ed450
lea ecx, [esp + 0x230]
mov byte [esp + 0x260], 6
call fcn.005ed430
movzx eax, word [esi + 0x5c]
movzx edx, ax
movzx eax, word [esi + 0x5e]
push 0
mov ecx, ebx
mov dword [esp + 0x60], edx
mov dword [esp + 0x2c], eax
call fcn.004b9f80
mov eax, dword [edi + 0x2d8]
cmp eax, 2
je 0x413b49
cmp eax, 4
jne 0x413b5b
mov ecx, dword [esp + 0x1c]
call dword [sym.imp.BMB_NX_C9.dll_public:_unsigned_char___thiscall_BMB2DStack::GetPlated_void_]
cmp al, 1
je 0x413d1f
mov edx, dword [esi]
mov eax, dword [edx + 0xe0]
mov ecx, esi
call eax
test eax, eax
je 0x413d1f
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 + 0x1d4]
call fcn.005f3af0
mov ecx, dword [edi + 0x48]
push 3
mov byte [esp + 0x264], 8
call fcn.004e2900
test eax, eax
je 0x413d0b
push 0
push 0
lea ecx, [esp + 0x1dc]
push ecx
push eax
lea ecx, [edi + 0x100]
call fcn.004067f0
test eax, eax
je 0x413d0b
mov edx, dword [esp + 0x2c]
push edx
mov ecx, edi
call fcn.0040bf10
cmp eax, 1
jne 0x413d0b
cmp byte [edi + 0x2a5], al
jne 0x413d0b
mov eax, dword [esp + 0x1dc]
mov ecx, dword [eax]
push 0x80
mov dword [esp + 0x50], ecx
call sub.MSVCR90.dll_void____cdecl_operator_new_unsigned_int_
mov ebx, eax
add esp, 4
mov dword [esp + 0x44], ebx
mov byte [esp + 0x260], 9
test ebx, ebx
je 0x413c39
mov edx, dword [0x686164]
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 + 0x70], vtable.BMBHole.0
jmp 0x413c3b
xor ebx, ebx
inc dword [0x686164]
mov eax, dword [esi]
mov edx, dword [eax + 0x7c]
mov ecx, esi
mov byte [esp + 0x260], 8
call edx
fstp dword [esp + 0x14c]
xor eax, eax
push eax
lea ecx, [esp + 0x1f0]
mov dword [esp + 0xc8], eax
mov dword [esp + 0x6c], eax
call fcn.005ed360
mov edx, dword [esi]
mov edx, dword [edx + 0x5c]
lea eax, [esp + 0x14c]
push eax
lea eax, [esp + 0x208]
push eax
mov ecx, esi
mov byte [esp + 0x268], 0xa
call edx
mov edx, dword [esp + 0x30]
push eax
lea eax, [esp + 0xcc]
push eax
lea ecx, [esp + 0x74]
push ecx
push edx
lea eax, [esp + 0x200]
push eax
push ebx
mov ecx, edi
call fcn.0041cce0
lea ecx, [esp + 0x1ec]
mov byte [esp + 0x260], 8
call fcn.005ed430
mov ecx, dword [esp + 0x4c]
push ecx
mov ecx, ebx
call dword [sym.imp.BMB_NX_C9.dll_public:_void___thiscall_BMBSymbol::PutLayerNumber_short_int_]
mov eax, dword [edi + 0x278]
cmp eax, 1
je 0x413d00
mov ecx, dword [esp + 0x1c]
cmp eax, 2
jne 0x413cf6
call dword [sym.imp.BMB_NX_C9.dll_public:_unsigned_char___thiscall_BMB2DStack::GetPlated_void_]
test al, al
jmp 0x413cfe
call dword [sym.imp.BMB_NX_C9.dll_public:_unsigned_char___thiscall_BMB2DStack::GetPlated_void_]
cmp al, 1
jne 0x413d0b
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 + 0x1d4]
mov byte [esp + 0x260], 6
call fcn.005f3b00
movzx ebx, word [esi + 0x5c]
movzx edx, word [esi + 0x5e]
lea ecx, [esp + 0xb4]
mov dword [esp + 0x4c], ebx
mov dword [esp + 0x80], edx
call fcn.005f3af0
cmp bx, word [esp + 0x80]
movzx eax, bx
mov byte [esp + 0x260], 0xb
mov dword [esp + 0x30], eax
jg 0x414307
movsx ecx, bx
mov dword [esp + 0x40], ecx
mov edx, dword [esp + 0x30]
mov ecx, dword [edi + 0x48]
push edx
call fcn.004070e0
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0x3c]
call eax
movzx ecx, ax
push ecx
mov ecx, dword [esp + 0x40]
call fcn.004b9ee0
mov ebx, eax
mov dword [esp + 0x20], ebx
test ebx, ebx
je 0x4142ec
mov edx, dword [esp + 0x30]
mov ecx, dword [edi + 0x48]
push edx
call fcn.004070e0
mov dword [esp + 0x60], eax
mov eax, dword [esp + 0x30]
push eax
mov ecx, esi
call fcn.004b53a0
mov edx, dword [esp + 0x60]
push 0
push 0
lea ecx, [esp + 0xbc]
push ecx
push edx
lea ecx, [edi + 0x100]
mov dword [esp + 0x3c], eax
mov dword [esp + 0x94], 0
call fcn.004068b0
test eax, eax
je 0x4142ec
mov eax, dword [esp + 0xbc]
mov eax, dword [eax]
mov dword [esp + 0x60], eax
test eax, eax
je 0x4142ec
cmp dword [esp + 0xc8], 1
jne 0x414177
mov ecx, dword [edi + 0x34]
mov edx, dword [esp + 0x2c]
mov dword [esp + 0x50], ecx
push edx
mov ecx, ebx
call fcn.004c0cd0
mov ecx, dword [esp + 0x50]
movzx eax, ax
push eax
call fcn.004efc10
mov ecx, eax
call fcn.004c0720
mov dword [esp + 0x9c], eax
test eax, eax
je 0x4142ec
mov ecx, eax
call fcn.004bfe00
test eax, eax
je 0x4142ec
cmp dword [esp + 0x100], 0
mov dword [esp + 0x50], 0
jle 0x414177
mov ecx, dword [esp + 0x108]
mov edx, dword [esp + 0x50]
movzx eax, word [ecx + edx*2]
cmp dword [esp + 0x40], eax
jne 0x41414f
mov ecx, dword [esp + 0x30]
push ecx
mov ecx, dword [edi + 0x48]
mov dword [esp + 0x88], 1
mov dword [esp + 0x38], 0
call fcn.004070e0
mov edx, dword [edi + 0x34]
mov ebx, dword [esi]
lea ecx, [esp + 0x34]
mov dword [esp + 0x2c], edx
mov edx, dword [eax]
push 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.004efc10
mov edx, dword [ebx]
push eax
mov ecx, esi
call edx
mov eax, dword [esp + 0x34]
test eax, eax
je 0x41414f
cmp word [eax + 4], 1
jb 0x41414f
mov ecx, dword [esp + 0x9c]
call fcn.004bfe00
push eax
lea ecx, [esp + 0xe0]
call fcn.005edd80
push 0x633ca0
lea ecx, [esp + 0xe0]
mov byte [esp + 0x264], 0xc
call fcn.005edc30
mov eax, dword [edi + 0x2e0]
lea ecx, [eax + 1]
mov dword [edi + 0x2e0], ecx
push eax
lea ecx, [esp + 0xe0]
call fcn.005edd70
push 0x80
call sub.MSVCR90.dll_void____cdecl_operator_new_unsigned_int_
mov ebx, eax
add esp, 4
mov dword [esp + 0x44], ebx
mov byte [esp + 0x260], 0xd
test ebx, ebx
je 0x413fb8
mov eax, dword [0x686164]
sub esp, 0xc
mov dword [esp + 0x38], eax
lea edx, [esp + 0xe8]
inc eax
mov ecx, esp
mov dword [esp + 0xcc], esp
push edx
mov dword [0x686164], eax
call fcn.005edb30
lea eax, [esp + 0x154]
push eax
mov ecx, edi
call fcn.00406f20
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 + 0x26c], 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 + 0x70], vtable.BMBPad.0
mov dword [esp + 0x2c], ebx
jmp 0x413fc0
mov dword [esp + 0x2c], 0
test byte [esp + 0x24], 1
mov dword [esp + 0x260], 0xc
je 0x413fe4
and dword [esp + 0x24], 0xfffffffe
lea ecx, [esp + 0x148]
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 0x414129
fldz
fst dword [esp + 0x174]
fstp dword [esp + 0x178]
mov edx, dword [esi]
mov eax, dword [edx + 0x7c]
mov ecx, esi
call eax
fstp dword [esp + 0x134]
mov ecx, dword [esp + 0x3c]
call fcn.004ba2b0
mov ecx, dword [esp + 0x3c]
movzx edx, word [ecx + 0x20]
mov ecx, dword [esp + 0x34]
shr edx, 2
mov dword [esp + 0x138], eax
and edx, 1
mov dword [esp + 0x48], 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 + 0x134]
mov dword [esp + 0x64], eax
push ecx
lea eax, [esp + 0x200]
push eax
mov ecx, esi
call edx
mov edx, dword [esp + 0x68]
push eax
lea eax, [esp + 0x140]
push eax
lea ecx, [esp + 0x54]
push ecx
mov ecx, dword [esp + 0x3c]
push edx
lea eax, [esp + 0xf0]
push eax
push ecx
mov ecx, edi
call fcn.0041cae0
lea ecx, [esp + 0x194]
call dword [sym.imp.mfc90.dll_Ordinal_316]
mov edx, dword [esp + 0xdc]
push edx
lea ecx, [esp + 0x198]
mov byte [esp + 0x264], 0x10
call dword [sym.imp.mfc90.dll_Ordinal_820]
mov ax, word [esp + 0x60]
mov ecx, dword [esp + 0x174]
mov edx, dword [esp + 0x178]
sub esp, 0x10
mov word [esp + 0x1a8], ax
mov dword [esp + 0x1ac], ecx
lea eax, [esp + 0x1a4]
mov ecx, esp
mov dword [esp + 0x54], esp
push eax
mov dword [esp + 0x1b4], edx
call fcn.0040b340
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 + 0x194]
mov byte [esp + 0x260], 0xc
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 0x414008
mov ecx, dword [esp + 0x2c]
push ecx
mov ecx, dword [esp + 0xb4]
call dword [sym.imp.BMB_NX_C9.dll_public:_void___thiscall_BMBMapPad::AddElement_class_BMBPad__]
lea ecx, [esp + 0xdc]
mov byte [esp + 0x260], 0xb
call fcn.005ed430
mov eax, dword [esp + 0x50]
inc eax
cmp eax, dword [esp + 0x100]
mov dword [esp + 0x50], eax
jl 0x413e61
cmp dword [esp + 0x84], 1
je 0x4142ec
mov ebx, dword [esp + 0x20]
mov edx, dword [edi + 0x34]
push 0
mov ecx, ebx
mov dword [esp + 0x24], edx
call fcn.004c0cd0
mov ecx, dword [esp + 0x20]
movzx eax, ax
push eax
call fcn.004efc10
mov ecx, eax
call fcn.004c0720
mov ecx, dword [edi + 0x34]
mov dword [esp + 0x20], ecx
push 1
mov ecx, ebx
mov dword [esp + 0xa0], eax
call fcn.004c0cd0
mov ecx, dword [esp + 0x20]
movzx edx, ax
push edx
call fcn.004efc10
mov ecx, eax
call fcn.004c0720
mov dword [esp + 0x84], eax
mov eax, dword [edi + 0x34]
push 2
mov ecx, ebx
mov dword [esp + 0x24], eax
call fcn.004c0cd0
movzx ecx, ax
push ecx
mov ecx, dword [esp + 0x24]
call fcn.004efc10
mov ecx, eax
call fcn.004c0720
mov edx, dword [edi + 0x34]
push 3
mov ecx, ebx
mov dword [esp + 0x68], eax
mov dword [esp + 0x24], edx
call fcn.004c0cd0
mov ecx, dword [esp + 0x20]
movzx eax, ax
push eax
call fcn.004efc10
mov ecx, eax
call fcn.004c0720
mov ecx, dword [esp + 0x30]
push ecx
mov ecx, dword [edi + 0x48]
mov ebx, eax
call fcn.004070e0
cmp dword [eax + 0x34], 1
jne 0x414238
test ebx, ebx
jne 0x414252
mov ebx, dword [esp + 0x64]
jmp 0x41424a
mov ebx, dword [esp + 0x9c]
test ebx, ebx
jne 0x414252
mov ebx, dword [esp + 0x84]
test ebx, ebx
je 0x4142ec
lea ecx, [esp + 0x1a4]
call dword [sym.imp.mfc90.dll_Ordinal_316]
mov ecx, ebx
mov byte [esp + 0x260], 0x11
call fcn.004bfe00
push eax
lea ecx, [esp + 0x1a8]
call dword [sym.imp.mfc90.dll_Ordinal_820]
fldz
mov dx, word [esp + 0x60]
fst dword [esp + 0x16c]
mov eax, dword [esp + 0x16c]
fstp dword [esp + 0x170]
mov ecx, dword [esp + 0x170]
sub esp, 0x10
mov word [esp + 0x1b8], dx
mov dword [esp + 0x1c0], ecx
lea edx, [esp + 0x1b4]
mov ecx, esp
mov dword [esp + 0x54], esp
push edx
mov dword [esp + 0x1c0], eax
call fcn.0040b340
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 + 0x1a4]
mov byte [esp + 0x260], 0xb
call dword [sym.imp.mfc90.dll_Ordinal_601]
mov eax, dword [esp + 0x30]
inc dword [esp + 0x40]
inc eax
cmp ax, word [esp + 0x80]
mov dword [esp + 0x30], eax
jle 0x413d62
cmp dword [esp + 0x6c], 1
jne 0x414839
mov ecx, dword [edi + 0x48]
xor eax, eax
cmp dword [ecx + 0x3c], eax
mov dword [esp + 0x6c], eax
mov dword [esp + 0x34], eax
jle 0x414a59
jmp 0x414330
movzx ecx, word [esp + 0x34]
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 + 0x64], ecx
test ebx, ebx
je 0x414376
mov eax, dword [ebx + 8]
test eax, eax
jne 0x414372
mov eax, dword [ebx + 4]
and eax, 0x7f
mov dword [esp + 0x20], eax
call fcn.005018f0
mov ecx, dword [esp + 0x20]
mov eax, dword [eax + ecx*4 - 4]
push ebx
mov ecx, eax
call fcn.00500ce0
mov ebx, eax
jmp 0x414378
xor ebx, ebx
push 0
push 0
lea edx, [esp + 0xbc]
push edx
push ebx
lea ecx, [edi + 0x100]
call fcn.004068b0
test eax, eax
je 0x41481f
mov eax, dword [ebx]
mov edx, dword [eax + 0x3c]
mov ecx, ebx
call edx
mov ecx, dword [esp + 0x3c]
movzx eax, ax
push eax
call fcn.004b9f40
test eax, eax
je 0x41481f
mov ecx, dword [edi + 0x34]
push eax
call fcn.004efc10
mov ecx, eax
call fcn.004c0720
mov dword [esp + 0x60], eax
test eax, eax
je 0x41481f
mov ecx, dword [esp + 0x118]
xor eax, eax
test ecx, ecx
jle 0x4143fd
mov edx, dword [esp + 0x120]
movzx ebx, word [edx + eax*2]
cmp dword [esp + 0x34], ebx
jne 0x4143f8
mov dword [esp + 0x6c], 1
inc eax
cmp eax, ecx
jl 0x4143e6
cmp dword [esp + 0x6c], 1
jne 0x414729
mov edx, dword [esp + 0x58]
mov ebx, dword [edx]
mov edx, dword [esp + 0x64]
mov ecx, dword [edi + 0x34]
lea eax, [esp + 0x30]
push eax
push edx
mov dword [esp + 0x38], 0
add ebx, 0xf0
call fcn.004efc10
mov ecx, dword [esp + 0x60]
push eax
mov eax, dword [ebx]
call eax
cmp dword [esp + 0xb4], 0
mov dword [esp + 0x50], 0
jle 0x41481f
mov eax, dword [esp + 0x30]
test eax, eax
je 0x41470e
cmp word [eax + 4], 1
jb 0x41470e
mov ecx, dword [esp + 0x60]
call fcn.004bfe00
push eax
lea ecx, [esp + 0x1e4]
call fcn.005edd80
push 0x633ca0
lea ecx, [esp + 0x1e4]
mov byte [esp + 0x264], 0x12
call fcn.005edc30
mov eax, dword [edi + 0x2e0]
lea ecx, [eax + 1]
mov dword [edi + 0x2e0], ecx
push eax
lea ecx, [esp + 0x1e4]
call fcn.005edd70
push 0x80
call sub.MSVCR90.dll_void____cdecl_operator_new_unsigned_int_
mov ebx, eax
add esp, 4
mov dword [esp + 0x44], ebx
mov byte [esp + 0x260], 0x13
test ebx, ebx
je 0x414537
mov eax, dword [0x686164]
sub esp, 0xc
mov dword [esp + 0x2c], eax
lea edx, [esp + 0x1ec]
inc eax
mov ecx, esp
mov dword [esp + 0xcc], esp
push edx
mov dword [0x686164], eax
call fcn.005edb30
lea eax, [esp + 0x174]
push eax
mov ecx, edi
call fcn.00406f20
mov eax, dword [eax]
mov ecx, dword [esp + 0x20]
or dword [esp + 0x24], 2
push eax
push 0
push ecx
mov ecx, ebx
mov byte [esp + 0x26c], 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 + 0x70], vtable.BMBPad.0
mov dword [esp + 0x2c], ebx
jmp 0x41453f
mov dword [esp + 0x2c], 0
test byte [esp + 0x24], 2
mov dword [esp + 0x260], 0x12
je 0x414563
and dword [esp + 0x24], 0xfffffffd
lea ecx, [esp + 0x168]
call dword [sym.imp.mfc90.dll_Ordinal_601]
mov edx, dword [esp + 0x30]
mov eax, dword [edx + 4]
xor ecx, ecx
mov dword [esp + 0x40], 0
cmp cx, ax
jae 0x4146e4
fldz
fst dword [esp + 0x150]
fstp dword [esp + 0x154]
lea ecx, [ecx]
mov edx, dword [esi]
mov eax, dword [edx + 0x7c]
mov ecx, esi
call eax
fstp dword [esp + 0x130]
mov ebx, dword [esp + 0x3c]
mov ecx, ebx
call fcn.004ba2b0
movzx ecx, word [ebx + 0x20]
movzx edx, word [esp + 0x40]
shr ecx, 2
mov dword [esp + 0x164], eax
mov eax, dword [esp + 0x30]
and ecx, 1
mov dword [esp + 0x144], ecx
mov ecx, dword [eax + 8]
mov ebx, dword [ecx + edx*4]
mov eax, dword [esi]
lea edx, [esp + 0x130]
push edx
mov edx, dword [eax + 0x5c]
lea ecx, [esp + 0x248]
push ecx
mov ecx, esi
call edx
push eax
lea eax, [esp + 0x16c]
push eax
mov eax, dword [esp + 0x38]
lea ecx, [esp + 0x150]
push ecx
push ebx
lea edx, [esp + 0x1f4]
push edx
push eax
mov ecx, edi
call fcn.0041cae0
lea ecx, [esp + 0xcc]
call dword [sym.imp.mfc90.dll_Ordinal_316]
mov ecx, dword [esp + 0x1e0]
push ecx
lea ecx, [esp + 0xd0]
mov byte [esp + 0x264], 0x16
call dword [sym.imp.mfc90.dll_Ordinal_820]
mov edx, dword [esp + 0xbc]
mov eax, dword [esp + 0x50]
mov cx, word [edx + eax*4]
mov edx, dword [esp + 0x150]
mov eax, dword [esp + 0x154]
sub esp, 0x10
mov word [esp + 0xe0], cx
mov ebx, esp
lea ecx, [esp + 0xdc]
mov dword [esp + 0x54], 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 + 0x260], 0x12
call dword [sym.imp.mfc90.dll_Ordinal_601]
mov eax, dword [esp + 0x40]
mov edx, dword [esp + 0x30]
movzx ecx, word [edx + 4]
inc eax
movsx edx, ax
cmp edx, ecx
mov dword [esp + 0x40], eax
jl 0x414590
mov eax, dword [esp + 0x2c]
mov ecx, dword [esp + 0xb0]
push eax
call dword [sym.imp.BMB_NX_C9.dll_public:_void___thiscall_BMBMapPad::AddElement_class_BMBPad__]
lea ecx, [esp + 0x1e0]
mov byte [esp + 0x260], 0xb
call fcn.005ed430
mov eax, dword [esp + 0x30]
mov ecx, dword [esp + 0x50]
inc ecx
cmp ecx, dword [esp + 0xb4]
mov dword [esp + 0x50], ecx
jl 0x414451
jmp 0x41481f
cmp dword [esp + 0xb4], 0
mov dword [esp + 0x40], 0
jle 0x41481f
fldz
fst dword [esp + 0x13c]
fstp dword [esp + 0x140]
nop
lea ecx, [esp + 0xf0]
call dword [sym.imp.mfc90.dll_Ordinal_316]
mov ecx, dword [esp + 0x60]
mov byte [esp + 0x260], 0x17
call fcn.004bfe00
push eax
lea ecx, [esp + 0xf4]
call dword [sym.imp.mfc90.dll_Ordinal_820]
mov ecx, dword [esp + 0xbc]
mov edx, dword [esp + 0x40]
mov ax, word [ecx + edx*4]
mov ecx, dword [esp + 0x13c]
mov edx, dword [esp + 0x140]
sub esp, 0x10
mov word [esp + 0x104], ax
mov ebx, esp
lea eax, [esp + 0x100]
mov dword [esp + 0x108], ecx
mov dword [esp + 0x54], esp
push eax
mov ecx, ebx
mov dword [esp + 0x110], edx
call dword [sym.imp.mfc90.dll_Ordinal_300]
mov cx, word [esp + 0x104]
mov word [ebx + 4], cx
mov edx, dword [esp + 0x108]
mov ecx, dword [esp + 0x2c]
mov dword [ebx + 8], edx
mov eax, dword [esp + 0x10c]
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 + 0xf0]
mov byte [esp + 0x260], 0xb
call dword [sym.imp.mfc90.dll_Ordinal_601]
mov eax, dword [esp + 0x40]
inc eax
cmp eax, dword [esp + 0xb4]
mov dword [esp + 0x40], eax
jl 0x414750
mov eax, dword [esp + 0x34]
mov ecx, dword [edi + 0x48]
inc eax
cmp eax, dword [ecx + 0x3c]
mov dword [esp + 0x34], eax
jl 0x414330
jmp 0x414a59
mov edx, dword [edi + 0x48]
cmp dword [edx + 0x3c], 0
mov dword [esp + 0x40], 0
jle 0x414a59
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 0x41488d
mov eax, dword [ebx + 8]
test eax, eax
jne 0x414889
mov eax, dword [ebx + 4]
and eax, 0x7f
mov dword [esp + 0x20], eax
call fcn.005018f0
mov ecx, dword [esp + 0x20]
mov eax, dword [eax + ecx*4 - 4]
push ebx
mov ecx, eax
call fcn.00500ce0
mov ebx, eax
jmp 0x41488f
xor ebx, ebx
push 0
push 0
lea edx, [esp + 0xbc]
push edx
push ebx
lea ecx, [edi + 0x100]
call fcn.004068b0
test eax, eax
je 0x414a44
mov eax, dword [ebx]
mov edx, dword [eax + 0x3c]
mov ecx, ebx
call edx
mov ecx, dword [esp + 0x3c]
movzx eax, ax
push eax
call fcn.004b9f40
test eax, eax
je 0x414a44
mov ecx, dword [edi + 0x34]
push eax
call fcn.004efc10
mov ecx, eax
call fcn.004c0720
mov dword [esp + 0x20], eax
test eax, eax
je 0x414a44
xor ebx, ebx
cmp dword [esp + 0xb4], ebx
mov dword [esp + 0x58], ebx
jle 0x414a44
lea esp, [esp]
lea ecx, [esp + 0xa0]
call dword [sym.imp.mfc90.dll_Ordinal_316]
mov ecx, dword [esp + 0xbc]
mov eax, dword [ecx + ebx*4]
push eax
lea ecx, [edi + 0x100]
mov byte [esp + 0x264], 0x18
call fcn.004064a0
test eax, eax
je 0x41497a
movsx edx, word [esp + 0x4c]
inc edx
cmp eax, edx
jge 0x414953
lea ecx, [esp + 0xa0]
mov byte [esp + 0x260], 0xb
call dword [sym.imp.mfc90.dll_Ordinal_601]
jmp 0x414a32
movsx ecx, word [esp + 0x80]
inc ecx
cmp eax, ecx
jle 0x41497a
lea ecx, [esp + 0xa0]
mov byte [esp + 0x260], 0xb
call dword [sym.imp.mfc90.dll_Ordinal_601]
jmp 0x414a32
mov ecx, dword [esp + 0x20]
call fcn.004bfe00
push eax
lea ecx, [esp + 0xa4]
call dword [sym.imp.mfc90.dll_Ordinal_820]
fldz
mov edx, dword [esp + 0xbc]
fst dword [esp + 0x15c]
mov eax, dword [esp + 0x58]
fstp dword [esp + 0x160]
mov cx, word [edx + eax*4]
mov edx, dword [esp + 0x15c]
mov eax, dword [esp + 0x160]
sub esp, 0x10
mov word [esp + 0xb4], cx
mov ebx, esp
lea ecx, [esp + 0xb0]
mov dword [esp + 0x54], esp
push ecx
mov ecx, ebx
mov dword [esp + 0xbc], edx
mov dword [esp + 0xc0], eax
call dword [sym.imp.mfc90.dll_Ordinal_300]
mov dx, word [esp + 0xb4]
mov word [ebx + 4], dx
mov eax, dword [esp + 0xb8]
mov dword [ebx + 8], eax
mov ecx, dword [esp + 0xbc]
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 + 0xa0]
mov byte [esp + 0x260], 0xb
call dword [sym.imp.mfc90.dll_Ordinal_601]
mov ebx, dword [esp + 0x58]
inc ebx
cmp ebx, dword [esp + 0xb4]
mov dword [esp + 0x58], ebx
jl 0x414900
mov eax, dword [esp + 0x40]
mov edx, dword [edi + 0x48]
inc eax
cmp eax, dword [edx + 0x3c]
mov dword [esp + 0x40], eax
jl 0x41484e
lea ecx, [esp + 0xb4]
mov byte [esp + 0x260], 6
call fcn.005f3b00
lea ecx, [esp + 0x118]
mov byte [esp + 0x260], 5
call fcn.005f3b00
lea ecx, [esp + 0x100]
mov byte [esp + 0x260], 4
call fcn.005f3b00
xor ebx, ebx
mov eax, dword [edi + 0x48]
mov eax, dword [eax + 0x30]
dec eax
movzx eax, ax
cmp dword [esp + 0x5c], ebx
jne 0x414ab5
movsx ecx, ax
mov byte [esp + 0x70], 1
cmp dword [esp + 0x28], ecx
je 0x414aba
mov byte [esp + 0x70], 2
mov edx, dword [esi]
mov edx, dword [edx + 0x5c]
lea eax, [esp + 0x24c]
push eax
mov ecx, esi
call edx
mov eax, dword [eax]
lea ecx, [esp + 0x158]
push ecx
mov ecx, edi
mov dword [esp + 0x15c], eax
call fcn.0042afc0
fstp dword [esp + 0x64]
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.0042afc0
fstp dword [esp + 0x20]
push 0x90
call sub.MSVCR90.dll_void____cdecl_operator_new_unsigned_int_
mov ebx, eax
add esp, 4
mov dword [esp + 0x44], ebx
mov byte [esp + 0x260], 0x19
test ebx, ebx
je 0x414b60
fld dword [esp + 0x20]
mov edx, dword [0x686164]
push 0
sub esp, 8
fstp dword [esp + 4]
mov ecx, ebx
fld dword [esp + 0x70]
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 + 0x70], vtable.BMBVia.0
jmp 0x414b62
xor ebx, ebx
mov eax, dword [esp + 0x1c]
push eax
mov ecx, ebx
mov byte [esp + 0x264], 4
call dword [sym.imp.BMB_NX_C9.dll_public:_void___thiscall_BMBVia::PutStack_class_BMB2DStack__]
mov ecx, dword [esp + 0x70]
push ecx
mov ecx, ebx
call dword [sym.imp.BMB_NX_C9.dll_public:_void___thiscall_BMBVia::PutViaType_unsigned_char_]
mov edx, dword [esp + 0x5c]
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 + 0x28]
inc eax
push eax
mov ecx, ebx
call dword [sym.imp.BMB_NX_C9.dll_public:_void___thiscall_BMBVia::PutBottomLayerNumber_short_int_]
push ebx
mov ebx, dword [esp + 0x3c]
mov ecx, ebx
call dword [sym.imp.BMB_NX_C9.dll_public:_void___thiscall_BMBNet::AddVia_class_BMBVia__]
mov ecx, dword [0x686164]
push ecx
push ebx
push esi
mov ecx, edi
call fcn.0040ca30
inc dword [0x686164]
lea ecx, [esp + 0x20c]
mov byte [esp + 0x260], 2
call fcn.005ed430
mov ebx, dword [esp + 0x18]
cmp dword [edi + 0x27c], 0
je 0x4152a3
cmp ebx, 0xe
je 0x414e7a
cmp ebx, 0xf
je 0x414e7a
cmp ebx, 0xb
je 0x414d42
cmp ebx, 0xc
je 0x414d42
cmp ebx, 9
jne 0x414e99
cmp dword [edi + 0x2c0], 1
je 0x41528d
mov ecx, esi
call fcn.004a7c40
mov ecx, eax
call fcn.004754e0
mov ebx, eax
test ebx, ebx
je 0x4152a3
mov eax, dword [ebx]
mov edx, dword [eax + 0x4c]
mov ecx, ebx
call edx
test eax, eax
je 0x4152a3
lea ecx, [esp + 0x188]
call fcn.005f3af0
push 0
push 0
lea eax, [esp + 0x190]
push eax
push ebx
lea ecx, [edi + 0x100]
mov byte [esp + 0x270], 0x1c
call fcn.004067f0
test eax, eax
jne 0x414c94
lea ecx, [esp + 0x188]
mov byte [esp + 0x260], 2
call fcn.005f3b00
jmp 0x4152a3
mov ecx, dword [esp + 0x190]
mov edx, dword [ecx]
inc dword [0x686164]
push 0x88
mov dword [esp + 0x24], edx
call sub.MSVCR90.dll_void____cdecl_operator_new_unsigned_int_
mov ebx, eax
add esp, 4
mov dword [esp + 0x44], ebx
mov byte [esp + 0x260], 0x1d
test ebx, ebx
je 0x414ceb
mov eax, dword [0x686164]
push 0
push 3
push eax
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 + 0x70], vtable.BMBPattern.0
mov dword [esp + 0x28], ebx
jmp 0x414cf3
mov dword [esp + 0x28], 0
mov ebx, dword [esp + 0x20]
mov ecx, dword [esp + 0x28]
push ebx
mov byte [esp + 0x264], 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 + 0x3c]
push esi
mov ecx, edi
call fcn.004136a0
mov ecx, dword [esp + 0x38]
push esi
call dword [sym.imp.BMB_NX_C9.dll_public:_void___thiscall_BMBNet::AddPattern_class_BMBPattern__]
lea ecx, [esp + 0x188]
mov byte [esp + 0x260], 2
call fcn.005f3b00
jmp 0x4152a3
cmp dword [edi + 0x2c0], 1
jne 0x414d58
mov ecx, dword [esp + 0x90]
push ecx
jmp 0x414e8b
mov ecx, esi
call fcn.004a7c40
mov ecx, eax
call fcn.004754e0
mov ebx, eax
test ebx, ebx
je 0x4152a3
mov edx, dword [ebx]
mov eax, dword [edx + 0x4c]
mov ecx, ebx
call eax
test eax, eax
je 0x4152a3
lea ecx, [esp + 0x17c]
call fcn.005f3af0
push 0
push 0
lea ecx, [esp + 0x184]
push ecx
push ebx
lea ecx, [edi + 0x100]
mov byte [esp + 0x270], 0x1a
call fcn.004067f0
test eax, eax
jne 0x414dca
lea ecx, [esp + 0x17c]
mov byte [esp + 0x260], 2
call fcn.005f3b00
jmp 0x4152a3
mov edx, dword [esp + 0x184]
mov eax, dword [edx]
inc dword [0x686164]
push 0x88
mov dword [esp + 0x24], eax
call sub.MSVCR90.dll_void____cdecl_operator_new_unsigned_int_
mov ebx, eax
add esp, 4
mov dword [esp + 0x44], ebx
mov byte [esp + 0x260], 0x1b
test ebx, ebx
je 0x414e22
mov ecx, dword [0x686164]
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 + 0x70], vtable.BMBPattern.0
mov dword [esp + 0x28], ebx
jmp 0x414e2a
mov dword [esp + 0x28], 0
mov ebx, dword [esp + 0x20]
mov ecx, dword [esp + 0x28]
push ebx
mov byte [esp + 0x264], 0x1a
call dword [sym.imp.BMB_NX_C9.dll_public:_void___thiscall_BMBSymbol::PutLayerNumber_short_int_]
push 0
push 0
push 0
push ebx
mov ebx, dword [esp + 0x38]
push esi
push ebx
mov ecx, edi
call fcn.004136a0
mov ecx, dword [esp + 0x38]
push ebx
call dword [sym.imp.BMB_NX_C9.dll_public:_void___thiscall_BMBNet::AddPattern_class_BMBPattern__]
lea ecx, [esp + 0x17c]
mov byte [esp + 0x260], 2
call fcn.005f3b00
mov ebx, dword [esp + 0x18]
jmp 0x414e99
cmp dword [edi + 0x2c0], 1
jne 0x414e99
mov edx, dword [esp + 0x90]
push edx
lea ecx, [esp + 0x94]
call fcn.005f3cc0
mov dword [eax], esi
cmp ebx, 3
je 0x414eac
cmp ebx, 0x1c
je 0x414eac
cmp ebx, 4
jne 0x4152a3
mov eax, 1
cmp dword [edi + 0x2c0], eax
je 0x415131
cmp dword [edi + 0x2b8], eax
je 0x415131
cmp ebx, 3
jne 0x414ffa
mov ecx, esi
call fcn.004a7c40
test eax, eax
je 0x4152a3
mov ecx, eax
call fcn.004754e0
mov ebx, eax
test ebx, ebx
je 0x4152a3
mov eax, dword [ebx]
mov edx, dword [eax + 0x4c]
mov ecx, ebx
call edx
test eax, eax
je 0x4152a3
lea ecx, [esp + 0x224]
call fcn.005f3af0
push 0
push 0
lea eax, [esp + 0x22c]
push eax
push ebx
lea ecx, [edi + 0x100]
mov byte [esp + 0x270], 0x20
call fcn.004067f0
test eax, eax
jne 0x414f4c
lea ecx, [esp + 0x224]
mov byte [esp + 0x260], 2
call fcn.005f3b00
jmp 0x4152a3
mov ecx, dword [esp + 0x22c]
mov edx, dword [ecx]
inc dword [0x686164]
push 0x88
mov dword [esp + 0x24], edx
call sub.MSVCR90.dll_void____cdecl_operator_new_unsigned_int_
mov ebx, eax
add esp, 4
mov dword [esp + 0x44], ebx
mov byte [esp + 0x260], 0x21
test ebx, ebx
je 0x414fa3
mov eax, dword [0x686164]
push 0
push 1
push eax
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 + 0x70], vtable.BMBPattern.0
mov dword [esp + 0x18], ebx
jmp 0x414fab
mov dword [esp + 0x18], 0
mov ebx, dword [esp + 0x20]
mov ecx, dword [esp + 0x18]
push ebx
mov byte [esp + 0x264], 0x20
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.004136a0
mov ecx, dword [esp + 0x38]
push esi
call dword [sym.imp.BMB_NX_C9.dll_public:_void___thiscall_BMBNet::AddPattern_class_BMBPattern__]
lea ecx, [esp + 0x224]
mov byte [esp + 0x260], 2
call fcn.005f3b00
jmp 0x4152a3
cmp ebx, 4
je 0x415008
cmp ebx, 0x1c
jne 0x4152a3
mov ecx, esi
call fcn.004a7c40
test eax, eax
je 0x4152a3
mov ecx, eax
call fcn.004754e0
mov ebx, eax
test ebx, ebx
je 0x4152a3
mov edx, dword [ebx]
mov eax, dword [edx + 0x4c]
mov ecx, ebx
call eax
test eax, eax
je 0x4152a3
lea ecx, [esp + 0x1c4]
call fcn.005f3af0
push 0
push 0
lea ecx, [esp + 0x1cc]
push ecx
push ebx
lea ecx, [edi + 0x100]
mov byte [esp + 0x270], 0x22
call fcn.004067f0
test eax, eax
jne 0x415082
lea ecx, [esp + 0x1c4]
mov byte [esp + 0x260], 2
call fcn.005f3b00
jmp 0x4152a3
mov edx, dword [esp + 0x1cc]
mov eax, dword [edx]
inc dword [0x686164]
push 0x88
mov dword [esp + 0x24], eax
call sub.MSVCR90.dll_void____cdecl_operator_new_unsigned_int_
mov ebx, eax
add esp, 4
mov dword [esp + 0x44], ebx
mov byte [esp + 0x260], 0x23
test ebx, ebx
je 0x4150da
mov ecx, dword [0x686164]
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 + 0x70], vtable.BMBPattern.0
mov dword [esp + 0x18], ebx
jmp 0x4150e2
mov dword [esp + 0x18], 0
mov ebx, dword [esp + 0x20]
mov ecx, dword [esp + 0x18]
push ebx
mov byte [esp + 0x264], 0x22
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.004136a0
mov ecx, dword [esp + 0x38]
push esi
call dword [sym.imp.BMB_NX_C9.dll_public:_void___thiscall_BMBNet::AddPattern_class_BMBPattern__]
lea ecx, [esp + 0x1c4]
mov byte [esp + 0x260], 2
call fcn.005f3b00
jmp 0x4152a3
cmp ebx, 3
jne 0x41527a
mov ecx, esi
call fcn.004b5360
test byte [eax + 8], 0xf
jne 0x415154
cmp dword [edi + 0x2bc], 0
jle 0x41527a
mov ecx, esi
call fcn.004a7c40
test eax, eax
je 0x4152a3
mov ecx, eax
call fcn.004754e0
mov ebx, eax
test ebx, ebx
je 0x4152a3
mov edx, dword [ebx]
mov eax, dword [edx + 0x4c]
mov ecx, ebx
call eax
test eax, eax
je 0x4152a3
lea ecx, [esp + 0x1b4]
call fcn.005f3af0
push 0
push 0
lea ecx, [esp + 0x1bc]
push ecx
push ebx
lea ecx, [edi + 0x100]
mov byte [esp + 0x270], 0x1e
call fcn.004067f0
test eax, eax
jne 0x4151ce
lea ecx, [esp + 0x1b4]
mov byte [esp + 0x260], 2
call fcn.005f3b00
jmp 0x4152a3
mov edx, dword [esp + 0x1bc]
mov eax, dword [edx]
inc dword [0x686164]
push 0x88
mov dword [esp + 0x24], eax
call sub.MSVCR90.dll_void____cdecl_operator_new_unsigned_int_
mov ebx, eax
add esp, 4
mov dword [esp + 0x44], ebx
mov byte [esp + 0x260], 0x1f
test ebx, ebx
je 0x415226
mov ecx, dword [0x686164]
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 + 0x70], vtable.BMBPattern.0
mov dword [esp + 0x18], ebx
jmp 0x41522e
mov dword [esp + 0x18], 0
mov ebx, dword [esp + 0x20]
mov ecx, dword [esp + 0x18]
push ebx
mov byte [esp + 0x264], 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.004136a0
mov ecx, dword [esp + 0x38]
push esi
call dword [sym.imp.BMB_NX_C9.dll_public:_void___thiscall_BMBNet::AddPattern_class_BMBPattern__]
lea ecx, [esp + 0x1b4]
mov byte [esp + 0x260], 2
call fcn.005f3b00
jmp 0x4152a3
cmp dword [ebp + 8], 1
jne 0x41528d
push esi
mov ecx, edi
call fcn.0040c5a0
cmp eax, 1
je 0x4152a3
mov edx, dword [esp + 0x90]
push edx
lea ecx, [esp + 0x94]
call fcn.005f3cc0
mov dword [eax], esi
lea ecx, [esp + 0x88]
call fcn.004767d0
lea ecx, [esp + 0x88]
call fcn.004f69c0
test eax, eax
jne 0x4138b2
lea ecx, [esp + 0x88]
mov byte [esp + 0x260], 1
call fcn.004f2200
lea ecx, [esp + 0xe8]
call fcn.00476770
lea ecx, [esp + 0xe8]
call fcn.004f69c0
test eax, eax
jne 0x413869
cmp dword [edi + 0x27c], 0
je 0x41560c
mov eax, 1
cmp dword [edi + 0x2c0], eax
je 0x41531d
cmp dword [edi + 0x2b8], eax
jne 0x41560c
lea ecx, [esp + 0x124]
call fcn.005f3af0
lea ecx, [esp + 0x74]
mov byte [esp + 0x260], 0x24
call fcn.00517a80
lea ecx, [esp + 0x10c]
mov byte [esp + 0x260], 0x25
call fcn.00517a80
xor ebx, ebx
xor eax, eax
cmp ax, word [esp + 0x54]
mov byte [esp + 0x260], 0x26
mov dword [esp + 0x34], ebx
jge 0x4155c7
movsx eax, bx
mov dword [esp + 0x4c], eax
inc eax
push eax
lea ecx, [edi + 0x100]
call fcn.00406380
test eax, eax
je 0x4155b7
cmp dword [edi + 0x2c0], 1
jne 0x4153fd
mov eax, dword [edi + 0x48]
mov edx, dword [eax + 0x30]
movzx ecx, bx
cmp edx, ecx
jle 0x4153cc
mov edx, dword [eax + 0x34]
mov esi, dword [edx + ecx*4]
lea eax, [edx + ecx*4]
test esi, esi
je 0x4153cc
mov eax, dword [esi + 8]
test eax, eax
jne 0x4153ce
mov ebx, dword [esi + 4]
and ebx, 0x7f
call fcn.005018f0
mov ebx, dword [eax + ebx*4 - 4]
push esi
mov ecx, ebx
call fcn.00500ce0
mov ebx, dword [esp + 0x34]
jmp 0x4153ce
xor eax, eax
cmp dword [eax + 0x34], 1
je 0x4155b7
cmp dword [edi + 0x2c0], 1
jne 0x4153fd
cmp dword [edi + 0x2c4], 1
jne 0x4153fd
mov ecx, dword [edi + 0x48]
push ebx
call fcn.004070e0
cmp dword [eax + 0x34], 2
je 0x4155b7
xor esi, esi
push esi
lea ecx, [esp + 0x78]
call fcn.005f3cc0
cmp dword [esp + 0x90], esi
mov dword [esp + 0x74], esi
mov dword [esp + 0x18], esi
jle 0x41559e
mov edi, edi
mov eax, dword [esp + 0x98]
mov ecx, dword [esp + 0x18]
mov esi, dword [eax + ecx*4]
mov edx, dword [esi]
mov eax, dword [edx + 0x38]
mov ecx, esi
call eax
cmp eax, 0xe
je 0x4154b3
mov edx, dword [esi]
mov eax, dword [edx + 0x38]
mov ecx, esi
call eax
cmp eax, 0xf
je 0x4154b3
mov ecx, esi
call fcn.004a7c40
mov ecx, eax
call fcn.004754e0
push 0
lea ecx, [esp + 0x128]
mov ebx, eax
call fcn.005f3cc0
push 0
push 0
lea ecx, [esp + 0x12c]
push ecx
push ebx
lea ecx, [edi + 0x100]
mov dword [esp + 0x134], 0
call fcn.004067f0
test eax, eax
je 0x4154c5
mov edx, dword [esp + 0x12c]
mov eax, dword [edx]
test eax, eax
je 0x4154c5
lea ecx, [eax - 1]
mov eax, dword [esp + 0x4c]
cmp ecx, eax
jne 0x4154c5
push eax
lea edx, [esp + 0x78]
push edx
jmp 0x4154bd
mov eax, dword [esp + 0x4c]
push eax
lea ecx, [esp + 0x78]
push ecx
push esi
mov ecx, edi
call fcn.00411760
mov eax, dword [esp + 0x18]
inc eax
cmp eax, dword [esp + 0x90]
mov dword [esp + 0x18], eax
jl 0x415420
cmp dword [esp + 0x74], 0
jle 0x41559e
push 0
lea edx, [esp + 0x78]
push edx
lea eax, [esp + 0x114]
push eax
call fcn.00540ca0
xor ebx, ebx
add esp, 0xc
cmp dword [esp + 0x10c], ebx
jle 0x41559e
lea esp, [esp]
push 0x88
call sub.MSVCR90.dll_void____cdecl_operator_new_unsigned_int_
mov esi, eax
add esp, 4
mov dword [esp + 0x44], esi
mov byte [esp + 0x260], 0x27
test esi, esi
je 0x415558
mov eax, dword [0x686164]
push 0
mov ecx, eax
push 3
inc eax
push ecx
mov ecx, esi
mov dword [0x686164], 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 + 0x70], vtable.BMBPattern.0
jmp 0x41555a
xor esi, esi
mov eax, dword [esp + 0x34]
inc eax
push eax
mov ecx, esi
mov byte [esp + 0x264], 0x26
call dword [sym.imp.BMB_NX_C9.dll_public:_void___thiscall_BMBSymbol::PutLayerNumber_short_int_]
mov ecx, dword [esp + 0x114]
mov edx, dword [ecx + ebx*4]
push 0
push edx
push esi
mov ecx, edi
call fcn.0040f310
mov ecx, dword [esp + 0x38]
push esi
call dword [sym.imp.BMB_NX_C9.dll_public:_void___thiscall_BMBNet::AddPattern_class_BMBPattern__]
inc ebx
cmp ebx, dword [esp + 0x10c]
jl 0x415510
lea ecx, [esp + 0x74]
call fcn.00517ad0
lea ecx, [esp + 0x10c]
call fcn.00517ad0
mov ebx, dword [esp + 0x34]
inc ebx
cmp bx, word [esp + 0x54]
mov dword [esp + 0x34], ebx
jl 0x415369
lea ecx, [esp + 0x90]
call fcn.005f3900
lea ecx, [esp + 0x10c]
mov byte [esp + 0x260], 0x25
call fcn.00405850
lea ecx, [esp + 0x74]
mov byte [esp + 0x260], 0x24
call fcn.00405850
lea ecx, [esp + 0x124]
mov byte [esp + 0x260], 1
call fcn.005f3b00
lea ecx, [esp + 0x90]
mov byte [esp + 0x260], 0
call fcn.005f3b00
lea ecx, [esp + 0xe8]
mov dword [esp + 0x260], 0xffffffff
call fcn.004f2200
lea ecx, [esp + 0x218]
call fcn.004a9a40
mov eax, dword [esp + 0x220]
test eax, eax
jne 0x4137d0
cmp word [edi + 0x268], 2
jne 0x416e69
mov ecx, dword [edi + 0x48]
push 3
call fcn.004e2900
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0x58]
call eax
push eax
lea ecx, [esp + 0x8c]
call fcn.004bb830
lea ecx, [esp + 0x88]
mov dword [esp + 0x260], 0x28
call fcn.004bb850
lea ecx, [esp + 0x88]
call fcn.004f69c0
test eax, eax
je 0x416e52
jmp 0x4156b0
lea ecx, [esp + 0x88]
call fcn.004f69c0
mov esi, eax
test esi, esi
je 0x416e32
mov ecx, esi
call fcn.00475300
test eax, eax
je 0x416e32
mov edx, dword [esi]
mov eax, dword [edx + 0x38]
mov ecx, esi
call eax
cmp eax, 0xe
je 0x4156f5
mov edx, dword [esi]
mov eax, dword [edx + 0x38]
mov ecx, esi
call eax
cmp eax, 0xf
jne 0x416e32
mov edx, dword [esi]
mov eax, dword [edx + 0x38]
mov ecx, esi
call eax
mov ecx, esi
mov dword [esp + 0x14], eax
call fcn.00475300
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0x3c]
call eax
cmp eax, 0xce
je 0x416e32
cmp eax, 0xcc
jne 0x416e32
xor eax, eax
push 0xb4
mov dword [esp + 0x54], 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 + 0x48], ebx
mov byte [esp + 0x260], 0x29
test ebx, ebx
je 0x415777
mov ecx, dword [0x686164]
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 + 0x70], vtable.BMB2DStack.0
mov dword [esp + 0x1c], ebx
jmp 0x41577f
mov dword [esp + 0x1c], 0
mov ebx, dword [esp + 0x14]
mov byte [esp + 0x260], 0x28
cmp ebx, 0xe
je 0x4157a3
cmp ebx, 0xf
je 0x4157a3
cmp ebx, 0xb
je 0x4157a3
cmp ebx, 0xc
jne 0x416e32
push 0x633c9c
lea ecx, [esp + 0xe0]
call fcn.005edd80
inc dword [0x686164]
xor eax, eax
mov byte [esp + 0x260], 0x2a
mov dword [esp + 0x54], eax
mov dword [esp + 0x6c], eax
cmp ebx, 0xe
je 0x415c98
cmp ebx, 0xf
je 0x415c98
cmp ebx, 0xc
jne 0x415b18
mov ecx, esi
call fcn.004a7c40
mov ecx, eax
call fcn.004754e0
mov ebx, eax
test ebx, ebx
je 0x416e1e
lea ecx, [esp + 0x17c]
mov dword [esp + 0x54], 0
call fcn.005f3af0
push 0
push 0
lea edx, [esp + 0x184]
push edx
push ebx
lea ecx, [edi + 0x100]
mov byte [esp + 0x270], 0x3f
call fcn.004068b0
test eax, eax
je 0x415844
mov eax, dword [esp + 0x184]
mov ecx, dword [eax]
mov dword [esp + 0x54], ecx
mov edx, dword [esi]
mov edx, dword [edx + 0xdc]
lea eax, [esp + 0x34]
push eax
mov ecx, esi
mov dword [esp + 0x38], 0
call edx
mov eax, dword [esp + 0x34]
test eax, eax
jne 0x41587e
lea ecx, [esp + 0x17c]
mov byte [esp + 0x260], 0x2a
call fcn.005f3b00
jmp 0x416e1e
cmp word [eax + 4], 1
jae 0x41589e
lea ecx, [esp + 0x17c]
mov byte [esp + 0x260], 0x2a
call fcn.005f3b00
jmp 0x416e1e
mov ecx, esi
call fcn.00470f00
mov ecx, eax
call fcn.004bfe00
push eax
lea ecx, [esp + 0x110]
call fcn.005edd80
push 0x633ca0
lea ecx, [esp + 0x110]
mov byte [esp + 0x264], 0x40
call fcn.005edc30
mov eax, dword [edi + 0x2e0]
lea ecx, [eax + 1]
mov dword [edi + 0x2e0], ecx
push eax
lea ecx, [esp + 0x110]
call fcn.005edd70
push 0x80
call sub.MSVCR90.dll_void____cdecl_operator_new_unsigned_int_
mov ebx, eax
add esp, 4
mov dword [esp + 0x48], ebx
mov byte [esp + 0x260], 0x41
test ebx, ebx
je 0x415977
mov eax, dword [0x686164]
sub esp, 0xc
mov dword [esp + 0x20], eax
lea edx, [esp + 0x118]
inc eax
mov ecx, esp
mov dword [esp + 0x74], esp
push edx
mov dword [0x686164], eax
call fcn.005edb30
lea eax, [esp + 0x164]
push eax
mov ecx, edi
call fcn.00406f20
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 + 0x26c], 0x42
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 + 0x70], vtable.BMBPad.0
mov dword [esp + 0x18], ebx
jmp 0x41597f
mov dword [esp + 0x18], 0
test byte [esp + 0x24], 0x10
mov dword [esp + 0x260], 0x40
je 0x4159a3
and dword [esp + 0x24], 0xffffffef
lea ecx, [esp + 0x158]
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 0x415ad9
fldz
fst dword [esp + 0x15c]
fstp dword [esp + 0x160]
mov edx, dword [esi]
mov eax, dword [edx + 0x7c]
mov ecx, esi
call eax
fstp dword [esp + 0x144]
mov edx, dword [esp + 0x34]
xor eax, eax
mov dword [esp + 0x164], eax
mov dword [esp + 0x130], 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 + 0x144]
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 + 0x16c]
push eax
lea ecx, [esp + 0x13c]
push ecx
mov ecx, dword [esp + 0x28]
push edx
lea eax, [esp + 0x120]
push eax
push ecx
mov ecx, edi
call fcn.0041cae0
lea ecx, [esp + 0x1a4]
call dword [sym.imp.mfc90.dll_Ordinal_316]
mov edx, dword [esp + 0x10c]
push edx
lea ecx, [esp + 0x1a8]
mov byte [esp + 0x264], 0x44
call dword [sym.imp.mfc90.dll_Ordinal_820]
mov ax, word [esp + 0x54]
mov ecx, dword [esp + 0x15c]
mov edx, dword [esp + 0x160]
sub esp, 0x10
mov word [esp + 0x1b8], ax
mov dword [esp + 0x1bc], ecx
lea eax, [esp + 0x1b4]
mov ecx, esp
mov dword [esp + 0x24], esp
push eax
mov dword [esp + 0x1c4], edx
call fcn.0040b340
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 + 0x1a4]
mov byte [esp + 0x260], 0x40
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 0x4159c7
mov ecx, dword [esp + 0x18]
push ecx
mov ecx, dword [esp + 0xb4]
call dword [sym.imp.BMB_NX_C9.dll_public:_void___thiscall_BMBMapPad::AddElement_class_BMBPad__]
lea ecx, [esp + 0x10c]
mov byte [esp + 0x260], 0x3f
call fcn.005ed430
lea ecx, [esp + 0x17c]
mov byte [esp + 0x260], 0x2a
call fcn.005f3b00
jmp 0x416ce6
cmp ebx, 0xb
jne 0x416ce6
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.004a7c40
mov ecx, eax
call fcn.004754e0
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 + 0x50], eax
call fcn.00470f00
mov ecx, eax
call fcn.004bfe00
mov ecx, dword [edi + 0x34]
push eax
call fcn.004efc10
mov ecx, eax
call fcn.004c07a0
mov ebx, eax
test ebx, ebx
je 0x416e1e
mov ecx, esi
call fcn.004a7c40
mov ecx, eax
call fcn.004754e0
mov dword [esp + 0x14], eax
test eax, eax
je 0x416e1e
lea ecx, [esp + 0x1d4]
mov dword [esp + 0x54], 0
call fcn.005f3af0
mov edx, dword [esp + 0x14]
push 0
push 0
lea ecx, [esp + 0x1dc]
push ecx
push edx
lea ecx, [edi + 0x100]
mov byte [esp + 0x270], 0x45
call fcn.004068b0
test eax, eax
je 0x415bed
mov eax, dword [esp + 0x1dc]
mov ecx, dword [eax]
mov dword [esp + 0x54], ecx
lea ecx, [esp + 0x194]
call dword [sym.imp.mfc90.dll_Ordinal_316]
mov ecx, ebx
mov byte [esp + 0x260], 0x46
call fcn.004bfe00
push eax
lea ecx, [esp + 0x198]
call dword [sym.imp.mfc90.dll_Ordinal_820]
fldz
mov dx, word [esp + 0x54]
fst dword [esp + 0x13c]
mov eax, dword [esp + 0x13c]
fstp dword [esp + 0x140]
mov ecx, dword [esp + 0x140]
sub esp, 0x10
mov word [esp + 0x1a8], dx
mov dword [esp + 0x1b0], ecx
lea edx, [esp + 0x1a4]
mov ecx, esp
mov dword [esp + 0x24], esp
push edx
mov dword [esp + 0x1b0], eax
call fcn.0040b340
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 + 0x194]
call dword [sym.imp.mfc90.dll_Ordinal_601]
lea ecx, [esp + 0x1d4]
mov byte [esp + 0x260], 0x2a
call fcn.005f3b00
jmp 0x416ce6
xor ebx, ebx
lea ecx, [esp + 0x118]
mov dword [esp + 0x80], ebx
call fcn.005f3af0
lea ecx, [esp + 0x188]
mov byte [esp + 0x260], 0x2b
call fcn.005f3af0
mov eax, dword [esi]
mov edx, dword [eax + 0x38]
mov ecx, esi
mov byte [esp + 0x260], 0x2c
call edx
cmp eax, 0xf
jne 0x415d20
lea eax, [esp + 0x14]
push eax
lea ecx, [esp + 0x18c]
push ecx
lea edx, [esp + 0x120]
push edx
mov ecx, esi
mov dword [esp + 0x8c], esi
mov dword [esp + 0x20], ebx
call fcn.004bf130
cmp dword [esp + 0x118], ebx
jle 0x415d0f
mov dword [esp + 0x54], 1
cmp dword [esp + 0x188], ebx
jle 0x415d20
mov dword [esp + 0x6c], 1
mov ecx, esi
call fcn.00470f00
mov ecx, eax
call fcn.004b9eb0
mov ecx, dword [edi + 0x34]
push ebx
push eax
call fcn.004b0b60
mov ecx, eax
call fcn.004b8050
test byte [eax + 0x20], 1
mov dword [esp + 0x30], eax
je 0x415d4c
push ebx
jmp 0x415d4e
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 + 0x230]
push eax
mov ecx, esi
call fcn.00470f00
mov ecx, eax
call fcn.004ba180
mov ecx, dword [eax + 4]
mov eax, dword [eax]
push ecx
push eax
lea ecx, [esp + 0xe4]
mov byte [esp + 0x268], 0x2d
call fcn.005ed450
lea ecx, [esp + 0x230]
mov byte [esp + 0x260], 0x2c
call fcn.005ed430
movzx eax, word [esi + 0x5c]
movzx ecx, ax
movzx eax, word [esi + 0x5e]
movzx edx, ax
mov eax, dword [edi + 0x2d8]
mov dword [esp + 0x50], ecx
mov dword [esp + 0x2c], edx
cmp eax, 2
je 0x415de2
cmp eax, 4
jne 0x415df2
mov ecx, ebx
call dword [sym.imp.BMB_NX_C9.dll_public:_unsigned_char___thiscall_BMB2DStack::GetPlated_void_]
cmp al, 1
je 0x415fb0
mov eax, dword [esi]
mov edx, dword [eax + 0xe0]
mov ecx, esi
call edx
test eax, eax
je 0x415fb0
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.005f3af0
mov ecx, dword [edi + 0x48]
push 3
mov byte [esp + 0x264], 0x2e
call fcn.004e2900
test eax, eax
je 0x415f9c
push 0
push 0
lea ecx, [esp + 0x1bc]
push ecx
push eax
lea ecx, [edi + 0x100]
call fcn.004067f0
test eax, eax
je 0x415f9c
mov edx, dword [esp + 0x18]
push edx
mov ecx, edi
call fcn.0040bf10
cmp eax, 1
jne 0x415f9c
cmp byte [edi + 0x2a5], al
jne 0x415f9c
mov eax, dword [esp + 0x1bc]
mov ecx, dword [eax]
push 0x80
mov dword [esp + 0x18], ecx
call sub.MSVCR90.dll_void____cdecl_operator_new_unsigned_int_
mov ebx, eax
add esp, 4
mov dword [esp + 0x48], ebx
mov byte [esp + 0x260], 0x2f
test ebx, ebx
je 0x415ed0
mov edx, dword [0x686164]
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 + 0x70], vtable.BMBHole.0
jmp 0x415ed2
xor ebx, ebx
inc dword [0x686164]
mov eax, dword [esi]
mov edx, dword [eax + 0x7c]
mov ecx, esi
mov byte [esp + 0x260], 0x2e
call edx
fstp dword [esp + 0x168]
xor eax, eax
push eax
lea ecx, [esp + 0x210]
mov dword [esp + 0x24], eax
mov dword [esp + 0x68], eax
call fcn.005ed360
mov edx, dword [esi]
mov edx, dword [edx + 0x5c]
lea eax, [esp + 0x168]
push eax
lea eax, [esp + 0x250]
push eax
mov ecx, esi
mov byte [esp + 0x268], 0x30
call edx
mov edx, dword [esp + 0x1c]
push eax
lea eax, [esp + 0x28]
push eax
lea ecx, [esp + 0x70]
push ecx
push edx
lea eax, [esp + 0x220]
push eax
push ebx
mov ecx, edi
call fcn.0041cce0
lea ecx, [esp + 0x20c]
mov byte [esp + 0x260], 0x2e
call fcn.005ed430
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 + 0x278]
cmp eax, 1
je 0x415f91
mov ecx, dword [esp + 0x1c]
cmp eax, 2
jne 0x415f87
call dword [sym.imp.BMB_NX_C9.dll_public:_unsigned_char___thiscall_BMB2DStack::GetPlated_void_]
test al, al
jmp 0x415f8f
call dword [sym.imp.BMB_NX_C9.dll_public:_unsigned_char___thiscall_BMB2DStack::GetPlated_void_]
cmp al, 1
jne 0x415f9c
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 + 0x260], 0x2c
call fcn.005f3b00
movzx ebx, word [esi + 0x5c]
movzx edx, word [esi + 0x5e]
lea ecx, [esp + 0x74]
mov dword [esp + 0x60], ebx
mov dword [esp + 0x58], edx
call fcn.005f3af0
cmp bx, word [esp + 0x58]
movzx eax, bx
mov byte [esp + 0x260], 0x31
mov dword [esp + 0x38], eax
jg 0x41658a
movsx ecx, bx
mov dword [esp + 0x5c], ecx
lea ebx, [ebx]
mov edx, dword [esp + 0x38]
mov ecx, dword [edi + 0x48]
push edx
call fcn.004070e0
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0x3c]
call eax
movzx ecx, ax
push ecx
mov ecx, dword [esp + 0x34]
call fcn.004b9ee0
mov ebx, eax
mov dword [esp + 0x68], ebx
test ebx, ebx
je 0x416572
mov edx, dword [esp + 0x38]
mov ecx, dword [edi + 0x48]
push edx
call fcn.004070e0
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0x38]
push eax
mov ecx, esi
call fcn.004b53a0
mov edx, dword [esp + 0x14]
push 0
push 0
lea ecx, [esp + 0x7c]
push ecx
push edx
lea ecx, [edi + 0x100]
mov dword [esp + 0x58], eax
mov dword [esp + 0x80], 0
call fcn.004068b0
test eax, eax
je 0x416572
mov eax, dword [esp + 0x7c]
mov eax, dword [eax]
mov dword [esp + 0x4c], eax
test eax, eax
je 0x416572
cmp dword [esp + 0x54], 1
jne 0x416403
mov ecx, dword [edi + 0x34]
mov edx, dword [esp + 0x48]
mov dword [esp + 0x14], ecx
push edx
mov ecx, ebx
call fcn.004c0cd0
mov ecx, dword [esp + 0x14]
movzx eax, ax
push eax
call fcn.004efc10
mov ecx, eax
call fcn.004c0720
mov dword [esp + 0x48], eax
test eax, eax
je 0x416572
mov ecx, eax
call fcn.004bfe00
test eax, eax
je 0x416572
cmp dword [esp + 0x118], 0
mov dword [esp + 0x28], 0
jle 0x416403
jmp 0x4160f0
mov ecx, dword [esp + 0x120]
mov edx, dword [esp + 0x28]
movzx eax, word [ecx + edx*2]
cmp dword [esp + 0x5c], eax
jne 0x4163de
mov ecx, dword [esp + 0x38]
push ecx
mov ecx, dword [edi + 0x48]
mov dword [esp + 0x74], 1
mov dword [esp + 0x40], 0
call fcn.004070e0
mov edx, dword [edi + 0x34]
mov ebx, dword [esi]
lea ecx, [esp + 0x3c]
mov dword [esp + 0x14], edx
mov edx, dword [eax]
push 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.004efc10
mov edx, dword [ebx]
push eax
mov ecx, esi
call edx
mov eax, dword [esp + 0x3c]
test eax, eax
je 0x4163de
cmp word [eax + 4], 1
jb 0x4163de
mov ecx, dword [esp + 0x48]
call fcn.004bfe00
push eax
lea ecx, [esp + 0x104]
call fcn.005edd80
push 0x633ca0
lea ecx, [esp + 0x104]
mov byte [esp + 0x264], 0x32
call fcn.005edc30
mov eax, dword [edi + 0x2e0]
lea ecx, [eax + 1]
mov dword [edi + 0x2e0], ecx
push eax
lea ecx, [esp + 0x104]
call fcn.005edd70
push 0x80
call sub.MSVCR90.dll_void____cdecl_operator_new_unsigned_int_
mov ebx, eax
add esp, 4
mov dword [esp + 0xc4], ebx
mov byte [esp + 0x260], 0x33
test ebx, ebx
je 0x416241
mov eax, dword [0x686164]
sub esp, 0xc
mov dword [esp + 0x20], eax
lea edx, [esp + 0x10c]
inc eax
mov ecx, esp
mov dword [esp + 0x24], esp
push edx
mov dword [0x686164], eax
call fcn.005edb30
lea eax, [esp + 0x144]
push eax
mov ecx, edi
call fcn.00406f20
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 + 0x26c], 0x34
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 + 0x70], vtable.BMBPad.0
mov dword [esp + 0x18], ebx
jmp 0x416249
mov dword [esp + 0x18], 0
test byte [esp + 0x24], 4
mov dword [esp + 0x260], 0x32
je 0x41626d
and dword [esp + 0x24], 0xfffffffb
lea ecx, [esp + 0x138]
call dword [sym.imp.mfc90.dll_Ordinal_601]
mov edx, dword [esp + 0x3c]
mov eax, dword [edx + 4]
xor ecx, ecx
xor ebx, ebx
cmp cx, ax
jae 0x4163b8
fldz
fst dword [esp + 0x150]
fstp dword [esp + 0x154]
mov edx, dword [esi]
mov eax, dword [edx + 0x7c]
mov ecx, esi
call eax
fstp dword [esp + 0x134]
mov ecx, dword [esp + 0x30]
call fcn.004ba2b0
mov ecx, dword [esp + 0x30]
movzx edx, word [ecx + 0x20]
mov ecx, dword [esp + 0x3c]
shr edx, 2
mov dword [esp + 0x148], eax
and edx, 1
mov dword [esp + 0x9c], 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 + 0x134]
mov dword [esp + 0x14], eax
push ecx
lea eax, [esp + 0x248]
push eax
mov ecx, esi
call edx
mov edx, dword [esp + 0x18]
push eax
lea eax, [esp + 0x150]
push eax
lea ecx, [esp + 0xa8]
push ecx
mov ecx, dword [esp + 0x28]
push edx
lea eax, [esp + 0x114]
push eax
push ecx
mov ecx, edi
call fcn.0041cae0
lea ecx, [esp + 0x1ec]
call dword [sym.imp.mfc90.dll_Ordinal_316]
mov edx, dword [esp + 0x100]
push edx
lea ecx, [esp + 0x1f0]
mov byte [esp + 0x264], 0x36
call dword [sym.imp.mfc90.dll_Ordinal_820]
mov ax, word [esp + 0x4c]
mov ecx, dword [esp + 0x150]
mov edx, dword [esp + 0x154]
sub esp, 0x10
mov word [esp + 0x200], ax
mov dword [esp + 0x204], ecx
lea eax, [esp + 0x1fc]
mov ecx, esp
mov dword [esp + 0x24], esp
push eax
mov dword [esp + 0x20c], edx
call fcn.0040b340
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 + 0x1ec]
mov byte [esp + 0x260], 0x32
call dword [sym.imp.mfc90.dll_Ordinal_601]
mov ecx, dword [esp + 0x3c]
movzx edx, word [ecx + 4]
inc ebx
movsx eax, bx
cmp eax, edx
jl 0x416291
mov ecx, dword [esp + 0x18]
push ecx
mov ecx, dword [esp + 0xb4]
call dword [sym.imp.BMB_NX_C9.dll_public:_void___thiscall_BMBMapPad::AddElement_class_BMBPad__]
lea ecx, [esp + 0x100]
mov byte [esp + 0x260], 0x31
call fcn.005ed430
mov eax, dword [esp + 0x28]
inc eax
cmp eax, dword [esp + 0x118]
mov dword [esp + 0x28], eax
jl 0x4160f0
cmp dword [esp + 0x70], 1
je 0x416572
mov ebx, dword [esp + 0x68]
mov edx, dword [edi + 0x34]
push 0
mov ecx, ebx
mov dword [esp + 0x18], edx
call fcn.004c0cd0
mov ecx, dword [esp + 0x14]
movzx eax, ax
push eax
call fcn.004efc10
mov ecx, eax
call fcn.004c0720
mov ecx, dword [edi + 0x34]
mov dword [esp + 0x14], ecx
push 1
mov ecx, ebx
mov dword [esp + 0x6c], eax
call fcn.004c0cd0
mov ecx, dword [esp + 0x14]
movzx edx, ax
push edx
call fcn.004efc10
mov ecx, eax
call fcn.004c0720
mov dword [esp + 0xc4], eax
mov eax, dword [edi + 0x34]
push 2
mov ecx, ebx
mov dword [esp + 0x18], eax
call fcn.004c0cd0
movzx ecx, ax
push ecx
mov ecx, dword [esp + 0x18]
call fcn.004efc10
mov ecx, eax
call fcn.004c0720
mov edx, dword [edi + 0x34]
push 3
mov ecx, ebx
mov dword [esp + 0x4c], eax
mov dword [esp + 0x18], edx
call fcn.004c0cd0
mov ecx, dword [esp + 0x14]
movzx eax, ax
push eax
call fcn.004efc10
mov ecx, eax
call fcn.004c0720
mov ecx, dword [esp + 0x38]
push ecx
mov ecx, dword [edi + 0x48]
mov ebx, eax
call fcn.004070e0
cmp dword [eax + 0x34], 1
jne 0x4164c1
test ebx, ebx
jne 0x4164d8
mov ebx, dword [esp + 0x48]
jmp 0x4164d0
mov ebx, dword [esp + 0x68]
test ebx, ebx
jne 0x4164d8
mov ebx, dword [esp + 0xc4]
test ebx, ebx
je 0x416572
lea ecx, [esp + 0x1c4]
call dword [sym.imp.mfc90.dll_Ordinal_316]
mov ecx, ebx
mov byte [esp + 0x260], 0x37
call fcn.004bfe00
push eax
lea ecx, [esp + 0x1c8]
call dword [sym.imp.mfc90.dll_Ordinal_820]
fldz
mov dx, word [esp + 0x4c]
fst dword [esp + 0x16c]
mov eax, dword [esp + 0x16c]
fstp dword [esp + 0x170]
mov ecx, dword [esp + 0x170]
sub esp, 0x10
mov word [esp + 0x1d8], dx
mov dword [esp + 0x1e0], ecx
lea edx, [esp + 0x1d4]
mov ecx, esp
mov dword [esp + 0x24], esp
push edx
mov dword [esp + 0x1e0], eax
call fcn.0040b340
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 + 0x1c4]
mov byte [esp + 0x260], 0x31
call dword [sym.imp.mfc90.dll_Ordinal_601]
mov eax, dword [esp + 0x38]
inc dword [esp + 0x5c]
inc eax
cmp ax, word [esp + 0x58]
mov dword [esp + 0x38], eax
jle 0x415ff0
cmp dword [esp + 0x6c], 1
jne 0x416aa3
mov ecx, dword [edi + 0x48]
xor eax, eax
cmp dword [ecx + 0x3c], eax
mov dword [esp + 0x54], eax
mov dword [esp + 0x38], eax
jle 0x416cad
jmp 0x4165b0
movzx ecx, word [esp + 0x38]
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 + 0x48], ecx
test ebx, ebx
je 0x4165f6
mov eax, dword [ebx + 8]
test eax, eax
jne 0x4165f2
mov eax, dword [ebx + 4]
and eax, 0x7f
mov dword [esp + 0x14], eax
call fcn.005018f0
mov ecx, dword [esp + 0x14]
mov eax, dword [eax + ecx*4 - 4]
push ebx
mov ecx, eax
call fcn.00500ce0
mov ebx, eax
jmp 0x4165f8
xor ebx, ebx
push 0
push 0
lea edx, [esp + 0x7c]
push edx
push ebx
lea ecx, [edi + 0x100]
call fcn.004068b0
test eax, eax
je 0x416a89
mov eax, dword [ebx]
mov edx, dword [eax + 0x3c]
mov ecx, ebx
call edx
mov ecx, dword [esp + 0x30]
movzx eax, ax
push eax
call fcn.004b9f40
test eax, eax
je 0x416a89
mov ecx, dword [edi + 0x34]
push eax
call fcn.004efc10
mov ecx, eax
call fcn.004c0720
mov dword [esp + 0x70], eax
test eax, eax
je 0x416a89
mov ecx, dword [esp + 0x188]
xor eax, eax
test ecx, ecx
jle 0x41667a
mov edx, dword [esp + 0x190]
movzx ebx, word [edx + eax*2]
cmp dword [esp + 0x38], ebx
jne 0x416675
mov dword [esp + 0x54], 1
inc eax
cmp eax, ecx
jl 0x416663
cmp dword [esp + 0x54], 1
jne 0x41699d
mov edx, dword [esp + 0x80]
mov ebx, dword [edx]
mov edx, dword [esp + 0x48]
mov ecx, dword [edi + 0x34]
lea eax, [esp + 0x3c]
push eax
push edx
mov dword [esp + 0x44], 0
add ebx, 0xf0
call fcn.004efc10
mov ecx, dword [esp + 0x88]
push eax
mov eax, dword [ebx]
call eax
cmp dword [esp + 0x74], 0
mov dword [esp + 0x5c], 0
jle 0x416a89
mov eax, dword [esp + 0x3c]
test eax, eax
je 0x416985
cmp word [eax + 4], 1
jb 0x416985
mov ecx, dword [esp + 0x70]
call fcn.004bfe00
push eax
lea ecx, [esp + 0x128]
call fcn.005edd80
push 0x633ca0
lea ecx, [esp + 0x128]
mov byte [esp + 0x264], 0x38
call fcn.005edc30
mov eax, dword [edi + 0x2e0]
lea ecx, [eax + 1]
mov dword [edi + 0x2e0], ecx
push eax
lea ecx, [esp + 0x128]
call fcn.005edd70
push 0x80
call sub.MSVCR90.dll_void____cdecl_operator_new_unsigned_int_
mov ebx, eax
add esp, 4
mov dword [esp + 0x48], ebx
mov byte [esp + 0x260], 0x39
test ebx, ebx
je 0x4167b4
mov eax, dword [0x686164]
sub esp, 0xc
mov dword [esp + 0x20], eax
lea edx, [esp + 0x130]
inc eax
mov ecx, esp
mov dword [esp + 0x74], esp
push edx
mov dword [0x686164], eax
call fcn.005edb30
lea eax, [esp + 0x158]
push eax
mov ecx, edi
call fcn.00406f20
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 + 0x26c], 0x3a
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 + 0x70], vtable.BMBPad.0
mov dword [esp + 0x28], ebx
jmp 0x4167bc
mov dword [esp + 0x28], 0
test byte [esp + 0x24], 8
mov dword [esp + 0x260], 0x38
je 0x4167e0
and dword [esp + 0x24], 0xfffffff7
lea ecx, [esp + 0x14c]
call dword [sym.imp.mfc90.dll_Ordinal_601]
mov edx, dword [esp + 0x3c]
mov eax, dword [edx + 4]
xor ecx, ecx
mov dword [esp + 0x18], 0
cmp cx, ax
jae 0x41695b
fldz
fst dword [esp + 0x174]
fstp dword [esp + 0x178]
lea ebx, [ebx]
mov edx, dword [esi]
mov eax, dword [edx + 0x7c]
mov ecx, esi
call eax
fstp dword [esp + 0xc8]
mov ebx, dword [esp + 0x30]
mov ecx, ebx
call fcn.004ba2b0
movzx ecx, word [ebx + 0x20]
movzx edx, word [esp + 0x18]
shr ecx, 2
mov dword [esp + 0x40], eax
mov eax, dword [esp + 0x3c]
and ecx, 1
mov dword [esp + 0xe8], ecx
mov ecx, dword [eax + 8]
mov ebx, dword [ecx + edx*4]
mov eax, dword [esi]
lea edx, [esp + 0xc8]
push edx
mov edx, dword [eax + 0x5c]
lea ecx, [esp + 0x1e4]
push ecx
mov ecx, esi
call edx
push eax
lea eax, [esp + 0x48]
push eax
mov eax, dword [esp + 0x34]
lea ecx, [esp + 0xf4]
push ecx
push ebx
lea edx, [esp + 0x138]
push edx
push eax
mov ecx, edi
call fcn.0041cae0
lea ecx, [esp + 0xf0]
call dword [sym.imp.mfc90.dll_Ordinal_316]
mov ecx, dword [esp + 0x124]
push ecx
lea ecx, [esp + 0xf4]
mov byte [esp + 0x264], 0x3c
call dword [sym.imp.mfc90.dll_Ordinal_820]
mov edx, dword [esp + 0x7c]
mov eax, dword [esp + 0x5c]
mov cx, word [edx + eax*4]
mov edx, dword [esp + 0x174]
mov eax, dword [esp + 0x178]
sub esp, 0x10
mov word [esp + 0x104], cx
mov ebx, esp
lea ecx, [esp + 0x100]
mov dword [esp + 0x24], esp
push ecx
mov ecx, ebx
mov dword [esp + 0x10c], edx
mov dword [esp + 0x110], eax
call dword [sym.imp.mfc90.dll_Ordinal_300]
mov dx, word [esp + 0x104]
mov word [ebx + 4], dx
mov eax, dword [esp + 0x108]
mov dword [ebx + 8], eax
mov ecx, dword [esp + 0x10c]
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 + 0xf0]
mov byte [esp + 0x260], 0x38
call dword [sym.imp.mfc90.dll_Ordinal_601]
mov eax, dword [esp + 0x18]
mov edx, dword [esp + 0x3c]
movzx ecx, word [edx + 4]
inc eax
movsx edx, ax
cmp edx, ecx
mov dword [esp + 0x18], eax
jl 0x416810
mov eax, dword [esp + 0x28]
mov ecx, dword [esp + 0xb0]
push eax
call dword [sym.imp.BMB_NX_C9.dll_public:_void___thiscall_BMBMapPad::AddElement_class_BMBPad__]
lea ecx, [esp + 0x124]
mov byte [esp + 0x260], 0x31
call fcn.005ed430
mov eax, dword [esp + 0x3c]
mov ecx, dword [esp + 0x5c]
inc ecx
cmp ecx, dword [esp + 0x74]
mov dword [esp + 0x5c], ecx
jl 0x4166d1
jmp 0x416a89
cmp dword [esp + 0x74], 0
mov dword [esp + 0x18], 0
jle 0x416a89
fldz
fst dword [esp + 0x1fc]
fstp dword [esp + 0x200]
lea ecx, [esp + 0xcc]
call dword [sym.imp.mfc90.dll_Ordinal_316]
mov ecx, dword [esp + 0x70]
mov byte [esp + 0x260], 0x3d
call fcn.004bfe00
push eax
lea ecx, [esp + 0xd0]
call dword [sym.imp.mfc90.dll_Ordinal_820]
mov ecx, dword [esp + 0x7c]
mov edx, dword [esp + 0x18]
mov ax, word [ecx + edx*4]
mov ecx, dword [esp + 0x1fc]
mov edx, dword [esp + 0x200]
sub esp, 0x10
mov word [esp + 0xe0], ax
mov ebx, esp
lea eax, [esp + 0xdc]
mov dword [esp + 0xe4], ecx
mov dword [esp + 0x24], 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 + 0x260], 0x31
call dword [sym.imp.mfc90.dll_Ordinal_601]
mov eax, dword [esp + 0x18]
inc eax
cmp eax, dword [esp + 0x74]
mov dword [esp + 0x18], eax
jl 0x4169c0
mov eax, dword [esp + 0x38]
mov ecx, dword [edi + 0x48]
inc eax
cmp eax, dword [ecx + 0x3c]
mov dword [esp + 0x38], eax
jl 0x4165b0
jmp 0x416cad
mov edx, dword [edi + 0x48]
cmp dword [edx + 0x3c], 0
mov dword [esp + 0x28], 0
jle 0x416cad
mov eax, dword [edi + 0x48]
movzx ecx, word [esp + 0x28]
mov edx, dword [eax + 0x40]
mov ebx, dword [edx + ecx*4]
lea eax, [edx + ecx*4]
test ebx, ebx
je 0x416af7
mov eax, dword [ebx + 8]
test eax, eax
jne 0x416af3
mov eax, dword [ebx + 4]
and eax, 0x7f
mov dword [esp + 0x14], eax
call fcn.005018f0
mov ecx, dword [esp + 0x14]
mov eax, dword [eax + ecx*4 - 4]
push ebx
mov ecx, eax
call fcn.00500ce0
mov ebx, eax
jmp 0x416af9
xor ebx, ebx
push 0
push 0
lea edx, [esp + 0x7c]
push edx
push ebx
lea ecx, [edi + 0x100]
call fcn.004068b0
test eax, eax
je 0x416c98
mov eax, dword [ebx]
mov edx, dword [eax + 0x3c]
mov ecx, ebx
call edx
mov ecx, dword [esp + 0x30]
movzx eax, ax
push eax
call fcn.004b9f40
test eax, eax
je 0x416c98
mov ecx, dword [edi + 0x34]
push eax
call fcn.004efc10
mov ecx, eax
call fcn.004c0720
mov dword [esp + 0x14], eax
test eax, eax
je 0x416c98
xor ebx, ebx
cmp dword [esp + 0x74], ebx
mov dword [esp + 0x18], ebx
jle 0x416c98
lea ecx, [esp + 0xa0]
call dword [sym.imp.mfc90.dll_Ordinal_316]
mov ecx, dword [esp + 0x7c]
mov eax, dword [ecx + ebx*4]
push eax
lea ecx, [edi + 0x100]
mov byte [esp + 0x264], 0x3e
call fcn.004064a0
test eax, eax
je 0x416bd4
movsx edx, word [esp + 0x60]
inc edx
cmp eax, edx
jge 0x416bb0
lea ecx, [esp + 0xa0]
mov byte [esp + 0x260], 0x31
call dword [sym.imp.mfc90.dll_Ordinal_601]
jmp 0x416c89
movsx ecx, word [esp + 0x58]
inc ecx
cmp eax, ecx
jle 0x416bd4
lea ecx, [esp + 0xa0]
mov byte [esp + 0x260], 0x31
call dword [sym.imp.mfc90.dll_Ordinal_601]
jmp 0x416c89
mov ecx, dword [esp + 0x14]
call fcn.004bfe00
push eax
lea ecx, [esp + 0xa4]
call dword [sym.imp.mfc90.dll_Ordinal_820]
fldz
mov edx, dword [esp + 0x7c]
fst dword [esp + 0x204]
mov eax, dword [esp + 0x18]
fstp dword [esp + 0x208]
mov cx, word [edx + eax*4]
mov edx, dword [esp + 0x204]
mov eax, dword [esp + 0x208]
sub esp, 0x10
mov word [esp + 0xb4], cx
mov ebx, esp
lea ecx, [esp + 0xb0]
mov dword [esp + 0x58], esp
push ecx
mov ecx, ebx
mov dword [esp + 0xbc], edx
mov dword [esp + 0xc0], eax
call dword [sym.imp.mfc90.dll_Ordinal_300]
mov dx, word [esp + 0xb4]
mov word [ebx + 4], dx
mov eax, dword [esp + 0xb8]
mov dword [ebx + 8], eax
mov ecx, dword [esp + 0xbc]
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 + 0xa0]
mov byte [esp + 0x260], 0x31
call dword [sym.imp.mfc90.dll_Ordinal_601]
mov ebx, dword [esp + 0x18]
inc ebx
cmp ebx, dword [esp + 0x74]
mov dword [esp + 0x18], ebx
jl 0x416b60
mov eax, dword [esp + 0x28]
mov edx, dword [edi + 0x48]
inc eax
cmp eax, dword [edx + 0x3c]
mov dword [esp + 0x28], eax
jl 0x416ab8
lea ecx, [esp + 0x74]
mov byte [esp + 0x260], 0x2c
call fcn.005f3b00
lea ecx, [esp + 0x188]
mov byte [esp + 0x260], 0x2b
call fcn.005f3b00
lea ecx, [esp + 0x118]
mov byte [esp + 0x260], 0x2a
call fcn.005f3b00
mov eax, dword [edi + 0x48]
mov eax, dword [eax + 0x30]
dec eax
cmp dword [esp + 0x50], 0
movzx eax, ax
jne 0x416d08
movsx ecx, ax
mov byte [esp + 0x84], 1
cmp dword [esp + 0x2c], ecx
je 0x416d10
mov byte [esp + 0x84], 2
mov edx, dword [esi]
mov edx, dword [edx + 0x5c]
lea eax, [esp + 0x90]
push eax
mov ecx, esi
call edx
mov eax, dword [eax]
lea ecx, [esp + 0xc0]
push ecx
mov ecx, edi
mov dword [esp + 0xc4], eax
call fcn.0042afc0
fstp dword [esp + 0x48]
mov edx, dword [esi]
mov edx, dword [edx + 0x5c]
lea eax, [esp + 0xb4]
push eax
mov ecx, esi
call edx
mov eax, dword [eax + 4]
lea ecx, [esp + 0x44]
push ecx
mov ecx, edi
mov dword [esp + 0x48], eax
call fcn.0042afc0
fstp dword [esp + 0x14]
push 0x90
call sub.MSVCR90.dll_void____cdecl_operator_new_unsigned_int_
mov ebx, eax
add esp, 4
mov dword [esp + 0x68], ebx
mov byte [esp + 0x260], 0x47
test ebx, ebx
je 0x416db6
fld dword [esp + 0x14]
mov edx, dword [0x686164]
push 0
sub esp, 8
fstp dword [esp + 4]
mov ecx, ebx
fld dword [esp + 0x54]
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 + 0x70], vtable.BMBVia.0
jmp 0x416db8
xor ebx, ebx
mov eax, dword [esp + 0x1c]
push eax
mov ecx, ebx
mov byte [esp + 0x264], 0x2a
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 + 0x50]
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 + 0x2c]
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 + 0x1c0]
push ebx
call dword [sym.imp.BMB_NX_C9.dll_public:_void___thiscall_BMBSheet::AddVia_class_BMBVia__]
mov ecx, dword [0x686164]
push ecx
push 0
push esi
mov ecx, edi
call fcn.0040ca30
inc dword [0x686164]
lea ecx, [esp + 0xdc]
mov byte [esp + 0x260], 0x28
call fcn.005ed430
lea ecx, [esp + 0x88]
call fcn.004bb880
lea ecx, [esp + 0x88]
call fcn.004f69c0
test eax, eax
jne 0x4156b0
lea ecx, [esp + 0x88]
mov dword [esp + 0x260], 0xffffffff
call fcn.004f2200
mov eax, 1
mov ecx, dword [esp + 0x258]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4