Function at 0x402f61
Capabilities:
Check for software breakpoints

Disassembly:
push ebp
mov ebp, esp
push ecx
push ebx
push esi
push edi
mov esi, dword [ebp + 8]
mov edi, str.SoftwareOleForRetailServiceInfoMicroPOSFiscalPrinterTest_
cmp dword [ebp + 0xc], 0
jne case.default.0x402f46
push 0x10
lea eax, [edi + 0x2ff]
push eax
push esi
call fcn.004038a8
add esp, 0xc
push 1
lea edx, [ebp - 1]
push edx
push esi
call fcn.00403334
add esp, 0xc
test al, al
jne 0x402f3b
xor ecx, ecx
mov dword [esi + 0xec], ecx
lea eax, [edi + 0x31a]
push eax
push 0xa
push esi
call fcn.00402e94
add esp, 0xc
lea edx, [edi + 0x336]
push 0
push edx
push esi
call fcn.004038a8
add esp, 0xc
jmp 0x4031a9
mov ecx, dword [esi + 0xec]
cmp ecx, 4
ja case.default.0x402f46
jmp dword [ecx*4 + 0x402f4d]
cmp byte [ebp - 1], 0x10
jne 0x402f73
mov dword [esi + 0xec], 1
jmp case.default.0x402f46
lea eax, [edi + 0x358]
push eax
push 0x11
push esi
call fcn.00402e94
add esp, 0xc
lea edx, [edi + 0x371]
push 0
push edx
push esi
call fcn.004038a8
add esp, 0xc
jmp case.default.0x402f46
cmp byte [ebp - 1], 2
jne 0x402fbb
mov dword [esi + 0xec], 2
xor ecx, ecx
xor ebx, ebx
mov dword [esi + 0x434], ecx
jmp case.default.0x402f46
cmp byte [ebp - 1], 0x10
jne 0x402fea
lea eax, [edi + 0x38b]
push eax
push 0x11
push esi
call fcn.00402e94
add esp, 0xc
lea edx, [edi + 0x3a4]
push 0
push edx
push esi
call fcn.004038a8
add esp, 0xc
jmp case.default.0x402f46
lea ecx, [edi + 0x3cc]
push ecx
push 0x11
push esi
call fcn.00402e94
add esp, 0xc
lea eax, [edi + 0x3e5]
push 0
push eax
push esi
call fcn.004038a8
add esp, 0xc
xor edx, edx
mov dword [esi + 0xec], edx
jmp case.default.0x402f46
cmp byte [ebp - 1], 0x10
jne 0x403030
mov dword [esi + 0xec], 3
jmp case.default.0x402f46
mov ecx, dword [esi + 0x434]
inc dword [esi + 0x434]
mov al, byte [ebp - 1]
mov byte [esi + ecx + 0x364], al
cmp dword [esi + 0x434], 0xcd
jle 0x403058
dec dword [esi + 0x434]
xor bl, byte [ebp - 1]
jmp case.default.0x402f46
xor bl, byte [ebp - 1]
cmp byte [ebp - 1], 3
jne 0x403078
mov dword [esi + 0xec], 4
jmp case.default.0x402f46
cmp byte [ebp - 1], 2
jne 0x403097
mov dword [esi + 0xec], 2
xor edx, edx
xor ebx, ebx
mov dword [esi + 0x434], edx
jmp case.default.0x402f46
cmp byte [ebp - 1], 0x10
jne 0x4030d4
mov eax, dword [esi + 0x434]
inc dword [esi + 0x434]
mov dl, byte [ebp - 1]
mov byte [esi + eax + 0x364], dl
cmp dword [esi + 0x434], 0xcd
jle 0x4030c5
dec dword [esi + 0x434]
mov dword [esi + 0xec], 2
jmp case.default.0x402f46
lea ecx, [edi + 0x3ff]
push ecx
push 0x11
push esi
call fcn.00402e94
add esp, 0xc
lea eax, [edi + 0x418]
push 0
push eax
push esi
call fcn.004038a8
add esp, 0xc
xor edx, edx
mov dword [esi + 0xec], edx
jmp case.default.0x402f46
cmp bl, byte [ebp - 1]
jne 0x40314a
movsx ecx, byte [esi + 0x364]
cmp ecx, dword [esi + 0x28c]
je 0x40313d
push esi
call fcn.004031b0
pop ecx
test al, al
jne 0x40312a
mov byte [ebp - 1], 0x18
jmp 0x40314e
movsx eax, byte [esi + 0x364]
mov dword [esi + 0x28c], eax
mov byte [ebp - 1], 6
jmp 0x40314e
push esi
call fcn.00402e74
pop ecx
mov byte [ebp - 1], 6
jmp 0x40314e
mov byte [ebp - 1], 0x15
xor edx, edx
lea ecx, [ebp - 1]
mov dword [esi + 0xec], edx
push 1
push ecx
mov eax, dword [esi + 0x54]
push eax
push esi
call fcn.00403a80
add esp, 0x10
test al, al
jne 0x403193
lea edx, [edi + 0x43b]
push edx
push 8
push esi
call fcn.00402e94
add esp, 0xc
lea ecx, [edi + 0x45b]
push 8
push ecx
push esi
call fcn.004038a8
add esp, 0xc
jmp 0x4031a9
cmp byte [ebp - 1], 0x15
jne 0x4031a9
dec dword [ebp + 0xc]
mov eax, dword [ebp + 0xc]
push eax
push esi
call fcn.00402ed0
add esp, 8
pop edi
pop esi
pop ebx
pop ecx
pop ebp
ret