Function at 0x4d17b0
Capabilities:
Contain obfuscated stackstrings

Disassembly:
sub esp, 0x2f8
push ebx
push ebp
push esi
push edi
mov ecx, dword [0x5be988]
mov dx, word [0x5be98c]
mov dword [esp + 0x14], ecx
xor ecx, ecx
mov dword [esp + 0x1b], ecx
mov eax, dword [str.programmer]
mov word [esp + 0x1f], cx
mov word [esp + 0x18], dx
mov edx, dword [0x5bcad4]
mov byte [esp + 0x21], cl
mov dword [esp + 0x2b], ecx
mov dword [esp + 0x23], edx
mov edx, dword [str.id_type]
mov dword [esp + 0x2f], ecx
mov word [esp + 0x33], cx
mov dword [esp + 0x3e], ecx
mov dword [esp + 0x42], ecx
mov dword [esp + 0x10], eax
mov al, byte [0x5be98e]
mov word [esp + 0x46], cx
mov dword [esp + 0x36], edx
mov edx, dword [str.id_mode]
mov dword [esp + 0x51], ecx
mov byte [esp + 0x1a], al
mov eax, dword [0x5bcad8]
mov dword [esp + 0x55], ecx
mov dword [esp + 0x49], edx
mov edx, dword [str.id_port]
mov dword [esp + 0x27], eax
mov eax, dword [0x5be980]
mov word [esp + 0x59], cx
mov dword [esp + 0x64], ecx
mov dword [esp + 0x5c], edx
mov edx, dword [str.id_baudrate]
mov dword [esp + 0x3a], eax
mov eax, dword [0x5be978]
mov dword [esp + 0x68], ecx
mov dword [esp + 0x6f], edx
mov word [esp + 0x6c], cx
mov ecx, dword [0x5be968]
mov dword [esp + 0x4d], eax
mov eax, dword [0x5be970]
xor edx, edx
mov dword [esp + 0x77], ecx
mov ecx, dword [0x5be958]
mov dword [esp + 0x7b], edx
mov dword [esp + 0x60], eax
mov eax, dword [0x5be964]
mov word [esp + 0x7f], dx
mov dx, word [0x5be95c]
mov dword [esp + 0x86], ecx
mov dword [esp + 0x73], eax
mov eax, dword [str.id_pin_vcc]
xor ecx, ecx
mov word [esp + 0x8a], dx
mov edx, dword [str.id_pin_buff]
mov dword [esp + 0x8d], ecx
mov dword [esp + 0x82], eax
mov al, byte [0x5be95e]
mov word [esp + 0x91], cx
mov dword [esp + 0x95], edx
xor edx, edx
mov byte [esp + 0x8c], al
mov eax, dword [0x5be94c]
mov byte [esp + 0x93], cl
mov ecx, dword [0x5be950]
mov dword [esp + 0xa1], edx
mov byte [esp + 0x22], 2
mov byte [esp + 0x35], 3
mov byte [esp + 0x48], 4
mov byte [esp + 0x5b], 5
mov byte [esp + 0x6e], 6
mov byte [esp + 0x81], 7
mov byte [esp + 0x94], 9
mov dword [esp + 0x99], eax
mov dword [esp + 0x9d], ecx
mov word [esp + 0xa5], dx
mov edx, dword [0x5be940]
mov eax, dword [str.id_pin_reset]
mov ecx, dword [0x5be93c]
mov dword [esp + 0xb0], edx
mov edx, dword [str.id_pin_sck]
mov dword [esp + 0xa8], eax
mov al, byte [0x5be944]
mov dword [esp + 0xac], ecx
xor ecx, ecx
mov dword [esp + 0xbb], edx
mov dl, byte [0x5be936]
mov byte [esp + 0xb4], al
mov eax, dword [0x5be930]
mov dword [esp + 0xb5], ecx
mov byte [esp + 0xc5], dl
mov edx, dword [0x5be924]
mov byte [esp + 0xb9], cl
mov cx, word [0x5be934]
mov dword [esp + 0xbf], eax
xor eax, eax
mov dword [esp + 0xd2], edx
mov edx, dword [str.id_pin_miso]
mov word [esp + 0xc3], cx
mov ecx, dword [str.id_pin_mosi]
mov dword [esp + 0xc6], eax
mov dword [esp + 0xe1], edx
mov word [esp + 0xca], ax
mov dword [esp + 0xce], ecx
xor edx, edx
mov byte [esp + 0xcc], al
mov eax, dword [0x5be928]
xor ecx, ecx
mov dword [esp + 0xed], edx
mov dword [esp + 0xda], ecx
mov dword [esp + 0xd6], eax
mov eax, dword [0x5be918]
mov word [esp + 0xf1], dx
mov edx, dword [0x5be90c]
mov word [esp + 0xde], cx
mov ecx, dword [0x5be91c]
mov dword [esp + 0xe5], eax
mov eax, dword [str.id_pin_led_err]
mov dword [esp + 0xfc], edx
mov dword [esp + 0xe9], ecx
mov ecx, dword [0x5be908]
xor edx, edx
mov dword [esp + 0xf4], eax
mov ax, word [0x5be910]
mov word [esp + 0x103], dx
mov dword [esp + 0xf8], ecx
mov cl, byte [0x5be912]
mov byte [esp + 0x105], dl
mov edx, dword [0x5be8fc]
mov word [esp + 0x100], ax
mov eax, dword [str.id_pin_led_rdy]
mov byte [esp + 0x102], cl
mov ecx, dword [0x5be8f8]
mov dword [esp + 0x10f], edx
mov dword [esp + 0x107], eax
mov ax, word [0x5be900]
xor edx, edx
mov dword [esp + 0x10b], ecx
mov cl, byte [0x5be902]
mov word [esp + 0x116], dx
mov word [esp + 0x113], ax
mov eax, dword [str.id_pin_led_pgm]
mov byte [esp + 0x115], cl
mov ecx, dword [0x5be8e8]
mov byte [esp + 0x118], dl
mov edx, dword [0x5be8ec]
mov dword [esp + 0x11a], eax
mov ax, word [0x5be8f0]
mov byte [esp + 0xa7], 0xa
mov byte [esp + 0xba], 0xb
mov byte [esp + 0xcd], 0xc
mov byte [esp + 0xe0], 0xd
mov byte [esp + 0xf3], 0xe
mov byte [esp + 0x106], 0xf
mov byte [esp + 0x119], 0x10
mov dword [esp + 0x11e], ecx
mov dword [esp + 0x122], edx
mov cl, byte [0x5be8f2]
mov word [esp + 0x126], ax
mov byte [esp + 0x128], cl
mov ecx, dword [0x5be8d8]
mov eax, dword [str.id_pin_led_vfy]
mov dword [esp + 0x131], ecx
mov cl, byte [0x5be8e2]
mov dword [esp + 0x12d], eax
mov ax, word [0x5be8e0]
mov byte [esp + 0x13b], cl
mov ecx, dword [0x5be8c8]
mov word [esp + 0x139], ax
mov eax, dword [str.id_pin_hv_reset]
mov dword [esp + 0x144], ecx
mov ecx, dword [str.id_pin_hv_le]
xor edx, edx
mov dword [esp + 0x153], ecx
mov ecx, dword [0x5be8bc]
mov dword [esp + 0x15b], ecx
xor ecx, ecx
mov dword [esp + 0x160], ecx
mov dword [esp + 0x140], eax
mov eax, dword [0x5be8d0]
mov byte [esp + 0x164], cl
mov ecx, dword [0x5be8a8]
mov word [esp + 0x129], dx
mov dword [esp + 0x14c], eax
mov eax, dword [0x5be8b8]
mov byte [esp + 0x12b], dl
mov edx, dword [0x5be8dc]
mov dword [esp + 0x16a], ecx
mov cx, word [0x5be8b0]
mov dword [esp + 0x157], eax
mov al, byte [0x5be8c0]
mov dword [esp + 0x135], edx
mov word [esp + 0x172], cx
mov ecx, dword [0x5be898]
xor edx, edx
mov byte [esp + 0x15f], al
mov eax, dword [str.id_pin_hv_rdy]
mov word [esp + 0x13c], dx
mov dword [esp + 0x17d], ecx
mov ecx, dword [0x5be8a0]
mov byte [esp + 0x13e], dl
mov edx, dword [0x5be8cc]
mov dword [esp + 0x166], eax
mov eax, dword [0x5be8ac]
mov dword [esp + 0x185], ecx
mov cx, word [0x5be890]
mov dword [esp + 0x148], edx
mov dword [esp + 0x16e], eax
mov eax, dword [str.id_pin_hv_xtal1]
xor edx, edx
mov word [esp + 0x190], cx
xor ecx, ecx
mov dword [esp + 0x179], eax
mov eax, dword [0x5be89c]
mov dword [esp + 0x193], ecx
mov dword [esp + 0x181], eax
mov eax, dword [str.avr910]
mov dword [esp + 0x197], ecx
mov dword [esp + 0x18c], eax
mov al, byte [0x5be892]
mov word [esp + 0x19b], cx
mov byte [esp + 0x19d], cl
mov dword [esp + 0x1a3], ecx
mov byte [esp + 0x192], al
mov eax, dword [0x5be888]
mov dword [esp + 0x1a7], ecx
mov byte [esp + 0x12c], 0x11
mov byte [esp + 0x13f], 0x12
mov word [esp + 0x150], dx
mov byte [esp + 0x152], 0x13
mov byte [esp + 0x165], 0x14
mov dword [esp + 0x174], edx
mov byte [esp + 0x178], 0x15
mov word [esp + 0x189], dx
mov byte [esp + 0x18b], 0x16
mov byte [esp + 0x19e], 0x19
mov dword [esp + 0x19f], eax
mov dword [esp + 0x1ab], ecx
mov word [esp + 0x1af], cx
mov dword [esp + 0x1b6], ecx
mov dword [esp + 0x1ba], ecx
mov eax, dword [0x5be884]
mov dword [esp + 0x1be], ecx
mov dword [esp + 0x1b2], eax
mov word [esp + 0x1c2], cx
mov cl, byte [0x5be880]
mov byte [esp + 0x1c9], cl
mov ecx, dword [str.apds]
mov eax, dword [str.apdp]
mov dword [esp + 0x1d8], ecx
xor ecx, ecx
mov dword [esp + 0x1c5], eax
mov dword [esp + 0x1dd], ecx
xor eax, eax
mov dword [esp + 0x1e1], ecx
mov dword [esp + 0x1ca], eax
mov dword [esp + 0x1e5], ecx
mov dword [esp + 0x1ce], eax
mov byte [esp + 0x1e9], cl
mov cl, byte [0x5be870]
mov byte [esp + 0x1ef], cl
mov ecx, dword [str.jtagmki]
mov dword [esp + 0x1fe], ecx
mov dword [esp + 0x1d2], eax
xor ecx, ecx
mov byte [esp + 0x1d6], al
mov al, byte [0x5be878]
mov dword [esp + 0x206], ecx
mov dword [esp + 0x20a], ecx
mov byte [esp + 0x1dc], al
mov eax, dword [str.apdu]
mov word [esp + 0x20e], cx
mov ecx, dword [0x5be85c]
mov dword [esp + 0x1eb], eax
xor eax, eax
mov dword [esp + 0x215], ecx
xor ecx, ecx
mov dword [esp + 0x1f0], eax
mov dword [esp + 0x21a], ecx
mov dword [esp + 0x1f4], eax
mov dword [esp + 0x21e], ecx
mov dword [esp + 0x1f8], eax
mov byte [esp + 0x222], cl
mov cx, word [0x5be854]
mov byte [esp + 0x1fc], al
mov eax, dword [0x5be868]
mov word [esp + 0x228], cx
mov dword [esp + 0x202], eax
mov eax, dword [str.jtagmkii]
xor ecx, ecx
mov dword [esp + 0x22b], ecx
mov dword [esp + 0x211], eax
mov al, byte [0x5be860]
mov dword [esp + 0x22f], ecx
mov byte [esp + 0x219], al
mov eax, dword [str.usbasp]
mov word [esp + 0x233], cx
mov dword [esp + 0x224], eax
mov al, byte [0x5be856]
mov byte [esp + 0x235], cl
mov cx, word [0x5be84c]
mov byte [esp + 0x22a], al
mov eax, dword [str.dragon]
mov word [esp + 0x23b], cx
xor ecx, ecx
mov dword [esp + 0x237], eax
mov al, byte [0x5be84e]
mov dword [esp + 0x23e], ecx
mov dword [esp + 0x242], ecx
mov byte [esp + 0x1b1], 0x1a
mov byte [esp + 0x1c4], 0x1b
mov byte [esp + 0x1d7], 0x1c
mov byte [esp + 0x1ea], 0x1d
mov byte [esp + 0x1fd], 0x1e
mov byte [esp + 0x210], 0x1f
mov byte [esp + 0x223], 0x20
mov byte [esp + 0x236], 0x21
mov byte [esp + 0x23d], al
mov word [esp + 0x246], cx
mov eax, dword [str.ispmkii]
mov byte [esp + 0x248], cl
mov dword [esp + 0x24a], eax
xor eax, eax
mov dword [esp + 0x252], eax
mov ecx, dword [0x5be844]
mov dword [esp + 0x256], eax
mov dword [esp + 0x24e], ecx
mov word [esp + 0x25a], ax
mov eax, dword [0x5be838]
mov ecx, dword [str.stk500v2]
mov dword [esp + 0x261], eax
xor eax, eax
mov dword [esp + 0x25d], ecx
mov cl, byte [0x5be83c]
mov dword [esp + 0x266], eax
mov dword [esp + 0x26a], eax
mov byte [esp + 0x265], cl
mov ecx, dword [0x5be830]
mov byte [esp + 0x26e], al
mov dword [esp + 0x274], eax
mov dword [esp + 0x270], ecx
mov cx, word [0x5be82c]
mov dword [esp + 0x278], eax
mov dword [esp + 0x27c], eax
mov word [esp + 0x283], cx
mov word [esp + 0x280], ax
mov al, byte [0x5be82e]
mov byte [esp + 0x285], al
mov eax, dword [str.hvsp]
xor ecx, ecx
mov dword [esp + 0x296], eax
mov dword [esp + 0x286], ecx
xor eax, eax
mov dword [esp + 0x28a], ecx
mov dword [esp + 0x29b], eax
mov dword [esp + 0x28e], ecx
mov dword [esp + 0x29f], eax
mov word [esp + 0x292], cx
mov dword [esp + 0x2a3], eax
mov byte [esp + 0x294], cl
mov cl, byte [0x5be828]
mov byte [esp + 0x2a7], al
mov al, byte [0x5bca98]
mov byte [esp + 0x29a], cl
mov ecx, dword [0x5bca94]
mov byte [esp + 0x2ad], al
mov eax, dword [0x5bca8c]
mov dword [esp + 0x2a9], ecx
xor ecx, ecx
mov dword [esp + 0x2bc], eax
xor eax, eax
mov dword [esp + 0x2c4], eax
mov dword [esp + 0x2ae], ecx
mov dword [esp + 0x2c8], eax
mov dword [esp + 0x2b2], ecx
mov word [esp + 0x2cc], ax
mov dword [esp + 0x2b6], ecx
mov dword [esp + 0x2d3], eax
mov byte [esp + 0x2ba], cl
mov ecx, dword [0x5bca90]
mov dword [esp + 0x2d7], eax
mov dword [esp + 0x2db], eax
mov dword [esp + 0x2c0], ecx
mov ecx, dword [0x5b980c]
mov word [esp + 0x2df], ax
mov dword [esp + 0x2e6], eax
mov dword [esp + 0x2cf], ecx
mov ecx, dword [0x5b9810]
mov dword [esp + 0x2ea], eax
mov byte [esp + 0x249], 0x22
mov byte [esp + 0x25c], 0x23
mov byte [esp + 0x26f], 0x24
mov byte [esp + 0x282], 0x25
mov byte [esp + 0x295], 0x26
mov byte [esp + 0x2a8], 0x27
mov byte [esp + 0x2bb], 0x28
mov byte [esp + 0x2ce], 0x29
mov byte [esp + 0x2e1], 0x2a
mov dword [esp + 0x2e2], ecx
mov dword [esp + 0x2ee], eax
mov ecx, dword [0x5b9808]
mov word [esp + 0x2f2], ax
mov dword [esp + 0x2f9], eax
mov byte [esp + 0x2f4], 0x2b
mov dword [esp + 0x2fd], eax
mov dword [esp + 0x2f5], ecx
mov dword [esp + 0x301], eax
mov byte [esp + 0x307], 0x2c
mov word [esp + 0x305], ax
xor ebp, ebp
lea edi, [esp + 0x10]
mov eax, dword [esp + 0x30c]
mov esi, edi
mov bl, byte [eax]
mov cl, bl
cmp bl, byte [esi]
jne 0x4d21e4
cmp cl, dl
je 0x4d21e0
mov bl, byte [eax + 1]
mov cl, bl
cmp bl, byte [esi + 1]
jne 0x4d21e4
add eax, 2
add esi, 2
cmp cl, dl
jne 0x4d21c0
xor eax, eax
jmp 0x4d21e9
sbb eax, eax
sbb eax, 0xffffffff
cmp eax, edx
je 0x4d2205
inc ebp
add edi, 0x13
cmp ebp, 0x28
jl 0x4d21b7
pop edi
pop esi
pop ebp
mov al, 0x18
pop ebx
add esp, 0x2f8
ret 4
lea ecx, [ebp + ebp*8]
pop edi
pop esi
lea edx, [esp + ecx*2 + 0x1a]
mov al, byte [edx + ebp]
pop ebp
pop ebx
add esp, 0x2f8
ret 4