Function at 0x401000
Capabilities:
Contain obfuscated stackstrings

Disassembly:
sub esp, 0x7dc
mov eax, dword [0x59b2d0]
xor eax, esp
mov dword [esp + 0x7d8], eax
push ebx
xor ebx, ebx
push ebp
push esi
push edi
mov edi, dword [esp + 0x7f0]
mov cl, 2
mov dl, 0x85
mov al, 3
mov dword [esp + 0x34], edi
mov dword [esp + 0x48], ebx
mov dword [esp + 0x2c], ebx
mov dword [esp + 0x1c], ebx
mov dword [esp + 0x70], ebx
mov dword [esp + 0x68], ebx
mov dword [esp + 0x20], ebx
mov dword [esp + 0x24], ebx
mov dword [esp + 0x6c], ebx
mov dword [esp + 0x50], ebx
mov dword [esp + 0x3c], 0x64
xor esi, esi
mov dword [esp + 0x40], ebx
mov byte [esp + 0x128], 0x30
mov byte [esp + 0x129], 0x81
mov byte [esp + 0x12a], 0xa4
mov byte [esp + 0x12b], 0x30
mov byte [esp + 0x12c], 0x28
mov byte [esp + 0x12d], 4
mov byte [esp + 0x12e], 0x20
mov byte [esp + 0x12f], bl
mov byte [esp + 0x130], bl
mov byte [esp + 0x131], bl
mov byte [esp + 0x132], bl
mov byte [esp + 0x133], bl
mov byte [esp + 0x134], bl
mov byte [esp + 0x135], bl
mov byte [esp + 0x136], bl
mov byte [esp + 0x137], bl
mov byte [esp + 0x138], bl
mov byte [esp + 0x139], bl
mov byte [esp + 0x13a], bl
mov byte [esp + 0x13b], bl
mov byte [esp + 0x13c], bl
mov byte [esp + 0x13d], bl
mov byte [esp + 0x13e], bl
mov byte [esp + 0x13f], bl
mov byte [esp + 0x140], bl
mov byte [esp + 0x141], bl
mov byte [esp + 0x142], bl
mov byte [esp + 0x143], bl
mov byte [esp + 0x144], bl
mov byte [esp + 0x145], bl
mov byte [esp + 0x146], bl
mov byte [esp + 0x147], bl
mov byte [esp + 0x148], bl
mov byte [esp + 0x149], bl
mov byte [esp + 0x14a], bl
mov byte [esp + 0x14b], bl
mov byte [esp + 0x14c], bl
mov byte [esp + 0x14d], bl
mov byte [esp + 0x14e], bl
mov byte [esp + 0x14f], 4
mov byte [esp + 0x150], 4
mov byte [esp + 0x151], 1
mov byte [esp + 0x152], 1
mov byte [esp + 0x153], 1
mov byte [esp + 0x154], 1
mov byte [esp + 0x155], 0xa0
mov byte [esp + 0x156], 0x78
mov byte [esp + 0x157], 6
mov byte [esp + 0x158], 7
mov byte [esp + 0x159], 0x2a
mov byte [esp + 0x15a], dl
mov byte [esp + 0x15b], al
mov byte [esp + 0x15c], cl
mov byte [esp + 0x15d], cl
mov byte [esp + 0x15e], 0x1f
mov byte [esp + 0x15f], 1
mov byte [esp + 0x160], 0xa0
mov byte [esp + 0x161], 0x63
mov byte [esp + 0x162], 0x30
mov byte [esp + 0x163], 0x1c
mov byte [esp + 0x164], 6
mov byte [esp + 0x165], 6
mov byte [esp + 0x166], 0x2a
mov byte [esp + 0x167], dl
mov byte [esp + 0x168], al
mov byte [esp + 0x169], cl
mov byte [esp + 0x16a], cl
mov byte [esp + 0x16b], 0x13
mov byte [esp + 0x16c], 0x30
mov byte [esp + 0x16d], 0x12
mov byte [esp + 0x16e], 6
mov byte [esp + 0x16f], 7
mov byte [esp + 0x170], 0x2a
mov byte [esp + 0x171], dl
mov byte [esp + 0x172], al
mov byte [esp + 0x173], cl
mov byte [esp + 0x174], cl
mov byte [esp + 0x175], 0x23
mov byte [esp + 0x176], 1
mov byte [esp + 0x177], 6
mov byte [esp + 0x178], 7
mov byte [esp + 0x179], 0x2a
mov byte [esp + 0x17a], dl
mov byte [esp + 0x17b], al
mov byte [esp + 0x17c], cl
mov byte [esp + 0x17d], cl
mov byte [esp + 0x17e], 0x1e
mov byte [esp + 0x17f], 1
mov byte [esp + 0x180], al
mov byte [esp + 0x181], 0x43
mov byte [esp + 0x182], bl
mov byte [esp + 0x183], 4
mov byte [esp + 0x184], 0x40
mov byte [esp + 0x185], bl
mov byte [esp + 0x186], bl
mov byte [esp + 0x187], bl
mov byte [esp + 0x188], bl
mov byte [esp + 0x189], bl
mov byte [esp + 0x18a], bl
mov byte [esp + 0x18b], bl
mov byte [esp + 0x18c], bl
mov byte [esp + 0x18d], bl
mov byte [esp + 0x18e], bl
mov byte [esp + 0x18f], bl
mov byte [esp + 0x190], bl
mov byte [esp + 0x191], bl
mov byte [esp + 0x192], bl
mov byte [esp + 0x193], bl
mov byte [esp + 0x194], bl
mov byte [esp + 0x195], bl
mov byte [esp + 0x196], bl
mov byte [esp + 0x197], bl
mov byte [esp + 0x198], bl
mov byte [esp + 0x199], bl
mov byte [esp + 0x19a], bl
mov byte [esp + 0x19b], bl
mov byte [esp + 0x19c], bl
mov byte [esp + 0x19d], bl
mov byte [esp + 0x19e], bl
mov byte [esp + 0x19f], bl
mov byte [esp + 0x1a0], bl
mov byte [esp + 0x1a1], bl
mov byte [esp + 0x1a2], bl
mov byte [esp + 0x1a3], bl
mov byte [esp + 0x1a4], bl
mov byte [esp + 0x1a5], bl
mov byte [esp + 0x1a6], bl
mov byte [esp + 0x1a7], bl
mov byte [esp + 0x1a8], bl
mov byte [esp + 0x1a9], bl
mov byte [esp + 0x1aa], bl
mov byte [esp + 0x1ab], bl
mov byte [esp + 0x1ac], bl
mov byte [esp + 0x1ad], bl
mov byte [esp + 0x1ae], bl
mov byte [esp + 0x1af], bl
mov byte [esp + 0x1b0], bl
mov byte [esp + 0x1b1], bl
mov byte [esp + 0x1b2], bl
mov byte [esp + 0x1b3], bl
mov byte [esp + 0x1b4], bl
mov byte [esp + 0x1b5], bl
mov byte [esp + 0x1b6], bl
mov byte [esp + 0x1b7], bl
mov byte [esp + 0x1b8], bl
mov byte [esp + 0x1b9], bl
mov byte [esp + 0x1ba], bl
mov byte [esp + 0x1bb], bl
mov byte [esp + 0x1bc], bl
mov byte [esp + 0x1bd], bl
mov byte [esp + 0x1be], bl
mov byte [esp + 0x1bf], bl
mov byte [esp + 0x1c0], bl
mov byte [esp + 0x1c1], bl
mov byte [esp + 0x1c2], bl
mov byte [esp + 0x1c3], bl
mov byte [esp + 0x1c4], bl
mov byte [esp + 0x1c5], 4
mov byte [esp + 0x1c6], 8
mov byte [esp + 0x1c7], al
mov byte [esp + 0x1c8], al
mov byte [esp + 0x1c9], al
mov byte [esp + 0x1ca], al
mov byte [esp + 0x1cb], al
mov byte [esp + 0x1cc], al
mov byte [esp + 0x1cd], al
mov byte [esp + 0x1ce], al
mov byte [esp + 0x7c], 0x30
mov byte [esp + 0x7d], 0x81
mov byte [esp + 0x7e], 0xa9
mov byte [esp + 0x7f], 0x30
mov byte [esp + 0x80], 0x28
mov byte [esp + 0x81], 4
mov byte [esp + 0x82], 0x20
mov byte [esp + 0x83], bl
mov byte [esp + 0x84], bl
mov byte [esp + 0x85], bl
mov byte [esp + 0x86], bl
mov byte [esp + 0x87], bl
mov byte [esp + 0x88], bl
mov byte [esp + 0x89], bl
mov byte [esp + 0x8a], bl
mov byte [esp + 0x8b], bl
mov byte [esp + 0x8c], bl
mov byte [esp + 0x8d], bl
mov byte [esp + 0x8e], bl
mov byte [esp + 0x8f], bl
mov byte [esp + 0x90], bl
mov byte [esp + 0x91], bl
mov byte [esp + 0x92], bl
mov byte [esp + 0x93], bl
mov byte [esp + 0x94], bl
mov byte [esp + 0x95], bl
mov byte [esp + 0x96], bl
mov byte [esp + 0x97], bl
mov byte [esp + 0x98], bl
mov byte [esp + 0x99], bl
mov byte [esp + 0x9a], bl
mov byte [esp + 0x9b], bl
mov byte [esp + 0x9c], bl
mov byte [esp + 0x9d], bl
mov byte [esp + 0x9e], bl
mov byte [esp + 0x9f], bl
mov byte [esp + 0xa0], bl
mov byte [esp + 0xa1], bl
mov byte [esp + 0xa2], bl
mov byte [esp + 0xa3], 4
mov byte [esp + 0xa4], 4
mov byte [esp + 0xa5], 1
mov byte [esp + 0xa6], 1
mov byte [esp + 0xa7], 1
mov byte [esp + 0xa8], 1
mov byte [esp + 0xa9], 0xa0
mov byte [esp + 0xaa], 0x7d
mov byte [esp + 0xab], 6
mov byte [esp + 0xac], 9
mov byte [esp + 0xad], 0x2a
mov byte [esp + 0xae], dl
mov byte [esp + 0xaf], al
mov byte [esp + 0xb0], 7
mov byte [esp + 0xb1], 1
mov byte [esp + 0xb2], cl
mov byte [esp + 0xb3], 5
mov byte [esp + 0xb4], 1
mov byte [esp + 0xb5], 1
mov byte [esp + 0xb6], 0xa0
mov byte [esp + 0xb7], 0x66
mov byte [esp + 0xb8], 0x30
mov byte [esp + 0xb9], 0x1f
mov byte [esp + 0xba], 6
mov byte [esp + 0xbb], 8
mov byte [esp + 0xbc], 0x2a
mov byte [esp + 0xbd], dl
mov byte [esp + 0xbe], al
mov byte [esp + 0xbf], 7
mov byte [esp + 0xc0], 1
mov byte [esp + 0xc1], 1
mov byte [esp + 0xc2], 6
mov byte [esp + 0xc3], 1
mov byte [esp + 0xc4], 0x30
mov byte [esp + 0xc5], 0x13
mov byte [esp + 0xc6], 6
mov byte [esp + 0xc7], 7
mov byte [esp + 0xc8], 0x2a
mov byte [esp + 0xc9], dl
mov byte [esp + 0xca], al
mov byte [esp + 0xcb], cl
mov byte [esp + 0xcc], cl
mov byte [esp + 0xcd], 0x23
mov byte [esp + 0xce], 1
mov byte [esp + 0xcf], 6
mov byte [esp + 0xd0], 8
mov byte [esp + 0xd1], 0x2a
mov byte [esp + 0xd2], dl
mov byte [esp + 0xd3], al
mov byte [esp + 0xd4], 7
mov byte [esp + 0xd5], 1
mov byte [esp + 0xd6], 1
mov byte [esp + 0xd7], cl
mov byte [esp + 0xd8], cl
mov byte [esp + 0xd9], al
mov byte [esp + 0xda], 0x43
mov byte [esp + 0xdb], bl
mov byte [esp + 0xdc], 4
mov byte [esp + 0xdd], 0x40
mov byte [esp + 0xde], bl
mov byte [esp + 0xdf], bl
mov byte [esp + 0xe0], bl
mov byte [esp + 0xe1], bl
mov byte [esp + 0xe2], bl
mov byte [esp + 0xe3], bl
mov byte [esp + 0xe4], bl
mov byte [esp + 0xe5], bl
mov byte [esp + 0xe6], bl
mov byte [esp + 0xe7], bl
mov byte [esp + 0xe8], bl
mov byte [esp + 0xe9], bl
mov byte [esp + 0xea], bl
mov byte [esp + 0xeb], bl
mov byte [esp + 0xec], bl
mov byte [esp + 0xed], bl
mov byte [esp + 0xee], bl
mov byte [esp + 0xef], bl
mov byte [esp + 0xf0], bl
mov byte [esp + 0xf1], bl
mov byte [esp + 0xf2], bl
mov byte [esp + 0xf3], bl
mov byte [esp + 0xf4], bl
mov byte [esp + 0xf5], bl
mov byte [esp + 0xf6], bl
mov byte [esp + 0xf7], bl
mov byte [esp + 0xf8], bl
mov byte [esp + 0xf9], bl
mov byte [esp + 0xfa], bl
mov byte [esp + 0xfb], bl
mov byte [esp + 0xfc], bl
mov byte [esp + 0xfd], bl
mov byte [esp + 0xfe], bl
mov byte [esp + 0xff], bl
mov byte [esp + 0x100], bl
mov byte [esp + 0x101], bl
mov byte [esp + 0x102], bl
mov byte [esp + 0x103], bl
mov byte [esp + 0x104], bl
mov byte [esp + 0x105], bl
mov byte [esp + 0x106], bl
mov byte [esp + 0x107], bl
mov byte [esp + 0x108], bl
mov byte [esp + 0x109], bl
mov byte [esp + 0x10a], bl
mov byte [esp + 0x10b], bl
mov byte [esp + 0x10c], bl
mov byte [esp + 0x10d], bl
mov byte [esp + 0x10e], bl
mov byte [esp + 0x10f], bl
mov byte [esp + 0x110], bl
mov byte [esp + 0x111], bl
mov byte [esp + 0x112], bl
mov byte [esp + 0x113], bl
mov byte [esp + 0x114], bl
mov byte [esp + 0x115], bl
mov byte [esp + 0x116], bl
mov byte [esp + 0x117], bl
mov byte [esp + 0x118], bl
mov byte [esp + 0x119], bl
mov byte [esp + 0x11a], bl
mov byte [esp + 0x11b], bl
mov byte [esp + 0x11c], bl
mov byte [esp + 0x11d], bl
mov byte [esp + 0x11e], 4
mov byte [esp + 0x11f], 8
mov byte [esp + 0x120], al
mov byte [esp + 0x121], al
mov byte [esp + 0x122], al
mov byte [esp + 0x123], al
mov byte [esp + 0x124], al
mov byte [esp + 0x125], al
mov byte [esp + 0x126], al
mov byte [esp + 0x127], al
mov byte [esp + 0x1d0], 0x30
mov byte [esp + 0x1d1], 0x82
mov byte [esp + 0x1d2], 1
mov byte [esp + 0x1d3], 0xf
mov byte [esp + 0x1d4], 0x30
mov byte [esp + 0x1d5], 0x48
mov byte [esp + 0x1d6], 4
mov byte [esp + 0x1d7], 0x40
mov byte [esp + 0x1d8], bl
mov byte [esp + 0x1d9], bl
mov byte [esp + 0x1da], bl
mov byte [esp + 0x1db], bl
mov byte [esp + 0x1dc], bl
mov byte [esp + 0x1dd], bl
mov byte [esp + 0x1de], bl
mov byte [esp + 0x1df], bl
mov byte [esp + 0x1e0], bl
mov byte [esp + 0x1e1], bl
mov byte [esp + 0x1e2], bl
mov byte [esp + 0x1e3], bl
mov byte [esp + 0x1e4], bl
mov byte [esp + 0x1e5], bl
mov byte [esp + 0x1e6], bl
mov byte [esp + 0x1e7], bl
mov byte [esp + 0x1e8], bl
mov byte [esp + 0x1e9], bl
mov byte [esp + 0x1ea], bl
mov byte [esp + 0x1eb], bl
mov byte [esp + 0x1ec], bl
mov byte [esp + 0x1ed], bl
mov byte [esp + 0x1ee], bl
mov byte [esp + 0x1ef], bl
mov byte [esp + 0x1f0], bl
mov byte [esp + 0x1f1], bl
mov byte [esp + 0x1f2], bl
mov byte [esp + 0x1f3], bl
mov byte [esp + 0x1f4], bl
mov byte [esp + 0x1f5], bl
mov byte [esp + 0x1f6], bl
mov byte [esp + 0x1f7], bl
mov byte [esp + 0x1f8], bl
mov byte [esp + 0x1f9], bl
mov byte [esp + 0x1fa], bl
mov byte [esp + 0x1fb], bl
mov byte [esp + 0x1fc], bl
mov byte [esp + 0x1fd], bl
mov byte [esp + 0x1fe], bl
mov byte [esp + 0x1ff], bl
mov byte [esp + 0x200], bl
mov byte [esp + 0x201], bl
mov byte [esp + 0x202], bl
mov byte [esp + 0x203], bl
mov byte [esp + 0x204], bl
mov byte [esp + 0x205], bl
mov byte [esp + 0x206], bl
mov byte [esp + 0x207], bl
mov byte [esp + 0x208], bl
mov byte [esp + 0x209], bl
mov byte [esp + 0x20a], bl
mov byte [esp + 0x20b], bl
mov byte [esp + 0x20c], bl
mov byte [esp + 0x20d], bl
mov byte [esp + 0x20e], bl
mov byte [esp + 0x20f], bl
mov byte [esp + 0x210], bl
mov byte [esp + 0x211], bl
mov byte [esp + 0x212], bl
mov byte [esp + 0x213], bl
mov byte [esp + 0x214], bl
mov byte [esp + 0x215], bl
mov byte [esp + 0x216], bl
mov byte [esp + 0x217], bl
mov byte [esp + 0x218], 4
mov byte [esp + 0x219], 4
mov byte [esp + 0x21a], 1
mov byte [esp + 0x21b], 1
mov byte [esp + 0x21c], 1
mov byte [esp + 0x21d], 1
mov byte [esp + 0x21e], 0xa0
mov byte [esp + 0x21f], 0x81
mov byte [esp + 0x220], 0xc2
mov byte [esp + 0x221], 6
mov byte [esp + 0x222], 9
mov byte [esp + 0x223], 0x2a
mov byte [esp + 0x224], dl
mov byte [esp + 0x225], al
mov byte [esp + 0x226], 7
mov byte [esp + 0x227], 1
mov byte [esp + 0x228], cl
mov byte [esp + 0x229], 5
mov byte [esp + 0x22a], 1
mov byte [esp + 0x22b], 1
mov byte [esp + 0x22c], 0xa0
mov byte [esp + 0x22d], 0x81
mov byte [esp + 0x22e], 0xaa
mov byte [esp + 0x22f], 0x30
mov byte [esp + 0x230], 0x21
mov byte [esp + 0x231], 6
mov byte [esp + 0x232], 8
mov byte [esp + 0x233], 0x2a
mov byte [esp + 0x234], dl
mov byte [esp + 0x235], al
mov byte [esp + 0x236], 7
mov byte [esp + 0x237], 1
mov byte [esp + 0x238], 1
mov byte [esp + 0x239], 6
mov byte [esp + 0x23a], cl
mov byte [esp + 0x23b], 0x30
mov byte [esp + 0x23c], 0x15
mov byte [esp + 0x23d], 6
mov byte [esp + 0x23e], 9
mov byte [esp + 0x23f], 0x2a
mov byte [esp + 0x240], dl
mov byte [esp + 0x241], al
mov byte [esp + 0x242], 7
mov byte [esp + 0x243], 1
mov byte [esp + 0x244], cl
mov byte [esp + 0x245], 1
mov byte [esp + 0x246], cl
mov byte [esp + 0x247], 1
mov byte [esp + 0x248], 6
mov byte [esp + 0x249], 8
mov byte [esp + 0x24a], 0x2a
mov byte [esp + 0x24b], dl
mov byte [esp + 0x24c], al
mov byte [esp + 0x24d], 7
mov byte [esp + 0x24e], 1
mov byte [esp + 0x24f], 1
mov byte [esp + 0x250], cl
mov byte [esp + 0x251], al
mov byte [esp + 0x252], al
mov byte [esp + 0x253], 0x81
mov byte [esp + 0x254], 0x84
mov byte [esp + 0x255], bl
mov byte [esp + 0x256], 4
mov byte [esp + 0x257], 0x81
mov byte [esp + 0x258], 0x80
mov byte [esp + 0x259], bl
mov byte [esp + 0x25a], bl
mov byte [esp + 0x25b], bl
mov byte [esp + 0x25c], bl
mov byte [esp + 0x25d], bl
mov byte [esp + 0x25e], bl
mov byte [esp + 0x25f], bl
mov byte [esp + 0x260], bl
mov byte [esp + 0x261], bl
mov byte [esp + 0x262], bl
mov byte [esp + 0x263], bl
mov byte [esp + 0x264], bl
mov byte [esp + 0x265], bl
mov byte [esp + 0x266], bl
mov byte [esp + 0x267], bl
mov byte [esp + 0x268], bl
mov byte [esp + 0x269], bl
mov byte [esp + 0x26a], bl
mov byte [esp + 0x26b], bl
mov byte [esp + 0x26c], bl
mov byte [esp + 0x26d], bl
mov byte [esp + 0x26e], bl
mov byte [esp + 0x26f], bl
mov byte [esp + 0x270], bl
mov byte [esp + 0x271], bl
mov byte [esp + 0x272], bl
mov byte [esp + 0x273], bl
mov byte [esp + 0x274], bl
mov byte [esp + 0x275], bl
mov byte [esp + 0x276], bl
mov byte [esp + 0x277], bl
mov byte [esp + 0x278], bl
mov byte [esp + 0x279], bl
mov byte [esp + 0x27a], bl
mov byte [esp + 0x27b], bl
mov byte [esp + 0x27c], bl
mov byte [esp + 0x27d], bl
mov byte [esp + 0x27e], bl
mov byte [esp + 0x27f], bl
mov byte [esp + 0x280], bl
mov byte [esp + 0x281], bl
mov byte [esp + 0x282], bl
mov byte [esp + 0x283], bl
mov byte [esp + 0x284], bl
mov byte [esp + 0x285], bl
mov byte [esp + 0x286], bl
mov byte [esp + 0x287], bl
mov byte [esp + 0x288], bl
mov byte [esp + 0x289], bl
mov byte [esp + 0x28a], bl
mov byte [esp + 0x28b], bl
mov byte [esp + 0x28c], bl
mov byte [esp + 0x28d], bl
mov byte [esp + 0x28e], bl
mov byte [esp + 0x28f], bl
mov byte [esp + 0x290], bl
mov byte [esp + 0x291], bl
mov byte [esp + 0x292], bl
mov byte [esp + 0x293], bl
mov byte [esp + 0x294], bl
mov byte [esp + 0x295], bl
mov byte [esp + 0x296], bl
mov byte [esp + 0x297], bl
mov byte [esp + 0x298], bl
mov byte [esp + 0x299], bl
mov byte [esp + 0x29a], bl
mov byte [esp + 0x29b], bl
mov byte [esp + 0x29c], bl
mov byte [esp + 0x29d], bl
mov ebp, dword [esp + 0x7f8]
push ebx
mov byte [esp + 0x2df], al
mov byte [esp + 0x2e0], al
mov byte [esp + 0x2e1], al
mov byte [esp + 0x2e2], al
mov byte [esp + 0x2e3], al
mov byte [esp + 0x2e4], al
mov byte [esp + 0x2e5], al
mov byte [esp + 0x2e6], al
lea eax, [esp + 0x78]
push eax
lea ecx, [esp + 0x4d0]
push ecx
push 4
push ebp
mov byte [esp + 0x2b2], bl
mov byte [esp + 0x2b3], bl
mov byte [esp + 0x2b4], bl
mov byte [esp + 0x2b5], bl
mov byte [esp + 0x2b6], bl
mov byte [esp + 0x2b7], bl
mov byte [esp + 0x2b8], bl
mov byte [esp + 0x2b9], bl
mov byte [esp + 0x2ba], bl
mov byte [esp + 0x2bb], bl
mov byte [esp + 0x2bc], bl
mov byte [esp + 0x2bd], bl
mov byte [esp + 0x2be], bl
mov byte [esp + 0x2bf], bl
mov byte [esp + 0x2c0], bl
mov byte [esp + 0x2c1], bl
mov byte [esp + 0x2c2], bl
mov byte [esp + 0x2c3], bl
mov byte [esp + 0x2c4], bl
mov byte [esp + 0x2c5], bl
mov byte [esp + 0x2c6], bl
mov byte [esp + 0x2c7], bl
mov byte [esp + 0x2c8], bl
mov byte [esp + 0x2c9], bl
mov byte [esp + 0x2ca], bl
mov byte [esp + 0x2cb], bl
mov byte [esp + 0x2cc], bl
mov byte [esp + 0x2cd], bl
mov byte [esp + 0x2ce], bl
mov byte [esp + 0x2cf], bl
mov byte [esp + 0x2d0], bl
mov byte [esp + 0x2d1], bl
mov byte [esp + 0x2d2], bl
mov byte [esp + 0x2d3], bl
mov byte [esp + 0x2d4], bl
mov byte [esp + 0x2d5], bl
mov byte [esp + 0x2d6], bl
mov byte [esp + 0x2d7], bl
mov byte [esp + 0x2d8], bl
mov byte [esp + 0x2d9], bl
mov byte [esp + 0x2da], bl
mov byte [esp + 0x2db], bl
mov byte [esp + 0x2dc], bl
mov byte [esp + 0x2dd], bl
mov byte [esp + 0x2de], bl
mov byte [esp + 0x2df], bl
mov byte [esp + 0x2e0], bl
mov byte [esp + 0x2e1], bl
mov byte [esp + 0x2e2], bl
mov byte [esp + 0x2e3], bl
mov byte [esp + 0x2e4], bl
mov byte [esp + 0x2e5], bl
mov byte [esp + 0x2e6], bl
mov byte [esp + 0x2e7], bl
mov byte [esp + 0x2e8], bl
mov byte [esp + 0x2e9], bl
mov byte [esp + 0x2ea], bl
mov byte [esp + 0x2eb], bl
mov byte [esp + 0x2ec], bl
mov byte [esp + 0x2ed], 4
mov byte [esp + 0x2ee], 8
mov dword [esp + 0x88], 0x258
call dword [sym.imp.ADVAPI32.dll_CryptGetProvParam]
test eax, eax
jne 0x4021fb
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
push str.importCSPPrivateKey
push str._s__:_GetProvParam__PP_NAME___failed__GetLastError__0x_p
jmp 0x402a1d
lea edx, [esp + 0x4c8]
push str.LISSI_CSP
push edx
call fcn.0046f180
add esp, 8
test eax, eax
jne 0x402a0b
lea eax, [esp + 0x4c8]
push str.Infotecs
push eax
call fcn.0046f180
add esp, 8
test eax, eax
jne 0x402a0b
mov edx, dword [esp + 0x7fc]
lea ecx, [esp + 0x20]
push ecx
push edx
push ebp
call dword [sym.imp.ADVAPI32.dll_CryptGetUserKey]
test eax, eax
jne 0x402263
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
push str.importCSPPrivateKey
push str._s:_CryptGetUserKey___failed:_GetLastError__0x_p
jmp 0x402a1d
mov edx, dword [esp + 0x20]
push ebx
lea eax, [esp + 0x6c]
push eax
lea ecx, [esp + 0x78]
push ecx
push 6
push edx
mov dword [esp + 0x7c], 4
call dword [sym.imp.ADVAPI32.dll_CryptGetKeyParam]
test eax, eax
je 0x4022a5
test byte [esp + 0x70], 4
jne 0x4022a5
push str.importCSPPrivateKey
push str._s__:_key_param:_export_disabled
call fcn.00403e80
add esp, 8
jmp 0x402a25
mov eax, dword [edi + 0xc]
mov ecx, dword [eax + 0x18]
push ecx
call fcn.0041d4e0
mov edx, dword [edi]
push edx
mov dword [esp + 0x20], eax
call fcn.00405090
add esp, 8
sub eax, 0x292
je 0x402336
sub eax, 0x33
je 0x40230e
sub eax, 1
je 0x4022e3
mov eax, dword [edi]
push eax
push str.importCSPPrivateKey
push str._s__:_Unknown_key_d
jmp 0x402a1d
push 0xa8
mov ebp, 0xaa43
mov dword [esp + 0x18], 0x2e3d
mov dword [esp + 0x14], 0x17
call fcn.0046f0af
push str.importCSPPrivateKey
push str._s__:_Export_for__EVP_PKEY_GOST3410_2012_512
jmp 0x40235c
push 0x68
mov ebp, 0xaa47
mov dword [esp + 0x18], 0x2e49
mov dword [esp + 0x14], 0x15
call fcn.0046f0af
push str.importCSPPrivateKey
push str._s__:_Export_for_EVP_PKEY_GOST3410_2012_256
jmp 0x40235c
push 0x64
mov ebp, 0xaa25
mov dword [esp + 0x18], 0x2e23
mov dword [esp + 0x14], 0x14
call fcn.0046f0af
push str.importCSPPrivateKey
push str._s__:_Export_for_EVP_PKEY_GOST3410
mov edi, eax
call fcn.00403bc0
mov edx, dword [esp + 0x804]
add esp, 0xc
lea ecx, [esp + 0x1c]
push ecx
push ebx
push ebp
push edx
call dword [sym.imp.ADVAPI32.dll_CryptGenKey]
test eax, eax
jne 0x402395
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
push str.importCSPPrivateKey
push str._s__:_CryptGenKey___failed:_GetLastError____0x_p
jmp 0x402a1d
mov eax, dword [esp + 0x34]
mov ecx, dword [eax + 0xc]
mov edx, dword [ecx + 0x18]
mov eax, dword [edx]
push eax
push str.importCSPPrivateKey
push str._s__:_len_pub_d
call fcn.00403bc0
mov eax, dword [esp + 0x28]
mov ebp, dword [sym.imp.ADVAPI32.dll_CryptGetKeyParam]
add esp, 0xc
push ebx
lea ecx, [esp + 0x40]
push ecx
lea edx, [esp + 0x2ec]
push edx
push 0x6a
push eax
mov dword [esp + 0x50], 0x64
call ebp
test eax, eax
je 0x402408
lea ecx, [esp + 0x2e4]
push ecx
push str.importCSPPrivateKey
push str._s__:_KP_DHOID___s
call fcn.00403bc0
lea edx, [esp + 0x2f0]
push edx
call fcn.00406730
add esp, 0x10
mov dword [esp + 0x38], eax
mov edx, dword [esp + 0x1c]
push ebx
lea eax, [esp + 0x40]
push eax
lea ecx, [esp + 0x2ec]
push ecx
push 0x67
push edx
mov dword [esp + 0x50], 0x64
call ebp
test eax, eax
je 0x402454
lea eax, [esp + 0x2e4]
push eax
push str.importCSPPrivateKey
push str._s__:_KP_HASHOID___s
call fcn.00403bc0
lea ecx, [esp + 0x2f0]
push ecx
call fcn.00406730
add esp, 0x10
jmp 0x402458
mov eax, dword [esp + 0x4c]
mov edx, dword [esp + 0x38]
push eax
push edx
call fcn.00405740
add esp, 8
mov dword [esp + 0x38], eax
cmp eax, ebx
jne 0x402485
push str.importCSPPrivateKey
push str._s__:_GOST3410_generate_key_ER
call fcn.00403e80
add esp, 8
jmp 0x402a25
call fcn.00405040
mov ebp, eax
mov eax, dword [esp + 0x38]
push eax
push eax
mov dword [esp + 0x54], ebp
call fcn.00405710
add esp, 4
push eax
push ebp
call fcn.00405290
mov eax, dword [ebp + 0xc]
mov eax, dword [eax + 0x18]
mov ecx, dword [eax]
mov edx, dword [eax + 8]
push ecx
push edx
lea eax, [esp + 0x3dc]
push eax
call fcn.0046f2a0
mov edx, dword [esp + 0x34]
add esp, 0x18
lea ecx, [esp + 0x58]
push ecx
push ebx
push ebx
push 6
push ebx
push edx
call dword [sym.imp.ADVAPI32.dll_CryptExportKey]
mov eax, dword [esp + 0x58]
push eax
push str.importCSPPrivateKey
push str._s__:_CryptExportKey_dwEphemBlobLen___d
call fcn.00403bc0
mov ecx, dword [esp + 0x64]
push ecx
call fcn.0046f0af
add esp, 0x10
lea edx, [esp + 0x58]
push edx
mov ebp, eax
mov eax, dword [esp + 0x20]
push ebp
push ebx
push 6
push ebx
push eax
call dword [sym.imp.ADVAPI32.dll_CryptExportKey]
test eax, eax
jne 0x402529
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
push str.importCSPPrivateKey
push str._s___:_CryptExportKey_failed:_0x_p
jmp 0x402a1d
mov ecx, dword [esp + 0x34]
mov edx, dword [ecx]
push edx
call fcn.00405090
add esp, 4
sub eax, 0x292
je 0x40259e
sub eax, 0x33
je 0x402575
sub eax, 1
jne 0x4025c8
mov eax, dword [esp + 0x18]
push eax
lea ecx, [ebp + 0x27]
push ecx
lea edx, [esp + 0x350]
push edx
call fcn.0046f2a0
push 0xa8
push ebx
push edi
call fcn.0046f220
mov dword [esp + 0x40], 0xa8
jmp 0x4025c5
mov eax, dword [esp + 0x18]
push eax
lea ecx, [ebp + 0x25]
push ecx
lea edx, [esp + 0x350]
push edx
call fcn.0046f2a0
push 0x68
push ebx
push edi
call fcn.0046f220
mov dword [esp + 0x40], 0x68
jmp 0x4025c5
mov eax, dword [esp + 0x18]
push eax
lea ecx, [ebp + 0x24]
push ecx
lea edx, [esp + 0x350]
push edx
call fcn.0046f2a0
push 0x64
push ebx
push edi
call fcn.0046f220
mov dword [esp + 0x40], 0x64
add esp, 0x18
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x18]
mov dword [edi + 4], eax
mov eax, dword [esp + 0x10]
push eax
lea edx, [ecx*8]
add ebp, 0x10
lea ecx, [edi + 0x10]
push ebp
push ecx
mov byte [edi], 6
mov byte [edi + 1], 0x20
mov dword [edi + 8], 0x3147414d
mov dword [edi + 0xc], edx
call fcn.0046f2a0
mov edx, dword [esp + 0x40]
mov eax, dword [edx]
push eax
call fcn.00405090
add esp, 0x10
sub eax, 0x292
je 0x402703
sub eax, 0x33
je 0x402697
sub eax, 1
jne 0x402772
mov ecx, dword [esp + 0x18]
push ecx
lea edx, [esp + 0x3cc]
push edx
lea eax, [edi + 0x27]
push eax
call fcn.0046f2a0
add esp, 0xc
mov dword [esp + 0x30], 0x6621
mov dword [esp + 0x10], 7
mov dword [esp + 0x14], 4
lea esi, [esp + 0x1d0]
mov dword [esp + 0x60], 0x89
mov ebp, 0x10b
mov dword [esp + 0x5c], 0x4a
mov dword [esp + 0x44], 0x6d
mov dword [esp + 0x54], 8
mov dword [esp + 0x64], 0x14
mov dword [esp + 0x40], 0x113
jmp 0x402776
mov ecx, dword [esp + 0x18]
push ecx
lea edx, [esp + 0x3cc]
push edx
lea eax, [edi + 0x25]
push eax
call fcn.0046f2a0
add esp, 0xc
mov dword [esp + 0x30], 0x6621
mov dword [esp + 0x10], 6
mov dword [esp + 0x14], 4
lea esi, [esp + 0x7c]
mov dword [esp + 0x60], 0x62
mov ebp, 0xa4
mov dword [esp + 0x5c], 0x29
mov dword [esp + 0x44], 0x4a
mov dword [esp + 0x54], 7
mov dword [esp + 0x64], 0x14
mov dword [esp + 0x40], 0xac
jmp 0x402776
mov ecx, dword [esp + 0x18]
push ecx
lea edx, [esp + 0x3cc]
push edx
lea eax, [edi + 0x24]
push eax
call fcn.0046f2a0
add esp, 0xc
mov dword [esp + 0x30], 0x661f
mov dword [esp + 0x10], 6
mov dword [esp + 0x14], 4
mov dword [esp + 0x60], 0x5d
mov ebp, 0x9f
mov dword [esp + 0x5c], 0x29
mov dword [esp + 0x44], 0x46
mov dword [esp + 0x54], 7
mov dword [esp + 0x64], 0x12
lea esi, [esp + 0x128]
mov dword [esp + 0x40], 0xa7
jmp 0x402776
mov ebp, dword [esp + 0x4c]
mov edx, dword [esp + 0x1c]
mov eax, dword [esp + 0x28]
lea ecx, [esp + 0x24]
push ecx
mov ecx, dword [esp + 0x7fc]
push ebx
push edx
push eax
push edi
push ecx
call dword [sym.imp.ADVAPI32.dll_CryptImportKey]
test eax, eax
jne 0x4027af
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
push str.importCSPPrivateKey
push str._s___:_CryptImportKey_failed:_0x_p
jmp 0x402a1d
push str.importCSPPrivateKey
push str._s__:_CryptImportKey_OK__
call fcn.00403bc0
mov eax, dword [esp + 0x2c]
add esp, 8
push ebx
lea edx, [esp + 0x34]
push edx
push 7
push eax
call dword [sym.imp.ADVAPI32.dll_CryptSetKeyParam]
test eax, eax
jne 0x4027ee
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
push str.importCSPPrivateKey
push str._s__:_CryptSetKeyParam__KP_ALGID___failed:_0x_p
jmp 0x402a1d
mov edx, dword [esp + 0x24]
mov eax, dword [esp + 0x20]
mov edi, dword [sym.imp.ADVAPI32.dll_CryptExportKey]
lea ecx, [esp + 0x2c]
push ecx
push ebx
push ebx
push 7
push edx
push eax
call edi
test eax, eax
jne 0x40282b
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
push str.importCSPPrivateKey
push str._s__:_CryptExportKey_PRIVATEKEYBLOB__failed:_0x_p
call fcn.00403e80
add esp, 0xc
jmp 0x4029dd
mov ecx, dword [esp + 0x30]
mov edx, dword [esp + 0x2c]
push ecx
push edx
push str.pCspPrivateBlob:_nCspPrivateBlobSize_d__algid0x_x
call fcn.00403bc0
mov eax, dword [esp + 0x38]
push 0x365
push str.C:projectslirssl_srcP12FromGostCSPmain.c
push eax
call fcn.00404310
mov edx, dword [esp + 0x3c]
add esp, 0x18
lea ecx, [esp + 0x2c]
push ecx
push eax
push ebx
push 7
mov dword [esp + 0x58], eax
mov eax, dword [esp + 0x30]
push edx
push eax
call edi
test eax, eax
jne 0x402891
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
push str.importCSPPrivateKey
push str._s__:_CryptExportKey_failed:_0x_p
call fcn.00403e80
add esp, 0xc
jmp 0x4029dd
mov ecx, dword [esp + 0x10]
mov edx, dword [esp + 0x48]
mov eax, dword [esp + 0x14]
lea edi, [ecx + edx + 0x10]
lea ecx, [eax + edi + 8]
mov eax, dword [esp + 0x18]
cdq
sub eax, edx
sar eax, 1
mov dword [esp + 0x28], eax
lea eax, [eax + ecx + 2]
mov dword [esp + 0x10], ecx
mov ecx, dword [esp + 0x64]
lea edx, [ecx + eax + 4]
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0x18]
mov dword [esp + 0x50], edx
mov edx, dword [esp + 0x60]
push eax
lea ecx, [esp + 0x34c]
push ecx
add edx, esi
push edx
call fcn.0046f2a0
mov eax, dword [esp + 0x34]
mov ecx, dword [esp + 0x1c]
mov edx, dword [esp + 0x60]
push eax
push ecx
add edx, esi
push edx
call fcn.0046f2a0
mov eax, dword [esp + 0x2c]
mov ecx, dword [eax]
mov edx, dword [esp + 0x74]
mov dword [edx + esi], ecx
mov eax, dword [edi]
mov edx, dword [esp + 0x5c]
mov dword [esi + ebp], eax
mov ecx, dword [edi + 4]
mov dword [esi + ebp + 4], ecx
lea eax, [edx + esi - 2]
mov edx, dword [esp + 0x50]
lea ecx, [esp + 0x68]
push ecx
push edx
mov dword [esp + 0x70], eax
call fcn.00404fe0
mov ecx, dword [esp + 0x6c]
mov edx, dword [esp + 0x60]
lea eax, [esp + 0x98]
push eax
push ecx
push edx
lea eax, [esp + 0x474]
push esi
push eax
call fcn.00404da0
add esp, 0x34
mov esi, eax
cmp esi, ebx
push esi
push str.importCSPPrivateKey
jg 0x40296b
push str._s__:_EVP_PKEY_decrypt_failed__:_jj_d
call fcn.00403e80
add esp, 0xc
jmp 0x4029dd
push str._s__:_EVP_PKEY_decrypt_OK_jj_d
call fcn.00403bc0
add esp, 0xc
call fcn.00404c20
mov edi, dword [esp + 0x34]
mov ecx, dword [edi + 0xc]
mov dword [ecx + 0x14], eax
mov edx, dword [edi + 0xc]
cmp dword [edx + 0x14], ebx
jne 0x4029a0
push str.importCSPPrivateKey
push str._s__:_ASN1_OCTET_STRING_new___failed
call fcn.00403e80
jmp 0x4029da
push esi
lea eax, [esp + 0x44c]
mov ecx, edx
mov edx, dword [ecx + 0x14]
push eax
push edx
call fcn.00404600
add esp, 0xc
push str.importCSPPrivateKey
test eax, eax
jne 0x4029cc
push str._s__:_Invalid_cant_set_pubkey
call fcn.00403e80
jmp 0x4029da
push str._s___:_EVP_PKEY_OK__
call fcn.00403bc0
mov dword [esp + 0x74], edi
add esp, 8
mov eax, dword [esp + 0x24]
mov esi, dword [sym.imp.ADVAPI32.dll_CryptDestroyKey]
push eax
call esi
mov ecx, dword [esp + 0x1c]
push ecx
call esi
mov edx, dword [esp + 0x20]
push edx
call esi
mov eax, dword [esp + 0x48]
push eax
call fcn.004044c0
mov eax, dword [esp + 0x70]
add esp, 4
jmp 0x402a27
lea ecx, [esp + 0x4c8]
push ecx
push str.importCSPPrivateKey
push str._s__:_Provider_Name___s
call fcn.00403e80
add esp, 0xc
xor eax, eax
mov ecx, dword [esp + 0x7e8]
pop edi
pop esi
pop ebp
pop ebx
xor ecx, esp
call fcn.0046f206
add esp, 0x7dc
ret