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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
push 0xffffffffffffffff
push 0x60fa18
mov eax, dword fs:[0]
push eax
sub esp, 0x2d8
push ebx
push esi
push edi
mov eax, dword [0x67dc50]
xor eax, esp
push eax
lea eax, [esp + 0x2e8]
mov dword fs:[0], eax
mov edi, ecx
xor ebx, ebx
mov dword [esp + 0x24], ebx
mov ecx, dword [0x67df84]
call dword [sym.imp.BMB_NX_C9.dll_public:_class_BMBMapPad____thiscall_BMBProduct::GetMapPad_void_]
mov dword [esp + 0x74], eax
cmp eax, ebx
jne 0x422a8a
push 0x24
call sub.MSVCR90.dll_void____cdecl_operator_new_unsigned_int_
mov esi, eax
add esp, 4
mov dword [esp + 0xd8], esi
mov dword [esp + 0x2f0], ebx
cmp esi, ebx
je 0x422a6c
mov ecx, esi
call dword [sym.imp.BMB_NX_C9.dll_public:_void___thiscall_BMBMapPad::constructor_void_]
mov dword [esi], vtable.BMBMapPad.0
jmp 0x422a6e
xor esi, esi
mov ecx, dword [0x67df84]
push esi
mov dword [esp + 0x2f4], 0xffffffff
mov dword [esp + 0x78], esi
call dword [sym.imp.BMB_NX_C9.dll_public:_void___thiscall_BMBProduct::PutMapPad_class_BMBMapPad__]
mov eax, dword [ebp + 8]
mov dword [esp + 0x58], ebx
mov dword [esp + 0x78], ebx
cmp dword [eax + 0x60], ebx
jbe 0x424d58
mov ebx, eax
mov edx, dword [ebx]
mov eax, dword [esp + 0x78]
mov edx, dword [edx + 0x58]
push eax
mov ecx, ebx
call edx
mov edx, dword [eax + 0x34]
push ebx
push 1
sub esp, 8
mov ecx, esp
mov dword [esp + 0x44], eax
mov dword [ecx], edx
mov eax, dword [eax + 0x38]
mov dword [ecx + 4], eax
lea eax, [esp + 0x2c4]
mov dword [esp + 0x20], esp
push eax
mov ecx, edi
call fcn.0041dce0
mov ecx, dword [eax]
mov edx, dword [eax + 4]
push 0xa4
mov dword [esp + 0x60], ecx
mov dword [esp + 0x64], edx
call sub.MSVCR90.dll_void____cdecl_operator_new_unsigned_int_
mov esi, eax
add esp, 4
mov dword [esp + 0x10], esi
mov dword [esp + 0x2f0], 1
test esi, esi
je 0x422ba4
mov ecx, dword [esp + 0x5c]
mov eax, dword [esp + 0x60]
lea edx, [esp + 0x1e8]
mov dword [esp + 0x1c8], ecx
push edx
mov ecx, edi
mov dword [esp + 0x1ec], eax
call fcn.00427770
push ecx
lea eax, [esp + 0x1cc]
fstp dword [esp]
push eax
mov ecx, edi
call fcn.00427770
push ecx
mov ecx, dword [esp + 0x3c]
fstp dword [esp]
call fcn.0046f9e0
sub esp, 0xc
mov ecx, esp
mov dword [esp + 0x4c], esp
push eax
call fcn.005e9060
lea ecx, [esp + 0x1a0]
push ecx
mov ecx, edi
call fcn.004277f0
mov eax, dword [eax]
mov edx, dword [esp + 0x80]
or dword [esp + 0x2c], 1
push eax
mov eax, dword [0x67df8c]
inc edx
push edx
push eax
mov ecx, esi
mov byte [esp + 0x304], 2
call dword [sym.imp.BMB_NX_C9.dll_public:_void___thiscall_BMBPin::constructor_int__short_int__char_const___float__float_]
mov dword [esi], vtable.BMBPin.1.0
mov dword [esi + 0x6c], vtable.BMBPin.0
jmp 0x422ba6
xor esi, esi
mov dword [esp + 0x9c], esi
test byte [esp + 0x24], 1
mov dword [esp + 0x2f0], 0xffffffff
je 0x422bd1
and dword [esp + 0x24], 0xfffffffe
lea ecx, [esp + 0x18c]
call dword [sym.imp.mfc90.dll_Ordinal_601]
mov ecx, dword [esp + 0x34]
call fcn.0046f890
mov ecx, eax
mov dword [esp + 0x14], eax
call fcn.004a5c90
cmp eax, 1
jne 0x422bfc
mov ecx, dword [esp + 0x14]
call fcn.004a5cb0
cmp eax, 1
jne 0x422bfc
push 3
jmp 0x422c21
mov ecx, dword [esp + 0x14]
call fcn.004a5c90
cmp eax, 1
jne 0x422c0d
push eax
jmp 0x422c21
mov ecx, dword [esp + 0x14]
call fcn.004a5cb0
cmp eax, 1
jne 0x422c1f
push 2
jmp 0x422c21
push 0
mov ecx, esi
call dword [sym.imp.BMB_NX_C9.dll_public:_void___thiscall_BMBPin::PutIO_unsigned_char_]
mov ecx, dword [esp + 0x34]
inc dword [0x67df8c]
push ecx
lea ecx, [esp + 0xc8]
call fcn.004b7680
lea ecx, [esp + 0xc4]
mov dword [esp + 0x2f0], 4
call fcn.004b76a0
lea ecx, [esp + 0xc4]
call fcn.004f32d0
test eax, eax
je 0x424d1e
jmp 0x422c70
lea ecx, [esp + 0xc4]
call fcn.004f32d0
mov esi, eax
test byte [esi + 0xc], 0x40
jne 0x424cfe
mov edx, dword [esi]
mov eax, dword [edx + 0x7c]
mov ecx, esi
call eax
fcomp dword [0x62dce0]
mov edx, dword [esi]
mov ecx, esi
fnstsw ax
test ah, 1
mov eax, dword [edx + 0x7c]
jne 0x422caf
call eax
fadd qword [0x62ebc8]
jmp 0x422cb7
call eax
fsub qword [0x62ebc8]
mov ecx, ebx
fstp qword [esp + 0x4c]
call fcn.0046cd90
fld qword [esp + 0x4c]
mov bx, ax
call fcn.005f6310
sub ax, bx
mov ebx, dword [ebp + 8]
test byte [ebx + 0x3c], 2
movzx ecx, ax
mov dword [esp + 0x14], ecx
je 0x422cec
mov edx, ecx
neg edx
movzx eax, dx
mov dword [esp + 0x14], eax
push 0xb0
call sub.MSVCR90.dll_void____cdecl_operator_new_unsigned_int_
add esp, 4
mov dword [esp + 0x20], eax
mov byte [esp + 0x2f0], 5
test eax, eax
je 0x422d33
mov ecx, dword [0x67df8c]
push 1
push 0
push ecx
mov ecx, eax
call dword [sym.imp.BMB_NX_C9.dll_public:_void___thiscall_BMB2DStack::constructor_int__unsigned_char__unsigned_char_]
mov eax, dword [esp + 0x20]
mov dword [eax], vtable.BMB2DStack.1.0
mov dword [eax + 0x6c], vtable.BMB2DStack.0
mov dword [esp + 0x18], eax
jmp 0x422d3b
mov dword [esp + 0x18], 0
movsx edx, word [esp + 0x14]
inc dword [0x67df8c]
mov dword [esp + 0x28], edx
push ecx
fild dword [esp + 0x2c]
mov ecx, dword [esp + 0x1c]
mov byte [esp + 0x2f4], 4
fstp dword [esp]
call dword [sym.imp.BMB_NX_C9.dll_public:_void___thiscall_BMB2DStack::PutRotation_float_]
mov eax, dword [esi]
mov edx, dword [eax + 0x5c]
push ebx
push 1
sub esp, 8
mov ecx, esp
mov dword [esp + 0x20], esp
push ecx
mov ecx, esi
call edx
lea eax, [esp + 0x2d4]
push eax
mov ecx, edi
call fcn.0041dce0
mov ecx, dword [eax]
mov edx, dword [eax + 4]
mov dword [esp + 0x94], ecx
sub ecx, dword [esp + 0x5c]
lea eax, [esp + 0x28]
mov dword [esp + 0x28], ecx
push eax
mov ecx, edi
mov dword [esp + 0x9c], edx
call fcn.00427770
push ecx
mov ecx, dword [esp + 0x1c]
fstp dword [esp]
call dword [sym.imp.BMB_NX_C9.dll_public:_void___thiscall_BMB2DStack::PutOffsetX_float_]
mov ecx, dword [esp + 0x98]
sub ecx, dword [esp + 0x60]
lea edx, [esp + 0x28]
mov dword [esp + 0x28], ecx
push edx
mov ecx, edi
call fcn.00427770
push ecx
mov ecx, dword [esp + 0x1c]
fstp dword [esp]
call dword [sym.imp.BMB_NX_C9.dll_public:_void___thiscall_BMB2DStack::PutOffsetY_float_]
xor eax, eax
mov dword [esp + 0xd4], eax
mov dword [esp + 0x28], eax
mov eax, dword [esi]
mov edx, dword [eax + 0x38]
mov ecx, esi
call edx
add eax, 0xfffffffc
cmp eax, 0xb
ja case.0x422e10.5
movzx eax, byte [eax + 0x424d88]
jmp dword [eax*4 + 0x424d70]
xor ebx, ebx
lea ecx, [esp + 0x174]
mov dword [esp + 0x20], ebx
call fcn.00405fd0
lea ecx, [esp + 0x1ec]
mov byte [esp + 0x2f0], 6
call fcn.00405fd0
mov edx, dword [esi]
mov eax, dword [edx + 0x38]
mov ecx, esi
mov byte [esp + 0x2f0], 7
call eax
cmp eax, 0xf
jne 0x422e9c
lea ecx, [esp + 0x40]
push ecx
lea edx, [esp + 0x1f0]
push edx
lea eax, [esp + 0x17c]
push eax
mov ecx, esi
mov dword [esp + 0x2c], esi
mov dword [esp + 0x4c], ebx
call fcn.004bb080
cmp dword [esp + 0x174], ebx
jle 0x422e8b
mov dword [esp + 0xd4], 1
cmp dword [esp + 0x1ec], ebx
jle 0x422e9c
mov dword [esp + 0x28], 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 + 0x3c], eax
je 0x422ec8
push ebx
jmp 0x422eca
push 1
mov ebx, dword [esp + 0x1c]
mov ecx, ebx
call dword [sym.imp.BMB_NX_C9.dll_public:_void___thiscall_BMB2DStack::PutPlated_unsigned_char_]
cmp dword [edi + 0x260], 1
jne 0x42310b
cmp dword [edi + 0x2c4], 2
jne 0x422efc
mov ecx, ebx
call dword [sym.imp.BMB_NX_C9.dll_public:_unsigned_char___thiscall_BMB2DStack::GetPlated_void_]
cmp al, 1
je 0x42310b
mov edx, dword [esi]
mov eax, dword [edx + 0xe0]
mov ecx, esi
call eax
test eax, eax
je 0x42310b
mov edx, dword [esi]
mov edx, dword [edx + 0xf4]
lea eax, [esp + 0x14]
push eax
mov ecx, esi
mov dword [esp + 0x18], 0
call edx
lea ecx, [esp + 0x29c]
call fcn.00405fd0
mov ecx, dword [edi + 0x48]
push 3
mov byte [esp + 0x2f4], 8
call fcn.004dee40
test eax, eax
je 0x4230f7
push 0
lea ecx, [esp + 0x2a0]
push ecx
push eax
lea ecx, [edi + 0x100]
call fcn.00406780
test eax, eax
je 0x4230f7
mov edx, dword [esp + 0x14]
push edx
mov ecx, edi
call fcn.0041ae00
cmp eax, 1
jne 0x4230f7
cmp byte [edi + 0x290], al
jne 0x4230f7
mov eax, dword [esp + 0x2a4]
mov ecx, dword [eax]
push 0x7c
mov dword [esp + 0x44], ecx
call sub.MSVCR90.dll_void____cdecl_operator_new_unsigned_int_
mov ebx, eax
add esp, 4
mov dword [esp + 0x10], ebx
mov byte [esp + 0x2f0], 9
test ebx, ebx
je 0x422fd5
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 0x422fd7
xor ebx, ebx
inc dword [0x67df8c]
mov eax, dword [esi]
mov edx, dword [eax + 0x7c]
mov ecx, esi
mov byte [esp + 0x2f0], 8
call edx
fstp dword [esp + 0x250]
mov ecx, dword [esp + 0x3c]
call fcn.004b6180
mov dword [esp + 0x194], eax
mov eax, dword [esp + 0x3c]
movzx ecx, word [eax + 0x20]
shr ecx, 2
and ecx, 1
mov dword [esp + 0x188], ecx
push 0
lea ecx, [esp + 0x2ac]
call fcn.005e8640
mov edx, dword [esi]
mov edx, dword [edx + 0x5c]
lea eax, [esp + 0x2d4]
push eax
mov ecx, esi
mov byte [esp + 0x2f4], 0xa
call edx
mov ecx, dword [eax + 4]
mov eax, dword [eax]
sub eax, dword [esp + 0x94]
sub ecx, dword [esp + 0x98]
mov edx, dword [esp + 0x5c]
add edx, eax
mov eax, dword [esp + 0x60]
add eax, ecx
mov dword [esp + 0x268], edx
lea ecx, [esp + 0x250]
push ecx
mov dword [esp + 0x270], eax
lea edx, [esp + 0x26c]
push edx
mov edx, dword [esp + 0x1c]
lea eax, [esp + 0x19c]
push eax
lea ecx, [esp + 0x194]
push ecx
push edx
lea eax, [esp + 0x2bc]
push eax
push ebx
mov ecx, edi
call fcn.0041b2c0
lea ecx, [esp + 0x2a8]
mov byte [esp + 0x2f0], 8
call fcn.005e8710
mov ecx, dword [esp + 0x40]
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 0x4230ec
mov ecx, dword [esp + 0x18]
cmp eax, 2
jne 0x4230e2
call dword [sym.imp.BMB_NX_C9.dll_public:_unsigned_char___thiscall_BMB2DStack::GetPlated_void_]
test al, al
jmp 0x4230ea
call dword [sym.imp.BMB_NX_C9.dll_public:_unsigned_char___thiscall_BMB2DStack::GetPlated_void_]
cmp al, 1
jne 0x4230f7
mov ecx, dword [esp + 0x18]
push ebx
call dword [sym.imp.BMB_NX_C9.dll_public:_void___thiscall_BMB2DStack::PutHole_class_BMBHole__]
lea ecx, [esp + 0x29c]
mov byte [esp + 0x2f0], 7
call fcn.005ee4c0
movzx edx, word [esi + 0x5e]
movzx ebx, word [esi + 0x5c]
lea ecx, [esp + 0x68]
mov dword [esp + 0x40], edx
call fcn.00405fd0
cmp dword [edi + 0x2ac], 0
mov byte [esp + 0x2f0], 0xb
mov eax, 1
je 0x423142
cmp dword [edi + 0x2a4], eax
jne 0x423839
cmp bx, word [esp + 0x40]
movzx ecx, bx
mov dword [esp + 0x2c], ecx
jg 0x423839
mov eax, dword [edi + 0x48]
movzx ecx, word [esp + 0x2c]
mov edx, dword [eax + 0x30]
cmp edx, ecx
jle 0x42319a
mov edx, dword [eax + 0x34]
mov ebx, dword [edx + ecx*4]
lea eax, [edx + ecx*4]
test ebx, ebx
je 0x42319a
mov eax, dword [ebx + 8]
test eax, eax
jne 0x423196
mov eax, dword [ebx + 4]
and eax, 0x7f
mov dword [esp + 0x48], eax
call fcn.004fe0e0
mov ecx, dword [esp + 0x48]
mov eax, dword [eax + ecx*4 - 4]
push ebx
mov ecx, eax
call fcn.004fd530
mov ecx, eax
jmp 0x42319c
xor ecx, ecx
mov edx, dword [ecx]
mov eax, dword [edx + 0x3c]
call eax
movzx ecx, ax
push ecx
mov ecx, dword [esp + 0x40]
call fcn.004b5db0
mov ebx, eax
mov dword [esp + 0x10], ebx
test ebx, ebx
je 0x423820
movzx ecx, word [esp + 0x2c]
mov eax, dword [edi + 0x48]
cmp dword [eax + 0x30], ecx
jle 0x42320f
mov edx, dword [eax + 0x34]
lea eax, [edx + ecx*4]
mov eax, dword [eax]
mov dword [esp + 0x1c], eax
test eax, eax
je 0x42320f
mov eax, dword [eax + 8]
test eax, eax
jne 0x423209
mov eax, dword [esp + 0x1c]
mov eax, dword [eax + 4]
and eax, 0x7f
mov dword [esp + 0x48], eax
call fcn.004fe0e0
mov ecx, dword [esp + 0x48]
mov eax, dword [eax + ecx*4 - 4]
mov edx, dword [esp + 0x1c]
push edx
mov ecx, eax
call fcn.004fd530
mov dword [esp + 0x14], eax
jmp 0x423217
mov dword [esp + 0x14], 0
mov eax, dword [esp + 0x2c]
push eax
mov ecx, esi
call fcn.004b12c0
mov edx, dword [esp + 0x14]
push 0
lea ecx, [esp + 0x6c]
push ecx
push edx
lea ecx, [edi + 0x100]
mov dword [esp + 0x3c], eax
mov dword [esp + 0x54], 0
call fcn.00406820
test eax, eax
je 0x423820
mov eax, dword [esp + 0x70]
mov eax, dword [eax]
mov dword [esp + 0x1c], eax
test eax, eax
je 0x423820
cmp dword [esp + 0xd4], 1
jne 0x423669
mov ecx, dword [edi + 0x34]
mov edx, dword [esp + 0x30]
mov dword [esp + 0x44], ecx
push edx
mov ecx, ebx
call fcn.004bccb0
mov ecx, dword [esp + 0x44]
movzx eax, ax
push eax
call fcn.00438fc0
mov ecx, eax
call fcn.004bc570
mov dword [esp + 0x38], eax
test eax, eax
je 0x423820
mov ecx, eax
call fcn.004bbd50
test eax, eax
je 0x423820
cmp dword [esp + 0x174], 0
mov dword [esp + 0x30], 0
jle 0x423669
jmp 0x4232d0
mov ecx, dword [esp + 0x17c]
mov edx, dword [esp + 0x30]
movzx ecx, word [ecx + edx*2]
movsx eax, word [esp + 0x2c]
cmp eax, ecx
jne 0x423644
mov edx, dword [esp + 0x2c]
mov ecx, dword [edi + 0x48]
push edx
mov dword [esp + 0x4c], 1
mov dword [esp + 0x18], 0
call fcn.00407010
mov ecx, dword [edi + 0x34]
mov ebx, dword [esi]
lea edx, [esp + 0x14]
push edx
mov edx, dword [eax]
mov dword [esp + 0x48], ecx
mov ecx, eax
mov eax, dword [edx + 0x3c]
add ebx, 0xec
call eax
movzx ecx, ax
push ecx
mov ecx, dword [esp + 0x4c]
call fcn.00438fc0
mov edx, dword [ebx]
push eax
mov ecx, esi
call edx
mov eax, dword [esp + 0x14]
test eax, eax
je 0x423644
cmp word [eax + 4], 1
jb 0x423644
mov ecx, dword [esp + 0x38]
call fcn.004bbd50
push eax
lea ecx, [esp + 0xa4]
call fcn.005e9060
push 0x62dc28
lea ecx, [esp + 0xa4]
mov byte [esp + 0x2f4], 0xc
call fcn.005e8f10
mov eax, dword [ebp + 8]
mov eax, dword [eax + 0x2c]
push eax
lea ecx, [esp + 0xa4]
call fcn.005e8f10
push 0x62dc28
lea ecx, [esp + 0xa4]
call fcn.005e8f10
mov ecx, dword [esp + 0x34]
call fcn.0046f9e0
push eax
lea ecx, [esp + 0xa4]
call fcn.005e8f10
push 0x62dc28
lea ecx, [esp + 0xa4]
call fcn.005e8f10
mov ecx, dword [esp + 0x1c]
push ecx
lea ecx, [esp + 0xa4]
call fcn.005e9050
push 0x7c
call sub.MSVCR90.dll_void____cdecl_operator_new_unsigned_int_
mov ebx, eax
add esp, 4
mov dword [esp + 0x254], ebx
mov byte [esp + 0x2f0], 0xd
test ebx, ebx
je 0x423461
mov eax, dword [0x67df8c]
sub esp, 0xc
mov dword [esp + 0x50], eax
lea edx, [esp + 0xac]
inc eax
mov ecx, esp
mov dword [esp + 0x58], esp
push edx
mov dword [0x67df8c], eax
call fcn.005e8e10
lea eax, [esp + 0x1a4]
push eax
mov ecx, edi
call fcn.004277f0
mov eax, dword [eax]
mov ecx, dword [esp + 0x44]
or dword [esp + 0x24], 2
push eax
push 0
push ecx
mov ecx, ebx
mov byte [esp + 0x2fc], 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 + 0x44], ebx
jmp 0x423469
mov dword [esp + 0x44], 0
test byte [esp + 0x24], 2
mov dword [esp + 0x2f0], 0xc
je 0x42348d
and dword [esp + 0x24], 0xfffffffd
lea ecx, [esp + 0x198]
call dword [sym.imp.mfc90.dll_Ordinal_601]
mov edx, dword [esp + 0x14]
mov eax, dword [edx + 4]
xor ecx, ecx
xor ebx, ebx
cmp cx, ax
jae 0x42356c
mov edx, dword [esi]
mov eax, dword [edx + 0x7c]
mov ecx, esi
call eax
fstp dword [esp + 0x1a4]
mov ecx, dword [esp + 0x3c]
call fcn.004b6180
mov ecx, dword [esp + 0x3c]
mov dword [esp + 0x1b0], eax
movzx edx, word [ecx + 0x20]
mov eax, dword [esi]
shr edx, 2
and edx, 1
lea ecx, [esp + 0x2bc]
mov dword [esp + 0x1bc], edx
mov edx, dword [eax + 0x5c]
push ecx
mov ecx, esi
call edx
mov ecx, dword [eax + 4]
mov eax, dword [eax]
sub eax, dword [esp + 0x94]
sub ecx, dword [esp + 0x98]
mov edx, dword [esp + 0x5c]
add edx, eax
mov eax, dword [esp + 0x60]
add eax, ecx
mov dword [esp + 0x278], edx
mov edx, dword [esp + 0x14]
mov dword [esp + 0x27c], eax
mov eax, dword [edx + 8]
movzx ecx, bx
mov eax, dword [eax + ecx*4]
lea ecx, [esp + 0x1a4]
push ecx
lea edx, [esp + 0x27c]
push edx
lea ecx, [esp + 0x1b8]
push ecx
mov ecx, dword [esp + 0x50]
lea edx, [esp + 0x1c8]
push edx
push eax
lea eax, [esp + 0xb4]
push eax
push ecx
mov ecx, edi
call fcn.0041b0c0
mov edx, dword [esp + 0x14]
mov eax, dword [edx + 4]
inc ebx
movsx ecx, bx
movzx edx, ax
cmp ecx, edx
jl 0x4234a1
lea ecx, [esp + 0x154]
call dword [sym.imp.mfc90.dll_Ordinal_316]
mov eax, dword [esp + 0xa0]
push eax
lea ecx, [esp + 0x158]
mov byte [esp + 0x2f4], 0x10
call dword [sym.imp.mfc90.dll_Ordinal_820]
fldz
mov cx, word [esp + 0x1c]
fst dword [esp + 0x19c]
mov edx, dword [esp + 0x19c]
fstp dword [esp + 0x1a0]
mov eax, dword [esp + 0x1a0]
sub esp, 0x10
mov word [esp + 0x168], cx
mov ebx, esp
lea ecx, [esp + 0x164]
mov dword [esp + 0x5c], esp
push ecx
mov ecx, ebx
mov dword [esp + 0x170], edx
mov dword [esp + 0x174], eax
call dword [sym.imp.mfc90.dll_Ordinal_300]
mov dx, word [esp + 0x168]
mov word [ebx + 4], dx
mov eax, dword [esp + 0x16c]
mov dword [ebx + 8], eax
mov ecx, dword [esp + 0x170]
mov dword [ebx + 0xc], ecx
mov ecx, dword [esp + 0x28]
push 0
call dword [sym.imp.BMB_NX_C9.dll_public:_void___thiscall_BMB2DStack::AddPad_class_BMBPad___struct_BMB_LinkPad_t_]
mov edx, dword [esp + 0x44]
mov ecx, dword [esp + 0x74]
push edx
call dword [sym.imp.BMB_NX_C9.dll_public:_void___thiscall_BMBMapPad::AddElement_class_BMBPad__]
lea ecx, [esp + 0x154]
call dword [sym.imp.mfc90.dll_Ordinal_601]
lea ecx, [esp + 0xa0]
mov byte [esp + 0x2f0], 0xb
call fcn.005e8710
mov eax, dword [esp + 0x30]
inc eax
cmp eax, dword [esp + 0x174]
mov dword [esp + 0x30], eax
jl 0x4232d0
cmp dword [esp + 0x48], 1
je 0x423820
mov ebx, dword [esp + 0x10]
mov eax, dword [edi + 0x34]
push 0
mov ecx, ebx
mov dword [esp + 0x14], eax
call fcn.004bccb0
movzx ecx, ax
push ecx
mov ecx, dword [esp + 0x14]
call fcn.00438fc0
mov ecx, eax
call fcn.004bc570
mov edx, dword [edi + 0x34]
push 1
mov ecx, ebx
mov dword [esp + 0x4c], eax
mov dword [esp + 0x14], edx
call fcn.004bccb0
mov ecx, dword [esp + 0x10]
movzx eax, ax
push eax
call fcn.00438fc0
mov ecx, eax
call fcn.004bc570
mov ecx, dword [edi + 0x34]
mov dword [esp + 0x10], ecx
push 2
mov ecx, ebx
mov dword [esp + 0x34], eax
call fcn.004bccb0
mov ecx, dword [esp + 0x10]
movzx edx, ax
push edx
call fcn.00438fc0
mov ecx, eax
call fcn.004bc570
mov dword [esp + 0x38], eax
mov eax, dword [edi + 0x34]
push 3
mov ecx, ebx
mov dword [esp + 0x14], eax
call fcn.004bccb0
movzx ecx, ax
push ecx
mov ecx, dword [esp + 0x14]
call fcn.00438fc0
mov ecx, eax
call fcn.004bc570
cmp dword [ebp + 0x10], 0
mov dword [esp + 0x10], eax
jne 0x42373e
mov edx, dword [esp + 0x2c]
mov ecx, dword [edi + 0x48]
push edx
call fcn.00407010
cmp dword [eax + 0x34], 1
jne 0x423730
mov ebx, dword [esp + 0x10]
test ebx, ebx
jne 0x423777
mov ebx, dword [esp + 0x38]
jmp 0x42376f
mov ebx, dword [esp + 0x48]
test ebx, ebx
jne 0x423777
mov ebx, dword [esp + 0x30]
jmp 0x42376f
mov eax, dword [esp + 0x2c]
push eax
mov ecx, esi
call fcn.004b12c0
mov ecx, dword [edi + 0x34]
mov dword [esp + 0x10], ecx
push eax
mov ecx, ebx
call fcn.004bccb0
mov ecx, dword [esp + 0x10]
movzx edx, ax
push edx
call fcn.00438fc0
mov ecx, eax
call fcn.004bc570
mov ebx, eax
test ebx, ebx
je 0x423820
mov ecx, ebx
call fcn.004bbd50
test eax, eax
je 0x423820
lea ecx, [esp + 0x258]
call dword [sym.imp.mfc90.dll_Ordinal_316]
mov ecx, ebx
mov byte [esp + 0x2f0], 0x11
call fcn.004bbd50
push eax
lea ecx, [esp + 0x25c]
call dword [sym.imp.mfc90.dll_Ordinal_820]
fldz
mov ax, word [esp + 0x1c]
fst dword [esp + 0x22c]
mov ecx, dword [esp + 0x22c]
fstp dword [esp + 0x230]
mov edx, dword [esp + 0x230]
sub esp, 0x10
mov word [esp + 0x26c], ax
mov dword [esp + 0x270], ecx
lea eax, [esp + 0x268]
mov ecx, esp
mov dword [esp + 0x5c], esp
push eax
mov dword [esp + 0x278], edx
call fcn.0040ae00
mov ecx, dword [esp + 0x28]
push 0
call dword [sym.imp.BMB_NX_C9.dll_public:_void___thiscall_BMB2DStack::AddPad_class_BMBPad___struct_BMB_LinkPad_t_]
lea ecx, [esp + 0x258]
mov byte [esp + 0x2f0], 0xb
call dword [sym.imp.mfc90.dll_Ordinal_601]
mov eax, dword [esp + 0x2c]
inc eax
cmp ax, word [esp + 0x40]
mov dword [esp + 0x2c], eax
jle 0x423154
mov eax, 1
cmp dword [esp + 0x28], eax
jne 0x423de3
cmp dword [edi + 0x2ac], eax
je 0x423fce
mov eax, dword [edi + 0x48]
xor ecx, ecx
cmp dword [eax + 0x3c], ecx
mov dword [esp + 0x28], ecx
mov dword [esp + 0x14], ecx
jle 0x423fce
movzx ecx, word [esp + 0x14]
mov edx, dword [eax + 0x40]
mov dword [esp + 0x38], ecx
movzx ecx, cx
mov ebx, dword [edx + ecx*4]
lea eax, [edx + ecx*4]
test ebx, ebx
je 0x4238a8
mov eax, dword [ebx + 8]
test eax, eax
jne 0x4238a4
mov eax, dword [ebx + 4]
and eax, 0x7f
mov dword [esp + 0x10], eax
call fcn.004fe0e0
mov ecx, dword [esp + 0x10]
mov eax, dword [eax + ecx*4 - 4]
push ebx
mov ecx, eax
call fcn.004fd530
mov ebx, eax
jmp 0x4238aa
xor ebx, ebx
push 0
lea edx, [esp + 0x6c]
push edx
push ebx
lea ecx, [edi + 0x100]
call fcn.00406820
test eax, eax
je 0x423dc9
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.004b5e10
test eax, eax
je 0x423dc9
mov ecx, dword [edi + 0x34]
push eax
call fcn.00438fc0
mov ecx, eax
call fcn.004bc570
mov dword [esp + 0x40], eax
test eax, eax
je 0x423dc9
mov eax, dword [esi]
mov edx, dword [ebx]
add eax, 0xdc
mov dword [esp + 0x10], eax
mov eax, dword [edx + 0x3c]
mov ecx, ebx
call eax
mov edx, dword [esp + 0x10]
movzx ecx, ax
mov eax, dword [edx]
push ecx
mov ecx, esi
call eax
test eax, eax
je 0x423dc9
mov ecx, dword [esp + 0x1ec]
xor eax, eax
test ecx, ecx
jle 0x423957
mov edx, dword [esp + 0x1f4]
lea ecx, [ecx]
movzx ebx, word [edx + eax*2]
cmp dword [esp + 0x14], ebx
jne 0x423952
mov dword [esp + 0x28], 1
inc eax
cmp eax, ecx
jl 0x423940
cmp dword [esp + 0x28], 1
jne 0x423cd6
mov edx, dword [esp + 0x20]
mov ebx, dword [edx]
mov edx, dword [esp + 0x38]
mov ecx, dword [edi + 0x34]
lea eax, [esp + 0x2c]
push eax
push edx
mov dword [esp + 0x34], 0
add ebx, 0xf0
call fcn.00438fc0
mov ecx, dword [esp + 0x28]
push eax
mov eax, dword [ebx]
call eax
xor ebx, ebx
cmp dword [esp + 0x68], ebx
mov dword [esp + 0x30], ebx
jle 0x423dc9
mov eax, dword [esp + 0x2c]
test eax, eax
je 0x423cc2
cmp word [eax + 4], 1
jb 0x423cc2
mov ecx, dword [esp + 0x40]
call fcn.004bbd50
push eax
lea ecx, [esp + 0xbc]
call fcn.005e9060
push 0x62dc28
lea ecx, [esp + 0xbc]
mov byte [esp + 0x2f4], 0x12
call fcn.005e8f10
mov ecx, dword [ebp + 8]
mov eax, dword [ecx + 0x2c]
push eax
lea ecx, [esp + 0xbc]
call fcn.005e8f10
push 0x62dc28
lea ecx, [esp + 0xbc]
call fcn.005e8f10
mov ecx, dword [esp + 0x34]
call fcn.0046f9e0
push eax
lea ecx, [esp + 0xbc]
call fcn.005e8f10
push 0x62dc28
lea ecx, [esp + 0xbc]
call fcn.005e8f10
mov edx, dword [esp + 0x70]
mov eax, dword [edx + ebx*4]
push eax
lea ecx, [esp + 0xbc]
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 + 0x2f0], 0x13
test ebx, ebx
je 0x423acb
mov eax, dword [0x67df8c]
sub esp, 0xc
mov dword [esp + 0x1c], eax
lea edx, [esp + 0xc4]
inc eax
mov ecx, esp
mov dword [esp + 0x260], esp
push edx
mov dword [0x67df8c], eax
call fcn.005e8e10
lea eax, [esp + 0x258]
push eax
mov ecx, edi
call fcn.004277f0
mov eax, dword [eax]
mov ecx, dword [esp + 0x10]
or dword [esp + 0x24], 4
push eax
push 0
push ecx
mov ecx, ebx
mov byte [esp + 0x2fc], 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 + 0x1c], ebx
jmp 0x423ad3
mov dword [esp + 0x1c], 0
test byte [esp + 0x24], 4
mov dword [esp + 0x2f0], 0x12
je 0x423af7
and dword [esp + 0x24], 0xfffffffb
lea ecx, [esp + 0x24c]
call dword [sym.imp.mfc90.dll_Ordinal_601]
mov edx, dword [esp + 0x2c]
mov eax, dword [edx + 4]
xor ecx, ecx
xor ebx, ebx
cmp cx, ax
jae 0x423bdb
jmp 0x423b10
mov edx, dword [esi]
mov eax, dword [edx + 0x7c]
mov ecx, esi
call eax
fstp dword [esp + 0x1f8]
mov ecx, dword [esp + 0x3c]
call fcn.004b6180
mov ecx, dword [esp + 0x3c]
mov dword [esp + 0x190], eax
movzx edx, word [ecx + 0x20]
mov eax, dword [esi]
shr edx, 2
and edx, 1
lea ecx, [esp + 0x2cc]
mov dword [esp + 0x1cc], edx
mov edx, dword [eax + 0x5c]
push ecx
mov ecx, esi
call edx
mov ecx, dword [eax + 4]
mov eax, dword [eax]
sub eax, dword [esp + 0x94]
sub ecx, dword [esp + 0x98]
mov edx, dword [esp + 0x5c]
add edx, eax
mov eax, dword [esp + 0x60]
add eax, ecx
mov dword [esp + 0x280], edx
mov edx, dword [esp + 0x2c]
mov dword [esp + 0x284], eax
mov eax, dword [edx + 8]
movzx ecx, bx
mov eax, dword [eax + ecx*4]
lea ecx, [esp + 0x1f8]
push ecx
lea edx, [esp + 0x284]
push edx
lea ecx, [esp + 0x198]
push ecx
mov ecx, dword [esp + 0x28]
lea edx, [esp + 0x1d8]
push edx
push eax
lea eax, [esp + 0xcc]
push eax
push ecx
mov ecx, edi
call fcn.0041b0c0
mov edx, dword [esp + 0x2c]
mov eax, dword [edx + 4]
inc ebx
movsx ecx, bx
movzx edx, ax
cmp ecx, edx
jl 0x423b10
lea ecx, [esp + 0x134]
call dword [sym.imp.mfc90.dll_Ordinal_316]
mov eax, dword [esp + 0xb8]
push eax
lea ecx, [esp + 0x138]
mov byte [esp + 0x2f4], 0x16
call dword [sym.imp.mfc90.dll_Ordinal_820]
fldz
mov ecx, dword [esp + 0x70]
fst dword [esp + 0x1a8]
mov edx, dword [esp + 0x30]
fstp dword [esp + 0x1ac]
mov ax, word [ecx + edx*4]
mov ecx, dword [esp + 0x1a8]
mov edx, dword [esp + 0x1ac]
sub esp, 0x10
mov word [esp + 0x148], ax
mov ebx, esp
lea eax, [esp + 0x144]
mov dword [esp + 0x14c], ecx
mov dword [esp + 0x5c], esp
push eax
mov ecx, ebx
mov dword [esp + 0x154], edx
call dword [sym.imp.mfc90.dll_Ordinal_300]
mov cx, word [esp + 0x148]
mov word [ebx + 4], cx
mov edx, dword [esp + 0x14c]
mov ecx, dword [esp + 0x28]
mov dword [ebx + 8], edx
mov eax, dword [esp + 0x150]
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_]
mov ecx, dword [esp + 0x1c]
push ecx
mov ecx, dword [esp + 0x78]
call dword [sym.imp.BMB_NX_C9.dll_public:_void___thiscall_BMBMapPad::AddElement_class_BMBPad__]
lea ecx, [esp + 0x134]
call dword [sym.imp.mfc90.dll_Ordinal_601]
lea ecx, [esp + 0xb8]
mov byte [esp + 0x2f0], 0xb
call fcn.005e8710
mov eax, dword [esp + 0x2c]
mov ebx, dword [esp + 0x30]
inc ebx
cmp ebx, dword [esp + 0x68]
mov dword [esp + 0x30], ebx
jl 0x4239a5
jmp 0x423dc9
cmp dword [esp + 0x68], 0
mov dword [esp + 0x1c], 0
jle 0x423dc9
fldz
fst dword [esp + 0x208]
fstp dword [esp + 0x20c]
lea esp, [esp]
lea ecx, [esp + 0x104]
call dword [sym.imp.mfc90.dll_Ordinal_316]
mov ecx, dword [esp + 0x40]
mov byte [esp + 0x2f0], 0x17
call fcn.004bbd50
push eax
lea ecx, [esp + 0x108]
call dword [sym.imp.mfc90.dll_Ordinal_820]
mov edx, dword [esp + 0x70]
mov eax, dword [esp + 0x1c]
mov cx, word [edx + eax*4]
mov edx, dword [esp + 0x208]
mov eax, dword [esp + 0x20c]
sub esp, 0x10
mov word [esp + 0x118], cx
mov ebx, esp
lea ecx, [esp + 0x114]
mov dword [esp + 0x5c], esp
push ecx
mov ecx, ebx
mov dword [esp + 0x120], edx
mov dword [esp + 0x124], eax
call dword [sym.imp.mfc90.dll_Ordinal_300]
mov dx, word [esp + 0x118]
mov word [ebx + 4], dx
mov eax, dword [esp + 0x11c]
mov dword [ebx + 8], eax
mov ecx, dword [esp + 0x120]
mov dword [ebx + 0xc], ecx
mov ecx, dword [esp + 0x28]
push 0
call dword [sym.imp.BMB_NX_C9.dll_public:_void___thiscall_BMB2DStack::AddPad_class_BMBPad___struct_BMB_LinkPad_t_]
lea ecx, [esp + 0x104]
mov byte [esp + 0x2f0], 0xb
call dword [sym.imp.mfc90.dll_Ordinal_601]
mov eax, dword [esp + 0x1c]
inc eax
cmp eax, dword [esp + 0x68]
mov dword [esp + 0x1c], eax
jl 0x423d00
mov ecx, dword [esp + 0x14]
mov eax, dword [edi + 0x48]
inc ecx
cmp ecx, dword [eax + 0x3c]
mov dword [esp + 0x14], ecx
jl 0x423865
jmp 0x423fce
cmp dword [edi + 0x2ac], eax
je 0x423fce
mov eax, dword [edi + 0x48]
cmp dword [eax + 0x3c], 0
mov dword [esp + 0x1c], 0
jle 0x423fce
movzx edx, word [esp + 0x1c]
mov eax, dword [eax + 0x40]
mov ebx, dword [eax + edx*4]
lea eax, [eax + edx*4]
test ebx, ebx
je 0x423e40
mov eax, dword [ebx + 8]
test eax, eax
jne 0x423e3c
mov eax, dword [ebx + 4]
and eax, 0x7f
mov dword [esp + 0x10], eax
call fcn.004fe0e0
mov ecx, dword [esp + 0x10]
mov eax, dword [eax + ecx*4 - 4]
push ebx
mov ecx, eax
call fcn.004fd530
mov ebx, eax
jmp 0x423e42
xor ebx, ebx
push 0
lea edx, [esp + 0x6c]
push edx
push ebx
lea ecx, [edi + 0x100]
call fcn.00406820
test eax, eax
je 0x423fb9
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.004b5e10
test eax, eax
je 0x423fb9
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 0x423fb9
mov eax, dword [esi]
mov edx, dword [ebx]
add eax, 0xdc
mov dword [esp + 0x10], eax
mov eax, dword [edx + 0x3c]
mov ecx, ebx
call eax
mov edx, dword [esp + 0x10]
movzx ecx, ax
mov eax, dword [edx]
push ecx
mov ecx, esi
call eax
test eax, eax
je 0x423fb9
cmp dword [esp + 0x68], 0
mov dword [esp + 0x20], 0
jle 0x423fb9
fldz
fst dword [esp + 0x1b4]
fstp dword [esp + 0x1b8]
jmp 0x423ef0
lea ecx, [esp + 0x124]
call dword [sym.imp.mfc90.dll_Ordinal_316]
mov ecx, dword [esp + 0x38]
mov byte [esp + 0x2f0], 0x18
call fcn.004bbd50
push eax
lea ecx, [esp + 0x128]
call dword [sym.imp.mfc90.dll_Ordinal_820]
mov ecx, dword [esp + 0x70]
mov edx, dword [esp + 0x20]
mov ax, word [ecx + edx*4]
mov ecx, dword [esp + 0x1b4]
mov edx, dword [esp + 0x1b8]
sub esp, 0x10
mov word [esp + 0x138], ax
mov ebx, esp
lea eax, [esp + 0x134]
mov dword [esp + 0x13c], ecx
mov dword [esp + 0x5c], esp
push eax
mov ecx, ebx
mov dword [esp + 0x144], edx
call dword [sym.imp.mfc90.dll_Ordinal_300]
mov cx, word [esp + 0x138]
mov word [ebx + 4], cx
mov edx, dword [esp + 0x13c]
mov ecx, dword [esp + 0x28]
mov dword [ebx + 8], edx
mov eax, dword [esp + 0x140]
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 + 0x124]
mov byte [esp + 0x2f0], 0xb
call dword [sym.imp.mfc90.dll_Ordinal_601]
mov eax, dword [esp + 0x20]
inc eax
cmp eax, dword [esp + 0x68]
mov dword [esp + 0x20], eax
jl 0x423ef0
mov ecx, dword [esp + 0x1c]
mov eax, dword [edi + 0x48]
inc ecx
cmp ecx, dword [eax + 0x3c]
mov dword [esp + 0x1c], ecx
jl 0x423e04
lea ecx, [esp + 0x68]
mov byte [esp + 0x2f0], 7
call fcn.005ee4c0
lea ecx, [esp + 0x1ec]
mov byte [esp + 0x2f0], 6
call fcn.005ee4c0
lea ecx, [esp + 0x174]
mov byte [esp + 0x2f0], 4
call fcn.005ee4c0
mov ebx, dword [ebp + 8]
jmp case.0x422e10.5
cmp dword [edi + 0x2ac], 1
je case.0x422e10.5
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
mov ecx, esi
call fcn.004a3cd0
mov ecx, eax
call fcn.00471270
mov dword [esp + 0x10], eax
test eax, eax
je 0x424cfe
lea ecx, [esp + 0x1fc]
mov dword [esp + 0x1c], 0
call fcn.00405fd0
mov edx, dword [esp + 0x10]
push 0
lea ecx, [esp + 0x200]
push ecx
push edx
lea ecx, [edi + 0x100]
mov byte [esp + 0x2fc], 0x19
call fcn.00406820
test eax, eax
je 0x424094
mov eax, dword [esp + 0x204]
mov ecx, dword [eax]
mov dword [esp + 0x1c], ecx
mov edx, dword [esi]
mov edx, dword [edx + 0xdc]
lea eax, [esp + 0x64]
push eax
mov ecx, esi
mov dword [esp + 0x68], 0
call edx
mov eax, dword [esp + 0x64]
test eax, eax
jne 0x4240ce
lea ecx, [esp + 0x1fc]
mov byte [esp + 0x2f0], 4
call fcn.005ee4c0
jmp 0x424cfe
cmp word [eax + 4], 1
jae 0x4240ee
lea ecx, [esp + 0x1fc]
mov byte [esp + 0x2f0], 4
call fcn.005ee4c0
jmp 0x424cfe
mov ecx, esi
call fcn.0046d010
mov ecx, eax
call fcn.004bbd50
push eax
lea ecx, [esp + 0xb0]
call fcn.005e9060
push 0x62dc28
lea ecx, [esp + 0xb0]
mov byte [esp + 0x2f4], 0x1a
call fcn.005e8f10
mov eax, dword [ebx + 0x2c]
push eax
lea ecx, [esp + 0xb0]
call fcn.005e8f10
push 0x62dc28
lea ecx, [esp + 0xb0]
call fcn.005e8f10
mov ecx, dword [esp + 0x34]
call fcn.0046f9e0
push eax
lea ecx, [esp + 0xb0]
call fcn.005e8f10
push 0x62dc28
lea ecx, [esp + 0xb0]
call fcn.005e8f10
mov eax, dword [esp + 0x1c]
push eax
lea ecx, [esp + 0xb0]
call fcn.005e9050
push 0x7c
call sub.MSVCR90.dll_void____cdecl_operator_new_unsigned_int_
add esp, 4
mov dword [esp + 0x28], eax
mov byte [esp + 0x2f0], 0x1b
test eax, eax
je 0x424201
mov eax, dword [0x67df8c]
sub esp, 0xc
mov dword [esp + 0x1c], eax
lea edx, [esp + 0xb8]
inc eax
mov ecx, esp
mov dword [esp + 0x58], esp
push edx
mov dword [0x67df8c], eax
call fcn.005e8e10
lea eax, [esp + 0x1e4]
push eax
mov ecx, edi
call fcn.004277f0
mov eax, dword [eax]
mov ecx, dword [esp + 0x10]
or dword [esp + 0x24], 8
push eax
push 0
push ecx
mov ecx, dword [esp + 0x34]
mov byte [esp + 0x2fc], 0x1c
call dword [sym.imp.BMB_NX_C9.dll_public:_void___thiscall_BMBPad::constructor_int__unsigned_char__char_const__]
mov eax, dword [esp + 0x28]
mov dword [eax], vtable.BMBPad.1.0
mov dword [eax + 0x6c], vtable.BMBPad.0
mov dword [esp + 0x30], eax
jmp 0x424209
mov dword [esp + 0x30], 0
test byte [esp + 0x24], 8
mov dword [esp + 0x2f0], 0x1a
je 0x42422d
and dword [esp + 0x24], 0xfffffff7
lea ecx, [esp + 0x1d8]
call dword [sym.imp.mfc90.dll_Ordinal_601]
mov edx, dword [esp + 0x64]
mov eax, dword [edx + 4]
xor ecx, ecx
mov dword [esp + 0x20], 0
cmp cx, ax
jae 0x4242db
mov edx, dword [esi]
mov eax, dword [edx + 0x7c]
mov ecx, esi
call eax
fstp dword [esp + 0x1e4]
mov edx, dword [esp + 0x64]
movzx ecx, word [esp + 0x20]
xor eax, eax
mov dword [esp + 0x210], eax
mov dword [esp + 0x21c], eax
mov eax, dword [edx + 8]
mov ecx, dword [eax + ecx*4]
mov eax, dword [esi]
mov dword [esp + 0x10], ecx
lea edx, [esp + 0x1e4]
push edx
mov edx, dword [eax + 0x5c]
lea ecx, [esp + 0x2e0]
push ecx
mov ecx, esi
call edx
mov edx, dword [esp + 0x14]
push eax
lea eax, [esp + 0x218]
push eax
lea ecx, [esp + 0x228]
push ecx
mov ecx, dword [esp + 0x40]
push edx
lea eax, [esp + 0xc0]
push eax
push ecx
mov ecx, edi
call fcn.0041b0c0
mov ecx, dword [esp + 0x20]
mov edx, dword [esp + 0x64]
mov eax, dword [edx + 4]
inc ecx
mov dword [esp + 0x20], ecx
movsx ecx, cx
movzx edx, ax
cmp ecx, edx
jl 0x424247
lea ecx, [esp + 0x144]
call dword [sym.imp.mfc90.dll_Ordinal_316]
mov eax, dword [esp + 0xac]
push eax
lea ecx, [esp + 0x148]
mov byte [esp + 0x2f4], 0x1e
call dword [sym.imp.mfc90.dll_Ordinal_820]
fldz
movzx ecx, word [esp + 0x1c]
fst dword [esp + 0x244]
mov edx, dword [esp + 0x244]
fstp dword [esp + 0x248]
mov eax, dword [esp + 0x248]
sub esp, 0x10
mov dword [esp + 0x15c], edx
mov word [esp + 0x158], cx
mov ecx, esp
lea edx, [esp + 0x154]
mov dword [esp + 0x5c], esp
push edx
mov dword [esp + 0x164], eax
mov dword [esp + 0x24], ecx
call dword [sym.imp.mfc90.dll_Ordinal_300]
movzx ecx, word [esp + 0x158]
mov eax, dword [esp + 0x20]
mov word [eax + 4], cx
mov edx, dword [esp + 0x15c]
mov dword [eax + 8], edx
mov ecx, dword [esp + 0x160]
mov dword [eax + 0xc], ecx
mov ecx, dword [esp + 0x28]
push 0
call dword [sym.imp.BMB_NX_C9.dll_public:_void___thiscall_BMB2DStack::AddPad_class_BMBPad___struct_BMB_LinkPad_t_]
mov edx, dword [esp + 0x30]
mov ecx, dword [esp + 0x74]
push edx
call dword [sym.imp.BMB_NX_C9.dll_public:_void___thiscall_BMBMapPad::AddElement_class_BMBPad__]
lea ecx, [esp + 0x144]
call dword [sym.imp.mfc90.dll_Ordinal_601]
lea ecx, [esp + 0xac]
mov byte [esp + 0x2f0], 0x19
call fcn.005e8710
lea ecx, [esp + 0x1fc]
jmp 0x424cac
cmp dword [edi + 0x2ac], 1
je case.0x422e10.5
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
mov ecx, esi
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 dword [esp + 0x38], eax
test eax, eax
je 0x424cfe
mov ecx, esi
call fcn.004a3cd0
mov ecx, eax
call fcn.00471270
mov dword [esp + 0x10], eax
test eax, eax
je 0x424cfe
lea ecx, [esp + 0x290]
mov dword [esp + 0x28], 0
call fcn.00405fd0
mov edx, dword [esp + 0x10]
push 0
lea ecx, [esp + 0x294]
push ecx
push edx
lea ecx, [edi + 0x100]
mov byte [esp + 0x2fc], 0x1f
call fcn.00406820
test eax, eax
je 0x424474
mov eax, dword [esp + 0x298]
mov ecx, dword [eax]
mov dword [esp + 0x28], ecx
lea ecx, [esp + 0x164]
call dword [sym.imp.mfc90.dll_Ordinal_316]
mov ecx, dword [esp + 0x38]
mov byte [esp + 0x2f0], 0x20
call fcn.004bbd50
push eax
lea ecx, [esp + 0x168]
call dword [sym.imp.mfc90.dll_Ordinal_820]
fldz
mov dx, word [esp + 0x28]
fst dword [esp + 0x180]
mov eax, dword [esp + 0x180]
fstp dword [esp + 0x184]
mov ecx, dword [esp + 0x184]
sub esp, 0x10
mov word [esp + 0x178], dx
mov dword [esp + 0x180], ecx
mov ecx, esp
lea edx, [esp + 0x174]
mov dword [esp + 0x5c], esp
push edx
mov dword [esp + 0x180], eax
mov dword [esp + 0x24], ecx
call dword [sym.imp.mfc90.dll_Ordinal_300]
mov cx, word [esp + 0x178]
mov eax, dword [esp + 0x20]
mov word [eax + 4], cx
mov edx, dword [esp + 0x17c]
mov dword [eax + 8], edx
mov ecx, dword [esp + 0x180]
mov dword [eax + 0xc], ecx
mov ecx, dword [esp + 0x28]
push 0
call dword [sym.imp.BMB_NX_C9.dll_public:_void___thiscall_BMB2DStack::AddPad_class_BMBPad___struct_BMB_LinkPad_t_]
lea ecx, [esp + 0x164]
call dword [sym.imp.mfc90.dll_Ordinal_601]
lea ecx, [esp + 0x290]
jmp 0x424cac
cmp dword [edi + 0x2ac], 1
je case.0x422e10.5
lea edx, [esp + 0x228]
push edx
mov ecx, edi
mov dword [esp + 0x22c], 0
call fcn.00427770
push ecx
mov ecx, dword [esp + 0x1c]
fstp dword [esp]
call dword [sym.imp.BMB_NX_C9.dll_public:_void___thiscall_BMB2DStack::PutOffsetX_float_]
lea eax, [esp + 0x234]
push eax
mov ecx, edi
mov dword [esp + 0x238], 0
call fcn.00427770
push ecx
mov ecx, dword [esp + 0x1c]
fstp dword [esp]
call dword [sym.imp.BMB_NX_C9.dll_public:_void___thiscall_BMB2DStack::PutOffsetY_float_]
mov eax, dword [edi + 0x24]
push eax
lea ecx, [esp + 0xd0]
call fcn.0042ea80
mov ecx, esi
mov byte [esp + 0x2f0], 0x21
call fcn.004a3cd0
mov ecx, eax
call fcn.00471270
mov dword [esp + 0x10], eax
test eax, eax
jne 0x4245e1
lea ecx, [esp + 0xcc]
mov byte [esp + 0x2f0], 4
call fcn.004ed1b0
jmp 0x424cfe
lea ecx, [esp + 0xe8]
call fcn.00405fd0
mov edx, dword [esp + 0x10]
push 0
lea ecx, [esp + 0xec]
push ecx
push edx
lea ecx, [edi + 0x100]
mov byte [esp + 0x2fc], 0x22
call fcn.00406820
test eax, eax
je 0x42490b
lea ecx, [esp + 0x88]
call fcn.005e8490
push str.NOUNREF_
lea ecx, [esp + 0x8c]
mov byte [esp + 0x2f4], 0x23
call fcn.005e8ed0
mov eax, dword [ebx + 0x2c]
push eax
lea ecx, [esp + 0x8c]
call fcn.005e8f10
push 0x62dc28
lea ecx, [esp + 0x8c]
call fcn.005e8f10
test byte [ebx + 0x3c], 2
lea ecx, [esp + 0x88]
jne 0x424671
push 0x62ebb8
jmp 0x424676
push 0x62ebb4
call fcn.005e8f10
mov ecx, dword [esp + 0x34]
call fcn.0046f9e0
push eax
lea ecx, [esp + 0x8c]
call fcn.005e8f10
push 0x62dc28
lea ecx, [esp + 0x8c]
call fcn.005e8f10
mov eax, dword [esp + 0x58]
push eax
lea ecx, [esp + 0x8c]
call fcn.005e9050
inc dword [esp + 0x58]
push esi
lea ecx, [esp + 0xd0]
call fcn.0042ed90
mov edx, dword [eax]
mov dword [esp + 0x10], eax
mov ecx, eax
mov eax, dword [edx + 0x30]
call eax
mov dword [esp + 0x14], eax
test eax, eax
jne 0x42471a
lea ecx, [esp + 0x88]
mov byte [esp + 0x2f0], 0x22
call fcn.005e8710
lea ecx, [esp + 0xe8]
mov byte [esp + 0x2f0], 0x21
call fcn.005ee4c0
lea ecx, [esp + 0xcc]
mov byte [esp + 0x2f0], 4
call fcn.004ed1b0
jmp 0x424cfe
mov eax, dword [esp + 0x34]
mov ecx, dword [eax + 0x34]
mov edx, dword [eax + 0x38]
mov eax, dword [ebx]
mov dword [esp + 0x1c0], ecx
mov dword [esp + 0x1c4], edx
mov edx, dword [eax + 0x44]
mov ecx, ebx
call edx
mov edx, dword [eax + 4]
mov ecx, dword [esp + 0x1c0]
sub ecx, dword [eax]
mov eax, dword [esp + 0x1c4]
sub eax, edx
mov dword [esp + 0x218], eax
mov eax, dword [ebx]
mov edx, dword [eax + 0x44]
mov dword [esp + 0x214], ecx
mov ecx, ebx
call edx
mov ecx, dword [eax + 4]
mov eax, dword [eax]
neg ecx
sub ecx, dword [esp + 0x218]
neg eax
sub eax, dword [esp + 0x214]
mov dword [esp + 0x28c], ecx
mov ecx, dword [esp + 0x14]
mov dword [esp + 0x288], eax
mov eax, dword [ecx]
mov eax, dword [eax + 0xc]
lea edx, [esp + 0x288]
push edx
call eax
test byte [ebx + 0x3c], 2
mov ecx, ebx
je 0x4247ae
call fcn.004de490
jmp 0x4247b3
call fcn.0046cfe0
mov ecx, dword [esp + 0x14]
push eax
push ecx
mov ecx, edi
call fcn.0040aec0
sub esp, 0xc
lea edx, [esp + 0x94]
mov ecx, esp
mov dword [esp + 0x58], esp
push edx
call fcn.005e8e10
mov eax, dword [esp + 0x20]
push eax
mov ecx, edi
call fcn.0041e420
test eax, eax
je 0x4246d9
mov ecx, dword [esp + 0x14]
mov edx, dword [ecx]
mov eax, dword [edx]
push 1
call eax
mov ecx, dword [esp + 0x10]
mov edx, dword [ecx]
mov eax, dword [edx]
push 1
call eax
cmp dword [esp + 0xe8], 0
mov dword [esp + 0x20], 0
jle 0x4248f4
fldz
fst dword [esp + 0x1d0]
fstp dword [esp + 0x1d4]
jmp 0x424830
mov ecx, dword [esp + 0xf0]
mov edx, dword [esp + 0x20]
mov ebx, dword [ecx + edx*4]
lea ecx, [esp + 0x114]
call dword [sym.imp.mfc90.dll_Ordinal_316]
mov eax, dword [esp + 0x88]
push eax
lea ecx, [esp + 0x118]
mov byte [esp + 0x2f4], 0x24
call dword [sym.imp.mfc90.dll_Ordinal_820]
mov ecx, dword [esp + 0x1d0]
mov edx, dword [esp + 0x1d4]
sub esp, 0x10
mov word [esp + 0x128], bx
mov ebx, esp
lea eax, [esp + 0x124]
mov dword [esp + 0x12c], ecx
mov dword [esp + 0x5c], esp
push eax
mov ecx, ebx
mov dword [esp + 0x134], edx
call dword [sym.imp.mfc90.dll_Ordinal_300]
mov cx, word [esp + 0x128]
mov word [ebx + 4], cx
mov edx, dword [esp + 0x12c]
mov ecx, dword [esp + 0x28]
mov dword [ebx + 8], edx
mov eax, dword [esp + 0x130]
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 + 0x114]
call dword [sym.imp.mfc90.dll_Ordinal_601]
mov eax, dword [esp + 0x20]
inc eax
cmp eax, dword [esp + 0xe8]
mov dword [esp + 0x20], eax
jl 0x424830
lea ecx, [esp + 0x88]
mov byte [esp + 0x2f0], 0x22
call fcn.005e8710
mov ebx, dword [ebp + 8]
lea ecx, [esp + 0xe8]
mov byte [esp + 0x2f0], 0x21
call fcn.005ee4c0
lea ecx, [esp + 0xcc]
mov byte [esp + 0x2f0], 4
call fcn.004ed1b0
jmp case.0x422e10.5
cmp dword [edi + 0x2ac], 1
je case.0x422e10.5
lea ecx, [esp + 0x240]
push ecx
mov ecx, edi
mov dword [esp + 0x244], 0
call fcn.00427770
push ecx
mov ecx, dword [esp + 0x1c]
fstp dword [esp]
call dword [sym.imp.BMB_NX_C9.dll_public:_void___thiscall_BMB2DStack::PutOffsetX_float_]
lea edx, [esp + 0xd8]
push edx
mov ecx, edi
mov dword [esp + 0xdc], 0
call fcn.00427770
push ecx
mov ecx, dword [esp + 0x1c]
fstp dword [esp]
call dword [sym.imp.BMB_NX_C9.dll_public:_void___thiscall_BMB2DStack::PutOffsetY_float_]
mov ecx, esi
call fcn.004a3cd0
mov ecx, eax
call fcn.00471270
mov dword [esp + 0x10], eax
test eax, eax
je 0x424cfe
lea ecx, [esp + 0xdc]
call fcn.00405fd0
mov ecx, dword [esp + 0x10]
push 0
lea eax, [esp + 0xe0]
push eax
push ecx
lea ecx, [edi + 0x100]
mov byte [esp + 0x2fc], 0x25
call fcn.00406820
test eax, eax
je 0x424ca5
lea ecx, [esp + 0x7c]
call fcn.005e8490
push str.SURF_
lea ecx, [esp + 0x80]
mov byte [esp + 0x2f4], 0x26
call fcn.005e8ed0
mov eax, dword [ebx + 0x2c]
push eax
lea ecx, [esp + 0x80]
call fcn.005e8f10
push 0x62dc28
lea ecx, [esp + 0x80]
call fcn.005e8f10
test byte [ebx + 0x3c], 2
lea ecx, [esp + 0x7c]
jne 0x424a39
push 0x62ebb8
jmp 0x424a3e
push 0x62ebb4
call fcn.005e8f10
mov ecx, dword [esp + 0x34]
call fcn.0046f9e0
push eax
lea ecx, [esp + 0x80]
call fcn.005e8f10
push 0x62dc28
lea ecx, [esp + 0x80]
call fcn.005e8f10
mov edx, dword [esp + 0x58]
push edx
lea ecx, [esp + 0x80]
call fcn.005e9050
mov eax, dword [esi]
mov edx, dword [eax + 0x68]
inc dword [esp + 0x58]
mov ecx, esi
call edx
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0x30]
call eax
mov dword [esp + 0x14], eax
test eax, eax
jne 0x424ac3
lea ecx, [esp + 0x7c]
mov byte [esp + 0x2f0], 0x25
call fcn.005e8710
lea ecx, [esp + 0xdc]
mov byte [esp + 0x2f0], 4
call fcn.005ee4c0
jmp 0x424cfe
mov eax, dword [esp + 0x34]
mov ecx, dword [eax + 0x34]
mov edx, dword [eax + 0x38]
mov eax, dword [ebx]
mov dword [esp + 0x238], ecx
mov dword [esp + 0x23c], edx
mov edx, dword [eax + 0x44]
mov ecx, ebx
call edx
mov edx, dword [eax + 4]
mov ecx, dword [esp + 0x238]
sub ecx, dword [eax]
mov eax, dword [esp + 0x23c]
sub eax, edx
mov dword [esp + 0x1e0], eax
mov eax, dword [ebx]
mov edx, dword [eax + 0x44]
mov dword [esp + 0x1dc], ecx
mov ecx, ebx
call edx
mov ecx, dword [eax + 4]
mov eax, dword [eax]
neg ecx
sub ecx, dword [esp + 0x1e0]
neg eax
sub eax, dword [esp + 0x1dc]
mov dword [esp + 0x274], ecx
mov ecx, dword [esp + 0x14]
mov dword [esp + 0x270], eax
mov eax, dword [ecx]
mov eax, dword [eax + 0xc]
lea edx, [esp + 0x270]
push edx
call eax
test byte [ebx + 0x3c], 2
mov ecx, ebx
je 0x424b57
call fcn.004de490
jmp 0x424b5c
call fcn.0046cfe0
mov ecx, dword [esp + 0x14]
push eax
push ecx
mov ecx, edi
call fcn.0040aec0
sub esp, 0xc
lea edx, [esp + 0x88]
mov ecx, esp
mov dword [esp + 0x58], esp
push edx
call fcn.005e8e10
mov eax, dword [esp + 0x20]
push eax
mov ecx, edi
call fcn.0041e420
test eax, eax
je 0x424a99
mov ecx, dword [esp + 0x14]
mov edx, dword [ecx]
mov eax, dword [edx]
push 1
call eax
cmp dword [esp + 0xdc], 0
mov dword [esp + 0x20], 0
jle 0x424c91
fldz
fst dword [esp + 0x220]
fstp dword [esp + 0x224]
jmp 0x424bd0
mov ecx, dword [esp + 0xe4]
mov edx, dword [esp + 0x20]
mov ebx, dword [ecx + edx*4]
lea ecx, [esp + 0xf4]
call dword [sym.imp.mfc90.dll_Ordinal_316]
mov eax, dword [esp + 0x7c]
push eax
lea ecx, [esp + 0xf8]
mov byte [esp + 0x2f4], 0x27
call dword [sym.imp.mfc90.dll_Ordinal_820]
mov ecx, dword [esp + 0x220]
mov edx, dword [esp + 0x224]
sub esp, 0x10
mov word [esp + 0x108], bx
mov ebx, esp
lea eax, [esp + 0x104]
mov dword [esp + 0x10c], ecx
mov dword [esp + 0x5c], esp
push eax
mov ecx, ebx
mov dword [esp + 0x114], edx
call dword [sym.imp.mfc90.dll_Ordinal_300]
mov cx, word [esp + 0x108]
mov word [ebx + 4], cx
mov edx, dword [esp + 0x10c]
mov ecx, dword [esp + 0x28]
mov dword [ebx + 8], edx
mov eax, dword [esp + 0x110]
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 + 0xf4]
call dword [sym.imp.mfc90.dll_Ordinal_601]
mov eax, dword [esp + 0x20]
inc eax
cmp eax, dword [esp + 0xdc]
mov dword [esp + 0x20], eax
jl 0x424bd0
lea ecx, [esp + 0x7c]
mov byte [esp + 0x2f0], 0x25
call fcn.005e8710
mov ebx, dword [ebp + 8]
lea ecx, [esp + 0xdc]
mov byte [esp + 0x2f0], 4
call fcn.005ee4c0
mov edx, dword [esi]
mov eax, dword [edx + 0x38]
mov ecx, esi
call eax
cmp eax, 0xb
je 0x424cec
mov edx, dword [esi]
mov eax, dword [edx + 0x38]
mov ecx, esi
call eax
cmp eax, 0xc
je 0x424cec
mov edx, dword [esi]
mov eax, dword [edx + 0x38]
mov ecx, esi
call eax
cmp eax, 0xe
je 0x424cec
mov edx, dword [esi]
mov eax, dword [edx + 0x38]
mov ecx, esi
call eax
mov ecx, dword [esp + 0x18]
push ecx
mov ecx, dword [esp + 0xa0]
call dword [sym.imp.BMB_NX_C9.dll_public:_void___thiscall_BMBPin::AddStack_class_BMB2DStack__]
lea ecx, [esp + 0xc4]
call fcn.004b76d0
lea ecx, [esp + 0xc4]
call fcn.004f32d0
test eax, eax
jne 0x422c70
mov edx, dword [esp + 0x9c]
mov ecx, dword [ebp + 0xc]
push edx
call dword [sym.imp.BMB_NX_C9.dll_public:_void___thiscall_BMBFootprint::AddPin_class_BMBPin__]
lea ecx, [esp + 0xc4]
mov dword [esp + 0x2f0], 0xffffffff
call fcn.004ed1b0
mov eax, dword [esp + 0x78]
inc eax
mov dword [esp + 0x78], eax
cmp eax, dword [ebx + 0x60]
jb 0x422aa0
mov ecx, dword [esp + 0x2e8]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0xc