Function at 0x412160
Capabilities:
Contain obfuscated stackstrings
Encode data using xor
Parse pe header
Resolve function by parsing pe exports

Disassembly:
push 0xffffffffffffffff
push 0x4f8303
mov eax, dword fs:[0]
push eax
sub esp, 0x550
mov eax, dword [0x5370e4]
xor eax, esp
mov dword [esp + 0x548], eax
push ebx
push ebp
push esi
push edi
mov eax, dword [0x5370e4]
xor eax, esp
push eax
lea eax, [esp + 0x564]
mov dword fs:[0], eax
mov eax, dword [esp + 0x578]
mov esi, dword [esp + 0x574]
mov dword [esp + 0x68], eax
mov eax, dword [esp + 0x57c]
push edx
push eax
mov dword [esp + 0x3c], ecx
mov dword [esp + 0x40], eax
mov dword [esp + 0x6c], edx
call fcn.004149a0
add esp, 8
test eax, eax
jne 0x4146bd
mov edi, 0xf
xor ebp, ebp
mov eax, esi
mov dword [esp + 0x54], edi
mov dword [esp + 0x50], ebp
mov byte [esp + 0x40], 0
lea edx, [eax + 1]
jmp 0x4121f0
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x4121f0
sub eax, edx
push eax
push esi
lea ecx, [esp + 0x44]
call fcn.00402130
mov dword [esp + 0x56c], ebp
mov esi, dword [esp + 0x40]
mov ebx, 0x10
cmp dword [esp + 0x54], ebx
jae 0x41221e
lea esi, [esp + 0x40]
sub esp, 0x1c
mov ecx, esp
mov dword [ecx + 0x18], edi
mov eax, esi
mov dword [ecx + 0x14], ebp
mov dword [esp + 0x48], esp
mov byte [ecx + 4], 0
lea edi, [eax + 1]
mov dl, byte [eax]
inc eax
test dl, dl
jne 0x412236
sub eax, edi
push eax
push esi
call fcn.00402130
lea esi, [esp + 0xfc]
call fcn.00414840
add esp, 0x1c
mov byte [esp + 0x56c], 2
cmp dword [esp + 0x54], ebx
jb 0x412270
mov ecx, dword [esp + 0x40]
push ecx
call fcn.0041ef45
add esp, 4
mov edi, dword [esp + 0xf8]
cmp edi, ebx
mov ebx, dword [esp + 0xe4]
mov edx, ebx
jae 0x41228b
lea edx, [esp + 0xe4]
mov eax, edx
lea esi, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x412290
sub eax, esi
cmp edx, ebp
je 0x41475b
cmp eax, ebp
je 0x41475b
lea ecx, [esp + 0x30]
push ecx
push eax
push edx
mov dword [esp + 0x3c], ebp
call fcn.0041be00
add esp, 0xc
cmp eax, ebp
je 0x41473a
mov esi, dword [esp + 0x30]
cmp esi, ebp
je 0x41473a
cmp byte [esi], 0x7b
jne 0x41473a
cmp byte [eax + esi - 1], 0x7d
jne 0x41473a
push esi
mov edx, eax
call fcn.00418e10
mov ebx, eax
add esp, 4
mov dword [esp + 0x24], ebx
cmp ebx, ebp
jne 0x41230f
lea ecx, [esp + 0xe0]
call fcn.00401c60
mov eax, 0xfffffffe
jmp 0x41476c
push esi
call fcn.00429469
add esp, 4
push str.version
mov eax, ebx
call fcn.00402880
mov esi, 5
mov ebp, 0x5255b3
cmp dword [eax + 4], esi
je 0x412339
mov dword [esp + 0x28], ebp
jmp 0x412340
mov edx, dword [eax + 0xc]
mov dword [esp + 0x28], edx
push str.issue_date
mov eax, ebx
call fcn.00402880
cmp dword [eax + 4], esi
je 0x412357
mov dword [esp + 0x30], ebp
jmp 0x41235e
mov eax, dword [eax + 0xc]
mov dword [esp + 0x30], eax
push str.protocol_name
mov eax, ebx
call fcn.00402880
cmp dword [eax + 4], esi
je 0x412375
mov dword [esp + 0x20], ebp
jmp 0x41237c
mov ecx, dword [eax + 0xc]
mov dword [esp + 0x20], ecx
push str.uuid
mov eax, ebx
call fcn.00402880
cmp dword [eax + 4], esi
jne 0x412390
mov ebp, dword [eax + 0xc]
mov eax, 0xf
xor edi, edi
mov dword [esp + 0xc0], eax
mov dword [esp + 0xbc], edi
mov byte [esp + 0xac], 0
mov dword [esp + 0xdc], eax
mov dword [esp + 0xd8], edi
mov byte [esp + 0xc8], 0
mov bl, 4
mov byte [esp + 0x56c], bl
mov eax, dword [esp + 0x28]
mov ecx, 0x52c230
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x4123f5
test dl, dl
je 0x4123f1
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x4123f5
add eax, 2
add ecx, 2
test dl, dl
jne 0x4123d5
xor eax, eax
jmp 0x4123fa
sbb eax, eax
sbb eax, 0xffffffff
cmp eax, edi
mov eax, dword [esp + 0x24]
push str.license
jne 0x41242a
call fcn.00402880
cmp dword [eax + 4], esi
je 0x41241e
mov dword [esp + 0x1c], 0x5255b3
jmp 0x4125a0
mov edx, dword [eax + 0xc]
mov dword [esp + 0x1c], edx
jmp 0x4125a0
call fcn.00402880
cmp dword [eax + 4], esi
mov esi, 0x5255b3
jne 0x41243c
mov esi, dword [eax + 0xc]
push esi
lea ecx, [esp + 0x148]
call fcn.00401c20
mov edi, 0x10
mov byte [esp + 0x56c], 5
cmp dword [eax + 0x18], edi
jb 0x412460
mov eax, dword [eax + 4]
jmp 0x412463
add eax, 4
lea ecx, [esp + 0xa8]
push ecx
mov edx, eax
call fcn.00401c90
lea ecx, [esp + 0x144]
mov byte [esp + 0x56c], bl
call fcn.00401c60
push esi
lea ecx, [esp + 0x148]
call fcn.00401c20
mov byte [esp + 0x56c], 6
cmp dword [eax + 0x18], edi
jb 0x4124a4
mov eax, dword [eax + 4]
jmp 0x4124a7
add eax, 4
lea edx, [esp + 0xc4]
push edx
mov edx, eax
call fcn.00401c90
lea ecx, [esp + 0x144]
mov byte [esp + 0x56c], bl
call fcn.00401c60
lea eax, [esp + 0xa8]
push eax
mov edx, 0x52c23c
call fcn.004057b0
cmp eax, 0xffffffff
je 0x41257f
lea ecx, [esp + 0xa8]
push ecx
mov edx, 0x52c23c
call fcn.004057b0
mov edx, dword [esp + 0xbc]
mov edi, eax
push edx
lea ecx, [edi + 1]
lea esi, [esp + 0x148]
lea edx, [esp + 0xac]
call fcn.00401cd0
push 0xffffffffffffffff
push 0
push eax
lea ecx, [esp + 0xb4]
mov byte [esp + 0x578], 7
call fcn.00401e70
mov ecx, esi
mov byte [esp + 0x56c], bl
call fcn.00401c60
push edi
xor ecx, ecx
lea esi, [esp + 0x148]
lea edx, [esp + 0xc8]
call fcn.00401cd0
push 0xffffffffffffffff
push 0
push eax
lea ecx, [esp + 0xd0]
mov byte [esp + 0x578], 8
call fcn.00401e70
mov ecx, esi
mov byte [esp + 0x56c], bl
call fcn.00401c60
mov edi, 0x10
cmp dword [esp + 0xdc], edi
jb 0x412595
mov eax, dword [esp + 0xc8]
mov dword [esp + 0x1c], eax
jmp 0x4125a0
lea ecx, [esp + 0xc8]
mov dword [esp + 0x1c], ecx
mov eax, dword [esp + 0x28]
test eax, eax
je 0x414702
lea edx, [eax + 1]
nop
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x4125b0
sub eax, edx
je 0x414702
mov edi, dword [esp + 0x30]
test edi, edi
je 0x414702
mov eax, edi
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x4125d0
sub eax, edx
je 0x414702
mov ebx, dword [esp + 0x20]
test ebx, ebx
je 0x414702
mov eax, ebx
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x4125f0
sub eax, edx
je 0x414702
test ebp, ebp
je 0x414702
mov eax, ebp
lea edx, [eax + 1]
lea esp, [esp]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x412610
sub eax, edx
je 0x414702
cmp dword [esp + 0x1c], 0
je 0x414702
mov eax, dword [esp + 0x1c]
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x412631
sub eax, edx
je 0x414702
mov eax, edi
call fcn.00415070
test eax, eax
jne 0x412686
mov edx, dword [esp + 0x24]
push edx
call fcn.00418ee0
add esp, 4
lea ecx, [esp + 0xc4]
call fcn.00401c60
lea ecx, [esp + 0xa8]
call fcn.00401c60
lea ecx, [esp + 0xe0]
call fcn.00401c60
mov eax, 0xfffffff6
jmp 0x41476c
lea eax, [esp + 0x20]
push eax
mov eax, ebp
mov dword [esp + 0x24], 0
call fcn.00414c30
mov eax, dword [esp + 0x24]
movzx esi, byte [eax]
add esp, 4
and esi, reloc.WS2_32.dll_accept
jns 0x4126b1
dec esi
or esi, 0xfffffffe
inc esi
neg esi
sbb esi, esi
push eax
neg esi
call fcn.00429469
add esp, 4
mov dword [esp + 0xa4], 0xf
mov dword [esp + 0xa0], 0
mov byte [esp + 0x90], 0
mov byte [esp + 0x56c], 9
cmp esi, 1
jne 0x412738
lea ecx, [esp + 0x8c]
push ecx
mov edx, str.inilinecrossex
call fcn.00401c90
lea edx, [esp + 0x8c]
push edx
mov edx, dword [esp + 0x2c]
call fcn.00401cb0
lea eax, [esp + 0x8c]
push eax
mov edx, edi
call fcn.00401cb0
lea ecx, [esp + 0x8c]
push ecx
mov edx, ebx
call fcn.00401cb0
lea edx, [esp + 0x8c]
push edx
mov edx, ebp
jmp 0x412783
lea eax, [esp + 0x8c]
push eax
mov edx, ebp
call fcn.00401c90
lea ecx, [esp + 0x8c]
push ecx
mov edx, ebx
call fcn.00401cb0
lea edx, [esp + 0x8c]
push edx
mov edx, edi
call fcn.00401cb0
mov edx, dword [esp + 0x28]
lea eax, [esp + 0x8c]
push eax
call fcn.00401cb0
lea ecx, [esp + 0x8c]
push ecx
mov edx, str.inilinecrossex
call fcn.00401cb0
mov eax, dword [esp + 0x28]
mov ecx, 0x52c230
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x4127b1
test dl, dl
je 0x4127ad
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x4127b1
add eax, 2
add ecx, 2
test dl, dl
jne 0x412791
xor eax, eax
jmp 0x4127b6
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne 0x412843
mov byte [esp + 0x134], 0xf1
mov byte [esp + 0x135], 0xe2
mov byte [esp + 0x136], 0xd3
mov byte [esp + 0x137], 0xc4
mov byte [esp + 0x138], 0xb5
mov byte [esp + 0x139], 0xa6
mov byte [esp + 0x13a], 0x97
mov byte [esp + 0x13b], 0x86
mov byte [esp + 0x13c], 0x77
mov byte [esp + 0x13d], 0x68
mov byte [esp + 0x13e], 0x59
mov byte [esp + 0x13f], 0x4a
mov byte [esp + 0x140], 0x3b
mov byte [esp + 0x141], 0x4c
mov byte [esp + 0x142], 0x5d
mov byte [esp + 0x143], 0x6e
jmp 0x4128c3
mov byte [esp + 0x134], 0xa1
mov byte [esp + 0x135], 0x7c
mov byte [esp + 0x136], 0x19
mov byte [esp + 0x137], 0xfc
mov byte [esp + 0x138], 0x3b
mov byte [esp + 0x139], 0xb5
mov byte [esp + 0x13a], 0x71
mov byte [esp + 0x13b], 0xa3
mov byte [esp + 0x13c], 0x51
mov byte [esp + 0x13d], 0xea
mov byte [esp + 0x13e], 0xe1
mov byte [esp + 0x13f], 0x6d
mov byte [esp + 0x140], 0xd
mov byte [esp + 0x141], 0x56
mov byte [esp + 0x142], 0x99
mov byte [esp + 0x143], 0x2e
mov ecx, dword [esp + 0x90]
xor eax, eax
cmp dword [esp + 0xa4], 0x10
mov byte [esp + 0x144], 0
mov dword [esp + 0x145], eax
mov dword [esp + 0x149], eax
mov dword [esp + 0x14d], eax
mov dword [esp + 0x151], eax
mov dword [esp + 0x155], eax
mov dword [esp + 0x159], eax
mov dword [esp + 0x15d], eax
mov word [esp + 0x161], ax
mov byte [esp + 0x163], al
mov byte [esp + 0x33c], al
mov dword [esp + 0x33d], eax
mov dword [esp + 0x341], eax
mov dword [esp + 0x345], eax
mov dword [esp + 0x349], eax
mov dword [esp + 0x34d], eax
mov dword [esp + 0x351], eax
mov dword [esp + 0x355], eax
mov word [esp + 0x359], ax
mov byte [esp + 0x35b], al
mov byte [esp + 0x32c], al
mov dword [esp + 0x32d], eax
mov dword [esp + 0x331], eax
mov dword [esp + 0x335], eax
mov word [esp + 0x339], ax
mov byte [esp + 0x33b], al
jae 0x412997
lea ecx, [esp + 0x90]
mov edx, dword [esp + 0xa0]
push edx
lea edx, [esp + 0x148]
call fcn.00414cb0
add esp, 4
xor eax, eax
mov cl, byte [esp + eax + 0x144]
xor cl, byte [esp + eax + 0x134]
inc eax
cmp eax, 0x10
mov byte [esp + eax + 0x33b], cl
jl 0x4129b0
xor eax, eax
lea ecx, [eax + 0x10]
mov dl, byte [esp + eax + 0x154]
xor dl, byte [esp + eax + 0x134]
inc eax
sub ecx, 1
mov byte [esp + eax + 0x34b], dl
jne 0x4129d0
xor eax, eax
lea ecx, [ecx]
mov cl, byte [esp + eax + 0x134]
xor cl, byte [esp + eax + 0x154]
inc eax
xor cl, byte [esp + eax + 0x143]
cmp eax, 0x10
mov byte [esp + eax + 0x32b], cl
jl 0x4129f0
mov eax, dword [esp + 0x1c]
mov dword [esp + 0x20], 0
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x412a21
sub eax, edx
lea edx, [esp + 0x20]
push edx
push eax
mov eax, dword [esp + 0x24]
push eax
call fcn.0041be00
mov esi, dword [esp + 0x2c]
xor edi, edi
add esp, 0xc
cmp esi, edi
jne 0x412a65
mov ecx, dword [esp + 0x24]
push ecx
call fcn.00418ee0
add esp, 4
lea ecx, [esp + 0x8c]
call fcn.00401c60
jmp 0x41470f
lea edx, [esp + 0x20]
push edx
push eax
push esi
lea eax, [esp + 0x338]
push eax
lea ecx, [esp + 0x34c]
push ecx
mov dword [esp + 0x34], edi
call fcn.00414d10
add esp, 0x14
mov ebx, eax
push esi
mov dword [esp + 0x30], ebx
call fcn.00429469
add esp, 4
cmp ebx, edi
jg 0x412ae2
mov edx, dword [esp + 0x24]
push edx
call fcn.00418ee0
add esp, 4
lea ecx, [esp + 0x8c]
call fcn.00401c60
lea ecx, [esp + 0xc4]
call fcn.00401c60
lea ecx, [esp + 0xa8]
call fcn.00401c60
lea ecx, [esp + 0xe0]
call fcn.00401c60
mov eax, 0xfffffffc
jmp 0x41476c
mov eax, dword [esp + 0x28]
mov dword [esp + 0x60], edi
mov ecx, 0x52c250
nop
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x412b10
test dl, dl
je 0x412b0c
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x412b10
add eax, 2
add ecx, 2
test dl, dl
jne 0x412af0
xor eax, eax
jmp 0x412b15
sbb eax, eax
sbb eax, 0xffffffff
mov esi, dword [esp + 0x20]
cmp eax, edi
jne 0x412b43
push ebx
call fcn.00429546
add esp, 4
push ebx
mov edi, eax
push 0
push edi
mov dword [esp + 0x6c], edi
call fcn.0042fdd0
add esp, 0xc
push ebx
push esi
push edi
call fcn.004360d0
add esp, 0xc
push esi
mov edx, ebx
call fcn.00418e10
add esp, 4
mov edi, eax
mov dword [esp + 0x1c], edi
test esi, esi
je 0x412b61
push esi
call fcn.00429469
add esp, 4
test edi, edi
jne 0x412baa
mov eax, dword [esp + 0x24]
push eax
call fcn.00418ee0
add esp, 4
lea ecx, [esp + 0x8c]
call fcn.00401c60
lea ecx, [esp + 0xc4]
call fcn.00401c60
lea ecx, [esp + 0xa8]
call fcn.00401c60
lea ecx, [esp + 0xe0]
call fcn.00401c60
lea eax, [edi - 5]
jmp 0x41476c
mov ebx, dword [esp + 0x1c]
push 0x52c254
mov eax, ebx
call fcn.00402880
mov ecx, eax
call fcn.00412030
mov esi, eax
push str.browser
mov eax, ebx
mov dword [esp + 0x13c], edx
call fcn.00402880
mov ecx, eax
call fcn.00412030
mov edi, eax
push str.modules
mov eax, ebx
mov dword [esp + 0x13c], edx
call fcn.00402880
mov ecx, dword [eax]
mov edx, dword [eax + 8]
mov ebx, dword [eax + 4]
mov ebp, dword [eax + 0xc]
mov dword [esp + 0x6c], ecx
mov ecx, dword [eax + 0x10]
mov dword [esp + 0x74], edx
mov edx, dword [eax + 0x14]
mov eax, dword [esp + 0x1c]
push str.domains
mov dword [esp + 0x74], ebx
mov dword [esp + 0x7c], ebp
mov dword [esp + 0x80], ecx
mov dword [esp + 0x84], edx
call fcn.00402880
mov ecx, dword [eax]
mov edx, dword [eax + 4]
mov dword [esp + 0x3c], ecx
mov ecx, dword [eax + 8]
mov dword [esp + 0x40], edx
mov edx, dword [eax + 0xc]
mov dword [esp + 0x44], ecx
mov ecx, dword [eax + 0x10]
mov dword [esp + 0x48], edx
mov edx, dword [eax + 0x14]
mov eax, dword [esp + 0x1c]
push str.type
mov dword [esp + 0x50], ecx
mov dword [esp + 0x54], edx
call fcn.00402880
mov ecx, eax
call fcn.00412030
mov dword [esp + 0x134], eax
and esi, 1
xor eax, eax
or esi, eax
mov dword [esp + 0x138], edx
jne 0x412cd6
mov eax, dword [esp + 0x24]
push eax
call fcn.00418ee0
mov ecx, dword [esp + 0x20]
add esp, 4
push ecx
call fcn.00418ee0
add esp, 4
lea ecx, [esp + 0x8c]
call fcn.00401c60
lea ecx, [esp + 0xc4]
call fcn.00401c60
lea ecx, [esp + 0xa8]
call fcn.00401c60
lea ecx, [esp + 0xe0]
call fcn.00401c60
lea eax, [esi - 6]
jmp 0x41476c
and edi, 0x10
xor eax, eax
or edi, eax
jne 0x412d31
mov edx, dword [esp + 0x24]
push edx
call fcn.00418ee0
mov eax, dword [esp + 0x20]
add esp, 4
push eax
call fcn.00418ee0
add esp, 4
lea ecx, [esp + 0x8c]
call fcn.00401c60
lea ecx, [esp + 0xc4]
call fcn.00401c60
lea ecx, [esp + 0xa8]
call fcn.00401c60
lea ecx, [esp + 0xe0]
call fcn.00401c60
lea eax, [edi - 7]
jmp 0x41476c
cmp ebx, 2
jne 0x412ef3
mov esi, dword [esp + 0x74]
cmp esi, 1
jne 0x412e3b
test esi, esi
jbe 0x412d50
mov ebp, dword [ebp]
jmp 0x412d55
mov ebp, 0x549f88
cmp dword [ebp + 4], 5
mov eax, 0x5255b3
jne 0x412d63
mov eax, dword [ebp + 0xc]
mov ecx, 0x52b710
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x412d88
test dl, dl
je 0x412d84
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x412d88
add eax, 2
add ecx, 2
test dl, dl
jne 0x412d68
xor eax, eax
jmp 0x412d8d
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne 0x412e3b
mov edi, dword [esp + 0x30]
lea ecx, [esp + 0x144]
push edi
push ecx
call fcn.00412060
add esp, 8
mov ecx, dword [esp + 0x64]
push 0xffffffffffffffff
push 0
push eax
mov byte [esp + 0x578], 0xa
call fcn.00401e70
lea ecx, [esp + 0x144]
mov byte [esp + 0x56c], 9
call fcn.00401c60
mov eax, edi
call fcn.00415070
dec eax
cmp eax, 0x7a9b7e
jbe 0x412ef3
mov edx, dword [esp + 0x24]
push edx
call fcn.00418ee0
mov eax, dword [esp + 0x20]
add esp, 4
push eax
call fcn.00418ee0
add esp, 4
lea ecx, [esp + 0x8c]
call fcn.00401c60
lea ecx, [esp + 0xc4]
call fcn.00401c60
lea ecx, [esp + 0xa8]
call fcn.00401c60
lea ecx, [esp + 0xe0]
call fcn.00401c60
mov eax, 0xfffffff8
jmp 0x41476c
mov edx, dword [esp + 0x68]
lea ecx, [esp + 0x20]
push ecx
push 0x525748
push edx
mov dword [esp + 0x2c], 0
call fcn.00429a57
mov ebx, eax
add esp, 0xc
test ebx, ebx
je 0x412ef3
xor edi, edi
test esi, esi
jbe 0x412ebe
lea ebp, [edi + 5]
lea ecx, [ecx]
mov ecx, edi
lea eax, [esp + 0x6c]
call fcn.00412010
cmp dword [eax + 4], ebp
je 0x412e87
mov eax, 0x5255b3
jmp 0x412e8a
mov eax, dword [eax + 0xc]
mov ecx, ebx
lea esp, [esp]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x412eb0
test dl, dl
je 0x412eac
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x412eb0
add eax, 2
add ecx, 2
test dl, dl
jne 0x412e90
xor eax, eax
jmp 0x412eb5
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
je 0x412ed5
inc edi
cmp edi, esi
jb 0x412e70
mov ecx, dword [esp + 0x24]
push ecx
call fcn.00418ee0
mov edx, dword [esp + 0x20]
add esp, 4
push edx
jmp 0x412df9
lea eax, [esp + 0x20]
push eax
push 0x525748
push 0
call fcn.00429a57
mov ebx, eax
add esp, 0xc
test ebx, ebx
jne 0x412e64
mov eax, dword [esp + 0x28]
mov ecx, 0x52c230
lea esp, [esp]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x412f20
test dl, dl
je 0x412f1c
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x412f20
add eax, 2
add ecx, 2
test dl, dl
jne 0x412f00
xor eax, eax
jmp 0x412f25
sbb eax, eax
sbb eax, 0xffffffff
xor ebp, ebp
cmp eax, ebp
jne 0x4132ad
mov eax, dword [esp + 0x38]
push eax
lea ecx, [esp + 0x70]
call fcn.00401c20
mov byte [esp + 0x56c], 0xb
mov ecx, dword [esp + 0x70]
mov esi, 0x10
cmp dword [esp + 0x84], esi
jae 0x412f5b
lea ecx, [esp + 0x70]
lea edi, [esp + 0x144]
call fcn.00414e90
push 0xffffffffffffffff
push ebp
push eax
lea ecx, [esp + 0x78]
mov byte [esp + 0x578], 0xc
call fcn.00401e70
mov ecx, edi
call fcn.00401c60
mov ebx, dword [esp + 0x70]
cmp dword [esp + 0x84], esi
jae 0x412f94
lea ebx, [esp + 0x70]
call fcn.004147a0
test al, al
je 0x4130d3
push 0x5879
call fcn.00429546
mov esi, 0x53ed48
add esp, 4
mov ecx, eax
sub esi, eax
mov edi, 0x5879
lea esp, [esp]
mov dl, byte [esi + ecx]
xor dl, 0xbf
mov byte [ecx], dl
inc ecx
sub edi, 1
jne 0x412fc0
xor ebx, ebx
mov ecx, 0xf
mov dword [esp + 0x114], ecx
mov dword [esp + 0x110], ebx
mov byte [esp + 0x100], bl
mov dword [esp + 0x130], ecx
mov dword [esp + 0x12c], ebx
mov byte [esp + 0x11c], bl
lea ecx, [esp + 0xfc]
push ecx
mov edx, eax
mov byte [esp + 0x570], 0xe
call fcn.00401c90
push 1
lea edx, [esp + 0x1c]
push edx
lea eax, [esp + 0x104]
push eax
xor eax, eax
xor esi, esi
mov byte [esp + 0x24], 0x2c
call fcn.00405a10
mov edi, eax
cmp edi, 0xffffffff
je 0x4130bc
mov byte [esp + 0x18], 0x2c
mov eax, edi
sub eax, esi
mov ecx, esi
push eax
lea esi, [esp + 0x148]
lea edx, [esp + 0x100]
call fcn.00401cd0
push 0xffffffffffffffff
push ebx
push eax
lea ecx, [esp + 0x124]
mov byte [esp + 0x578], 0xf
call fcn.00401e70
mov ecx, esi
mov byte [esp + 0x56c], 0xe
call fcn.00401c60
lea eax, [esp + 0x6c]
lea edx, [esp + 0x118]
call fcn.0040a5f0
test eax, eax
je 0x413263
push 1
lea ecx, [esp + 0x1c]
push ecx
lea edx, [esp + 0x104]
lea esi, [edi + 1]
push edx
mov eax, esi
call fcn.00405a10
mov edi, eax
cmp edi, 0xffffffff
jne 0x413043
mov eax, dword [esp + 0x24]
push eax
call fcn.00418ee0
mov ecx, dword [esp + 0x20]
add esp, 4
push ecx
jmp 0x413200
push 0x30ad
call fcn.00429546
mov esi, 0x53bc98
add esp, 4
mov ecx, eax
sub esi, eax
mov edi, 0x30ad
mov edi, edi
mov dl, byte [esi + ecx]
xor dl, 0xbf
mov byte [ecx], dl
inc ecx
sub edi, 1
jne 0x4130f0
xor ebx, ebx
mov ecx, 0xf
mov dword [esp + 0x114], ecx
mov dword [esp + 0x110], ebx
mov byte [esp + 0x100], bl
mov dword [esp + 0x130], ecx
mov dword [esp + 0x12c], ebx
mov byte [esp + 0x11c], bl
lea ecx, [esp + 0xfc]
push ecx
mov edx, eax
mov byte [esp + 0x570], 0x11
call fcn.00401c90
push 1
lea edx, [esp + 0x1c]
push edx
lea eax, [esp + 0x104]
push eax
xor eax, eax
xor esi, esi
mov byte [esp + 0x24], 0x2c
call fcn.00405a10
mov edi, eax
cmp edi, 0xffffffff
je 0x4131ee
mov byte [esp + 0x18], 0x2c
mov eax, edi
sub eax, esi
mov ecx, esi
push eax
lea esi, [esp + 0x148]
lea edx, [esp + 0x100]
call fcn.00401cd0
push 0xffffffffffffffff
push ebx
push eax
lea ecx, [esp + 0x124]
mov byte [esp + 0x578], 0x12
call fcn.00401e70
mov ecx, esi
mov byte [esp + 0x56c], 0x11
call fcn.00401c60
lea ecx, [esp + 0x6c]
push ecx
lea eax, [esp + 0x11c]
call fcn.00415670
cmp eax, 0xffffffff
jg 0x413263
push 1
lea edx, [esp + 0x1c]
push edx
lea eax, [esp + 0x104]
lea esi, [edi + 1]
push eax
mov eax, esi
call fcn.00405a10
mov edi, eax
cmp edi, 0xffffffff
jne 0x413173
mov ecx, dword [esp + 0x24]
push ecx
call fcn.00418ee0
mov edx, dword [esp + 0x20]
add esp, 4
push edx
call fcn.00418ee0
add esp, 4
lea ecx, [esp + 0x118]
call fcn.00401c60
lea ecx, [esp + 0xfc]
call fcn.00401c60
lea ecx, [esp + 0x6c]
call fcn.00401c60
lea ecx, [esp + 0x8c]
call fcn.00401c60
lea ecx, [esp + 0xc4]
call fcn.00401c60
lea ecx, [esp + 0xa8]
call fcn.00401c60
lea ecx, [esp + 0xe0]
call fcn.00401c60
mov eax, 0xfffffff7
jmp 0x41476c
lea ecx, [esp + 0x118]
call fcn.00401c60
lea ecx, [esp + 0xfc]
call fcn.00401c60
lea ecx, [esp + 0x6c]
mov byte [esp + 0x56c], 9
call fcn.00401c60
cmp dword [esp + 0x44], 1
jne 0x414386
cmp dword [esp + 0x40], 2
jne 0x414273
mov eax, dword [esp + 0x48]
mov eax, dword [eax]
jmp 0x414278
mov al, 0x2d
mov cl, 0x41
mov dl, 0x49
mov byte [esp + 0x164], al
mov byte [esp + 0x165], al
mov byte [esp + 0x166], al
mov byte [esp + 0x167], al
mov byte [esp + 0x168], al
mov byte [esp + 0x169], 0x42
mov byte [esp + 0x16a], 0x45
mov byte [esp + 0x16b], 0x47
mov byte [esp + 0x16c], dl
mov byte [esp + 0x16d], 0x4e
mov byte [esp + 0x16e], 0x20
mov byte [esp + 0x16f], 0x50
mov byte [esp + 0x170], 0x55
mov byte [esp + 0x171], 0x42
mov byte [esp + 0x172], 0x4c
mov byte [esp + 0x173], dl
mov byte [esp + 0x174], 0x43
mov byte [esp + 0x175], 0x20
mov byte [esp + 0x176], 0x4b
mov byte [esp + 0x177], 0x45
mov byte [esp + 0x178], 0x59
mov byte [esp + 0x179], al
mov byte [esp + 0x17a], al
mov byte [esp + 0x17b], al
mov byte [esp + 0x17c], al
mov byte [esp + 0x17d], al
mov byte [esp + 0x17e], 0xa
mov byte [esp + 0x17f], 0x4d
mov byte [esp + 0x180], dl
mov byte [esp + 0x181], dl
mov byte [esp + 0x182], 0x42
mov byte [esp + 0x183], dl
mov byte [esp + 0x184], 0x6a
mov byte [esp + 0x185], cl
mov byte [esp + 0x186], 0x4e
mov byte [esp + 0x187], 0x42
mov byte [esp + 0x188], 0x67
mov byte [esp + 0x189], 0x6b
mov byte [esp + 0x18a], 0x71
mov byte [esp + 0x18b], 0x68
mov byte [esp + 0x18c], 0x6b
mov byte [esp + 0x18d], 0x69
mov byte [esp + 0x18e], 0x47
mov byte [esp + 0x18f], 0x39
mov byte [esp + 0x190], 0x77
mov byte [esp + 0x191], 0x30
mov byte [esp + 0x192], 0x42
mov byte [esp + 0x193], cl
mov byte [esp + 0x194], 0x51
mov byte [esp + 0x195], 0x45
mov byte [esp + 0x196], 0x46
mov byte [esp + 0x197], cl
mov byte [esp + 0x198], cl
mov byte [esp + 0x199], 0x4f
mov byte [esp + 0x19a], 0x43
mov byte [esp + 0x19b], cl
mov byte [esp + 0x19c], 0x51
mov byte [esp + 0x19d], 0x38
mov byte [esp + 0x19e], cl
mov byte [esp + 0x19f], 0x4d
mov byte [esp + 0x1a0], dl
mov byte [esp + 0x1a1], dl
mov byte [esp + 0x1a2], 0x42
mov byte [esp + 0x1a3], 0x43
mov byte [esp + 0x1a4], 0x67
mov byte [esp + 0x1a5], 0x4b
mov byte [esp + 0x1a6], 0x43
mov byte [esp + 0x1a7], cl
mov byte [esp + 0x1a8], 0x51
mov byte [esp + 0x1a9], 0x45
mov byte [esp + 0x1aa], cl
mov byte [esp + 0x1ab], 0x35
mov byte [esp + 0x1ac], 0x6a
mov byte [esp + 0x1ad], 0x6c
mov byte [esp + 0x1ae], 0x4a
mov byte [esp + 0x1af], 0x38
mov byte [esp + 0x1b0], 0x73
mov byte [esp + 0x1b1], 0x63
mov bl, 0x48
mov byte [esp + 0x1b2], 0x69
mov byte [esp + 0x1b3], 0x44
mov byte [esp + 0x1b4], 0x5a
mov byte [esp + 0x1b5], 0x2b
mov byte [esp + 0x1b6], 0x72
mov byte [esp + 0x1b7], 0x68
mov byte [esp + 0x1b8], 0x71
mov byte [esp + 0x1b9], 0x68
mov byte [esp + 0x1ba], 0x43
mov byte [esp + 0x1bb], 0x4f
mov byte [esp + 0x1bc], 0x56
mov byte [esp + 0x1bd], 0x64
mov byte [esp + 0x1be], bl
mov byte [esp + 0x1bf], 0x36
mov byte [esp + 0x1c0], 0x38
mov byte [esp + 0x1c1], bl
mov byte [esp + 0x1c2], 0x79
mov byte [esp + 0x1c3], cl
mov byte [esp + 0x1c4], 0x6a
mov byte [esp + 0x1c5], 0x63
mov byte [esp + 0x1c6], 0x76
mov byte [esp + 0x1c7], 0x37
mov byte [esp + 0x1c8], 0x4e
mov byte [esp + 0x1c9], 0x6d
mov byte [esp + 0x1ca], 0xa
mov byte [esp + 0x1cb], bl
mov byte [esp + 0x1cc], 0x37
mov byte [esp + 0x1cd], 0x32
mov byte [esp + 0x1ce], 0x56
mov byte [esp + 0x1cf], 0x71
mov byte [esp + 0x1d0], 0x6e
mov byte [esp + 0x1d1], 0x79
mov byte [esp + 0x1d2], 0x2b
mov byte [esp + 0x1d3], 0x61
mov byte [esp + 0x1d4], 0x71
mov byte [esp + 0x1d5], 0x69
mov byte [esp + 0x1d6], 0x6b
mov byte [esp + 0x1d7], 0x63
mov byte [esp + 0x1d8], 0x39
mov byte [esp + 0x1d9], 0x66
mov byte [esp + 0x1da], 0x67
mov byte [esp + 0x1db], 0x69
mov byte [esp + 0x1dc], 0x6e
mov byte [esp + 0x1dd], 0x59
mov byte [esp + 0x1de], 0x77
mov byte [esp + 0x1df], 0x33
mov byte [esp + 0x1e0], 0x4f
mov byte [esp + 0x1e1], 0x51
mov byte [esp + 0x1e2], 0x66
mov byte [esp + 0x1e3], 0x39
mov byte [esp + 0x1e4], 0x64
mov byte [esp + 0x1e5], 0x2b
mov byte [esp + 0x1e6], 0x31
mov byte [esp + 0x1e7], 0x6c
mov byte [esp + 0x1e8], 0x47
mov byte [esp + 0x1e9], 0x6c
mov byte [esp + 0x1ea], 0x7a
mov byte [esp + 0x1eb], bl
mov byte [esp + 0x1ec], 0x64
mov byte [esp + 0x1ed], 0x39
mov byte [esp + 0x1ee], 0x75
mov byte [esp + 0x1ef], bl
mov byte [esp + 0x1f0], 0x4f
mov byte [esp + 0x1f1], 0x78
mov byte [esp + 0x1f2], 0x65
mov byte [esp + 0x1f3], 0x39
mov byte [esp + 0x1f4], 0x6b
mov byte [esp + 0x1f5], 0x72
mov byte [esp + 0x1f6], 0x78
mov byte [esp + 0x1f7], 0x54
mov byte [esp + 0x1f8], 0x46
mov byte [esp + 0x1f9], 0x73
mov byte [esp + 0x1fa], 0x6b
mov byte [esp + 0x1fb], 0x31
mov byte [esp + 0x1fc], 0x69
mov byte [esp + 0x1fd], 0x4a
mov byte [esp + 0x1fe], dl
mov byte [esp + 0x1ff], 0x42
mov byte [esp + 0x200], 0x77
mov byte [esp + 0x201], 0x35
mov byte [esp + 0x202], 0x6f
mov byte [esp + 0x203], 0x39
mov byte [esp + 0x204], 0x75
mov byte [esp + 0x205], 0x5a
mov byte [esp + 0x206], 0x66
mov byte [esp + 0x207], 0x59
mov byte [esp + 0x208], 0x73
mov byte [esp + 0x209], 0x45
mov byte [esp + 0x20a], 0x6c
mov byte [esp + 0x20b], 0x44
mov byte [esp + 0x20c], 0x62
mov byte [esp + 0x20d], 0x50
mov byte [esp + 0x20e], 0x4d
mov byte [esp + 0x20f], 0x4e
mov byte [esp + 0x210], 0x30
mov byte [esp + 0x211], cl
mov byte [esp + 0x212], 0x77
mov byte [esp + 0x213], 0x33
mov byte [esp + 0x214], cl
mov byte [esp + 0x215], 0x39
mov byte [esp + 0x216], 0xa
mov byte [esp + 0x217], 0x6e
mov byte [esp + 0x218], 0x58
mov byte [esp + 0x219], 0x31
mov byte [esp + 0x21a], 0x55
mov byte [esp + 0x21b], 0x4f
mov byte [esp + 0x21c], 0x32
mov byte [esp + 0x21d], 0x73
mov byte [esp + 0x21e], 0x37
mov byte [esp + 0x21f], 0x57
mov byte [esp + 0x220], 0x38
mov byte [esp + 0x221], 0x67
mov byte [esp + 0x222], 0x52
mov byte [esp + 0x223], 0x74
mov byte [esp + 0x224], 0x67
mov byte [esp + 0x225], 0x68
mov byte [esp + 0x226], 0x74
mov byte [esp + 0x227], 0x54
mov byte [esp + 0x228], 0x52
mov byte [esp + 0x229], 0x4c
mov byte [esp + 0x22a], 0x58
mov byte [esp + 0x22b], 0x78
mov byte [esp + 0x22c], 0x4e
mov byte [esp + 0x22d], 0x56
mov byte [esp + 0x22e], bl
mov byte [esp + 0x22f], 0x53
mov byte [esp + 0x230], 0x32
mov byte [esp + 0x231], 0x68
mov byte [esp + 0x232], 0x77
mov byte [esp + 0x233], 0x62
mov byte [esp + 0x234], 0x6f
mov byte [esp + 0x235], 0x36
mov byte [esp + 0x236], 0x32
mov byte [esp + 0x237], 0x4a
mov byte [esp + 0x238], 0x6f
mov byte [esp + 0x239], bl
mov byte [esp + 0x23a], 0x75
mov byte [esp + 0x23b], 0x6a
mov byte [esp + 0x23c], 0x42
mov byte [esp + 0x23d], dl
mov byte [esp + 0x23e], 0x77
mov byte [esp + 0x23f], 0x35
mov byte [esp + 0x240], 0x4d
mov byte [esp + 0x241], 0x4e
mov byte [esp + 0x242], 0x65
mov byte [esp + 0x243], 0x36
mov byte [esp + 0x244], 0x79
mov byte [esp + 0x245], 0x47
mov byte [esp + 0x246], 0x77
mov byte [esp + 0x247], 0x73
mov byte [esp + 0x248], 0x68
mov byte [esp + 0x249], cl
mov byte [esp + 0x24a], 0x62
mov byte [esp + 0x24b], 0x30
mov byte [esp + 0x24c], 0x35
mov byte [esp + 0x24d], 0x74
mov byte [esp + 0x24e], 0x54
mov byte [esp + 0x24f], 0x33
mov byte [esp + 0x250], 0x65
mov byte [esp + 0x251], dl
mov byte [esp + 0x252], 0x66
mov byte [esp + 0x253], 0x6f
mov byte [esp + 0x254], 0x59
mov byte [esp + 0x255], 0x6c
mov byte [esp + 0x256], 0x77
mov byte [esp + 0x257], 0x44
mov byte [esp + 0x258], 0x74
mov byte [esp + 0x259], 0x79
mov byte [esp + 0x25a], 0x79
mov byte [esp + 0x25b], 0x78
mov byte [esp + 0x25c], 0x6a
mov byte [esp + 0x25d], 0x62
mov byte [esp + 0x25e], 0x74
mov byte [esp + 0x25f], 0x34
mov byte [esp + 0x260], 0x75
mov byte [esp + 0x261], 0x72
mov byte [esp + 0x262], 0xa
mov byte [esp + 0x263], 0x71
mov byte [esp + 0x264], 0x2b
mov byte [esp + 0x265], 0x67
mov byte [esp + 0x266], 0x63
mov byte [esp + 0x267], 0x65
mov byte [esp + 0x268], 0x64
mov byte [esp + 0x269], 0x75
mov byte [esp + 0x26a], 0x57
mov byte [esp + 0x26b], 0x30
mov byte [esp + 0x26c], 0x4b
mov byte [esp + 0x26d], 0x79
mov byte [esp + 0x26e], 0x61
mov byte [esp + 0x26f], 0x30
mov byte [esp + 0x270], 0x35
mov byte [esp + 0x271], 0x59
mov byte [esp + 0x272], 0x52
mov byte [esp + 0x273], bl
mov byte [esp + 0x274], 0x56
mov byte [esp + 0x275], 0x61
mov byte [esp + 0x276], bl
mov byte [esp + 0x277], 0x4c
mov byte [esp + 0x278], 0x64
mov byte [esp + 0x279], 0x6d
mov byte [esp + 0x27a], 0x6d
mov byte [esp + 0x27b], 0x2b
mov byte [esp + 0x27c], 0x71
mov byte [esp + 0x27d], 0x43
mov byte [esp + 0x27e], 0x61
mov byte [esp + 0x27f], 0x6b
mov byte [esp + 0x280], 0x73
mov byte [esp + 0x281], 0x51
mov byte [esp + 0x282], 0x58
mov byte [esp + 0x283], 0x7a
mov byte [esp + 0x284], 0x2f
mov byte [esp + 0x285], 0x78
mov byte [esp + 0x286], 0x47
mov byte [esp + 0x287], 0x59
mov byte [esp + 0x288], 0x5a
mov byte [esp + 0x289], 0x55
mov byte [esp + 0x28a], 0x2f
mov byte [esp + 0x28b], 0x57
mov byte [esp + 0x28c], 0x71
mov byte [esp + 0x28d], 0x56
mov byte [esp + 0x28e], 0x73
mov byte [esp + 0x28f], 0x44
mov byte [esp + 0x290], 0x4e
mov byte [esp + 0x291], 0x69
mov byte [esp + 0x292], 0x57
mov byte [esp + 0x293], 0x68
mov byte [esp + 0x294], dl
mov byte [esp + 0x295], 0x5a
mov byte [esp + 0x296], 0x4d
mov byte [esp + 0x297], 0x70
mov byte [esp + 0x298], 0x74
mov byte [esp + 0x299], 0x54
mov byte [esp + 0x29a], 0x64
mov byte [esp + 0x29b], 0x6a
mov byte [esp + 0x29c], 0x45
mov byte [esp + 0x29d], 0x31
mov byte [esp + 0x29e], 0x62
mov byte [esp + 0x29f], 0x39
mov byte [esp + 0x2a0], 0x45
mov byte [esp + 0x2a1], 0x32
mov byte [esp + 0x2a2], 0x47
mov byte [esp + 0x2a3], 0x52
mov byte [esp + 0x2a4], 0x51
mov byte [esp + 0x2a5], 0x4d
mov byte [esp + 0x2a6], 0x6c
mov byte [esp + 0x2a7], 0x79
mov byte [esp + 0x2a8], 0x6d
mov byte [esp + 0x2a9], 0x45
mov byte [esp + 0x2aa], 0x2f
mov byte [esp + 0x2ab], 0x2f
mov byte [esp + 0x2ac], 0x51
mov byte [esp + 0x2ad], 0x68
mov byte [esp + 0x2ae], 0xa
mov byte [esp + 0x2af], 0x30
mov byte [esp + 0x2b0], 0x56
mov byte [esp + 0x2b1], 0x77
mov byte [esp + 0x2b2], 0x45
mov byte [esp + 0x2b3], 0x70
mov byte [esp + 0x2b4], 0x58
mov byte [esp + 0x2b5], 0x4a
mov byte [esp + 0x2b6], 0x54
mov byte [esp + 0x2b7], 0x35
mov byte [esp + 0x2b8], 0x7a
mov byte [esp + 0x2b9], 0x55
mov byte [esp + 0x2ba], 0x77
mov byte [esp + 0x2bb], 0x65
mov byte [esp + 0x2bc], 0x2b
mov byte [esp + 0x2bd], 0x71
mov byte [esp + 0x2be], 0x4f
mov byte [esp + 0x2bf], 0x38
mov byte [esp + 0x2c0], 0x2b
mov byte [esp + 0x2c1], 0x6d
mov byte [esp + 0x2c2], 0x6f
mov byte [esp + 0x2c3], 0x2f
mov byte [esp + 0x2c4], 0x70
mov byte [esp + 0x2c5], 0x61
mov byte [esp + 0x2c6], 0x4a
mov byte [esp + 0x2c7], 0x7a
mov byte [esp + 0x2c8], 0x2f
mov byte [esp + 0x2c9], 0x76
mov byte [esp + 0x2ca], bl
mov byte [esp + 0x2cb], 0x51
mov byte [esp + 0x2cc], 0x5a
mov byte [esp + 0x2cd], 0x4d
mov byte [esp + 0x2ce], 0x35
mov byte [esp + 0x2cf], 0x47
mov byte [esp + 0x2d0], 0x47
mov byte [esp + 0x2d1], 0x37
mov byte [esp + 0x2d2], 0x53
mov byte [esp + 0x2d3], 0x70
mov byte [esp + 0x2d4], 0x74
mov byte [esp + 0x2d5], 0x79
mov byte [esp + 0x2d6], 0x73
mov byte [esp + 0x2d7], 0x44
mov byte [esp + 0x2d8], 0x32
mov byte [esp + 0x2d9], dl
mov byte [esp + 0x2da], 0x79
mov byte [esp + 0x2db], cl
mov byte [esp + 0x2dc], 0x70
mov byte [esp + 0x2dd], 0x4e
mov byte [esp + 0x2de], cl
mov byte [esp + 0x2df], 0x46
mov byte [esp + 0x2e0], 0x6a
mov byte [esp + 0x2e1], 0x6d
mov byte [esp + 0x2e2], 0x73
mov byte [esp + 0x2e3], 0x65
mov byte [esp + 0x2e4], 0x74
mov byte [esp + 0x2e5], 0x62
mov byte [esp + 0x2e6], 0x51
mov byte [esp + 0x2e7], 0x2b
mov byte [esp + 0x2e8], 0x6d
mov byte [esp + 0x2e9], 0x66
mov byte [esp + 0x2ea], 0x6d
mov byte [esp + 0x2eb], 0x30
mov byte [esp + 0x2ec], 0x63
mov byte [esp + 0x2ed], 0x37
mov byte [esp + 0x2ee], 0x56
mov byte [esp + 0x2ef], 0x44
mov byte [esp + 0x2f0], 0x38
mov byte [esp + 0x2f1], 0x50
mov byte [esp + 0x2f2], 0x4a
mov byte [esp + 0x2f3], 0x42
mov byte [esp + 0x2f4], 0x38
mov byte [esp + 0x30d], al
mov byte [esp + 0x30e], al
mov byte [esp + 0x30f], al
mov byte [esp + 0x310], al
mov byte [esp + 0x311], al
mov byte [esp + 0x320], al
mov byte [esp + 0x321], al
mov byte [esp + 0x322], al
mov byte [esp + 0x323], al
mov byte [esp + 0x324], al
lea eax, [esp + 0x164]
push 0xffffffffffffffff
push eax
mov byte [esp + 0x2fd], 0x33
mov byte [esp + 0x2fe], 0x74
mov byte [esp + 0x2ff], 0x2f
mov byte [esp + 0x300], 0x32
mov byte [esp + 0x301], 0x50
mov byte [esp + 0x302], 0xa
mov byte [esp + 0x303], 0x46
mov byte [esp + 0x304], 0x4e
mov byte [esp + 0x305], 0x4a
mov byte [esp + 0x306], 0x70
mov byte [esp + 0x307], 0x47
mov byte [esp + 0x308], 0x51
mov byte [esp + 0x309], 0x66
mov byte [esp + 0x30a], 0x2f
mov byte [esp + 0x30b], bl
mov byte [esp + 0x30c], 0x4a
mov byte [esp + 0x30d], 0x51
mov byte [esp + 0x30e], dl
mov byte [esp + 0x30f], 0x44
mov byte [esp + 0x310], cl
mov byte [esp + 0x311], 0x51
mov byte [esp + 0x312], cl
mov byte [esp + 0x313], 0x42
mov byte [esp + 0x314], 0xa
mov byte [esp + 0x31a], 0x45
mov byte [esp + 0x31b], 0x4e
mov byte [esp + 0x31c], 0x44
mov byte [esp + 0x31d], 0x20
mov byte [esp + 0x31e], 0x50
mov byte [esp + 0x31f], 0x55
mov byte [esp + 0x320], 0x42
mov byte [esp + 0x321], 0x4c
mov byte [esp + 0x322], dl
mov byte [esp + 0x323], 0x43
mov byte [esp + 0x324], 0x20
mov byte [esp + 0x325], 0x4b
mov byte [esp + 0x326], 0x45
mov byte [esp + 0x327], 0x59
mov byte [esp + 0x32d], 0xa
mov dword [esp + 0x30], ebp
call fcn.004643e0
add esp, 8
cmp eax, ebp
jne 0x4140b4
push str.Failed_to_create_key_BIO
call fcn.0042d9d9
add esp, 4
jmp 0x413229
push ebp
push ebp
lea ecx, [esp + 0x30]
push ecx
push eax
call fcn.00464f70
add esp, 0x10
mov dword [esp + 0x28], eax
cmp eax, ebp
jne 0x4140de
push str.Failed_to_ras_key
call fcn.0042d9d9
add esp, 4
jmp 0x413229
cmp dword [esp + 0xc0], 0x10
mov eax, dword [esp + 0xac]
mov dword [esp + 0x20], ebp
jae 0x4140fa
lea eax, [esp + 0xac]
mov ecx, dword [esp + 0xbc]
lea edx, [esp + 0x20]
push edx
push ecx
push eax
call fcn.0041be00
add esp, 0xc
push 0xff
lea edx, [esp + 0x461]
push 0
push edx
mov byte [esp + 0x468], 0
call fcn.0042fdd0
mov esi, dword [esp + 0x2c]
add esp, 0xc
push 0xff
lea eax, [esp + 0x361]
mov ecx, 0x40
lea edi, [esp + 0x460]
push 0
rep movsd dword es:[edi], dword [esi]
push eax
mov byte [esp + 0x368], 0
call fcn.0042fdd0
mov ecx, dword [esp + 0x34]
add esp, 0xc
push 3
push ecx
lea edx, [esp + 0x364]
push edx
lea eax, [esp + 0x468]
push eax
push 0x100
call fcn.00464490
mov edi, dword [esp + 0x40]
xor eax, eax
add esp, 0x14
push edi
mov byte [esp + 0x148], 0
mov dword [esp + 0x149], eax
mov dword [esp + 0x14d], eax
mov dword [esp + 0x151], eax
mov dword [esp + 0x155], eax
mov dword [esp + 0x159], eax
mov dword [esp + 0x15d], eax
mov dword [esp + 0x161], eax
mov word [esp + 0x165], ax
mov byte [esp + 0x167], al
call fcn.00429546
add esp, 4
push edi
mov esi, eax
push 0
push esi
call fcn.0042fdd0
mov ebx, dword [esp + 0x6c]
add esp, 0xc
push edi
push ebx
push esi
call fcn.004360d0
add esp, 0xc
push edi
lea edx, [esp + 0x148]
mov ecx, esi
call fcn.00414cb0
add esp, 4
push esi
call fcn.00429469
add esp, 4
test ebx, ebx
je 0x414220
push ebx
call fcn.00429469
add esp, 4
lea ecx, [esp + 0x35c]
push 0x20
push ecx
call fcn.00464f40
push eax
call fcn.00464f40
push eax
mov eax, dword [esp + 0x38]
lea edx, [esp + 0x154]
push edx
push eax
call fcn.00464a30
add esp, 0x18
cmp eax, 1
je 0x41328c
mov ecx, dword [esp + 0x24]
push ecx
call fcn.00418ee0
mov edx, dword [esp + 0x20]
add esp, 4
push edx
call fcn.00418ee0
add esp, 4
jmp 0x413229
mov eax, 0x549f88
cmp dword [eax + 4], 5
je 0x414285
mov eax, 0x5255b3
jmp 0x414288
mov eax, dword [eax + 0xc]
mov ecx, 0x52b710
lea ecx, [ecx]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x4142b0
test dl, dl
je 0x4142ac
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x4142b0
add eax, 2
add ecx, 2
test dl, dl
jne 0x414290
xor eax, eax
jmp 0x4142b5
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne 0x414386
mov esi, dword [esp + 0x30]
lea ecx, [esp + 0x144]
push esi
push ecx
call fcn.00412060
add esp, 8
mov ebx, dword [esp + 0x64]
push 0xffffffffffffffff
push 0
push eax
mov ecx, ebx
mov byte [esp + 0x578], 0x13
call fcn.00401e70
lea ecx, [esp + 0x144]
mov byte [esp + 0x56c], 9
call fcn.00401c60
mov eax, esi
call fcn.00415070
dec eax
cmp eax, 0x7a9b7e
jbe 0x41432c
mov edx, dword [esp + 0x24]
push edx
call fcn.00418ee0
mov eax, dword [esp + 0x20]
add esp, 4
push eax
call fcn.00418ee0
add esp, 4
jmp 0x413229
mov ecx, dword [esp + 0x38]
lea edi, [esp + 0x144]
call fcn.00414e90
mov eax, 0x10
mov byte [esp + 0x56c], 0x14
cmp dword [ebx + 0x18], eax
jb 0x414353
mov ebx, dword [ebx + 4]
jmp 0x414356
add ebx, 4
mov edx, dword [esp + 0x148]
cmp dword [esp + 0x15c], eax
jae 0x41436d
lea edx, [esp + 0x148]
mov ecx, dword [esp + 0x34]
push ebx
call fcn.004150e0
add esp, 4
lea ecx, [esp + 0x144]
jmp 0x41466e
mov ecx, dword [esp + 0x38]
lea edi, [esp + 0x6c]
call fcn.00414e90
xor ebp, ebp
mov byte [esp + 0x56c], 0x15
cmp dword [esp + 0x44], ebp
jbe 0x414608
cmp dword [esp + 0x134], 1
jne 0x414598
cmp dword [esp + 0x138], 0
jne 0x414598
mov ecx, ebp
lea eax, [esp + 0x3c]
call fcn.00412010
cmp dword [eax + 4], 5
je 0x4143db
mov eax, 0x5255b3
jmp 0x4143de
mov eax, dword [eax + 0xc]
push eax
lea ecx, [esp + 0x148]
call fcn.00401c20
push 2
xor ecx, ecx
lea esi, [esp + 0x11c]
lea edx, [esp + 0x148]
mov byte [esp + 0x570], 0x16
call fcn.00401cd0
mov ecx, 0x52c2a8
mov edi, eax
mov byte [esp + 0x56c], 0x17
call fcn.004084b0
test eax, eax
mov ecx, esi
sete bl
mov byte [esp + 0x56c], 0x16
call fcn.00401c60
test bl, bl
je 0x414522
push 0xffffffffffffffff
mov ecx, 2
lea esi, [esp + 0x100]
lea edx, [esp + 0x148]
call fcn.00401cd0
lea ecx, [esp + 0x6c]
push ecx
mov edx, 0x52566c
mov byte [esp + 0x570], 0x18
call fcn.004057b0
cmp eax, 0xffffffff
je 0x4144fd
push 0xffffffffffffffff
lea ecx, [eax + 1]
lea esi, [esp + 0x11c]
lea edx, [esp + 0x70]
call fcn.00401cd0
mov byte [esp + 0x56c], 0x19
mov ecx, dword [esp + 0x11c]
mov esi, 0x10
cmp dword [esp + 0x130], esi
jae 0x4144ad
lea ecx, [esp + 0x11c]
mov eax, dword [esp + 0x100]
cmp dword [esp + 0x114], esi
jae 0x4144c4
lea eax, [esp + 0x100]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x4144e4
test dl, dl
je 0x4144e0
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x4144e4
add eax, 2
add ecx, 2
test dl, dl
jne 0x4144c4
xor eax, eax
jmp 0x4144e9
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
je 0x414627
lea ecx, [esp + 0x118]
call fcn.00401c60
lea ecx, [esp + 0xfc]
call fcn.00401c60
lea ecx, [esp + 0x144]
mov byte [esp + 0x56c], 0x15
call fcn.00401c60
jmp 0x4145fd
mov edi, dword [esp + 0x84]
mov ebx, dword [esp + 0x70]
mov esi, ebx
cmp edi, 0x10
jae 0x414538
lea esi, [esp + 0x70]
mov ecx, ebp
lea eax, [esp + 0x3c]
call fcn.00412010
cmp dword [eax + 4], 5
je 0x414550
mov eax, 0x5255b3
jmp 0x414553
mov eax, dword [eax + 0xc]
mov ecx, esi
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x414575
test dl, dl
je 0x414571
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x414575
add eax, 2
add ecx, 2
test dl, dl
jne 0x414555
xor eax, eax
jmp 0x41457a
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
je 0x4146c4
lea ecx, [esp + 0x144]
mov byte [esp + 0x56c], 0x15
call fcn.00401c60
jmp 0x4145fd
mov edi, dword [esp + 0x84]
mov esi, dword [esp + 0x70]
cmp edi, 0x10
jae 0x4145ac
lea esi, [esp + 0x70]
mov ecx, ebp
lea eax, [esp + 0x3c]
call fcn.00412010
cmp dword [eax + 4], 5
je 0x4145c4
mov eax, 0x5255b3
jmp 0x4145c7
mov eax, dword [eax + 0xc]
mov ecx, esi
lea esp, [esp]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x4145f0
test dl, dl
je 0x4145ec
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x4145f0
add eax, 2
add ecx, 2
test dl, dl
jne 0x4145d0
xor eax, eax
jmp 0x4145f5
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
je 0x4146e2
inc ebp
cmp ebp, dword [esp + 0x44]
jb 0x4143a7
mov edx, dword [esp + 0x24]
push edx
call fcn.00418ee0
mov eax, dword [esp + 0x20]
add esp, 4
push eax
call fcn.00418ee0
add esp, 4
jmp 0x413220
mov edx, dword [esp + 0x70]
cmp dword [esp + 0x84], esi
jae 0x414638
lea edx, [esp + 0x70]
mov ecx, dword [esp + 0x34]
push 0
call fcn.004150e0
add esp, 4
lea ecx, [esp + 0x118]
call fcn.00401c60
lea ecx, [esp + 0xfc]
call fcn.00401c60
lea ecx, [esp + 0x144]
call fcn.00401c60
lea ecx, [esp + 0x6c]
call fcn.00401c60
mov ecx, dword [esp + 0x24]
push ecx
call fcn.00418ee0
mov edx, dword [esp + 0x20]
add esp, 4
push edx
call fcn.00418ee0
add esp, 4
lea ecx, [esp + 0x8c]
call fcn.00401c60
lea ecx, [esp + 0xc4]
call fcn.00401c60
lea ecx, [esp + 0xa8]
call fcn.00401c60
lea ecx, [esp + 0xe0]
call fcn.00401c60
xor eax, eax
jmp 0x41476c
mov edx, ebx
cmp edi, 0x10
jae 0x4146cf
lea edx, [esp + 0x70]
mov ecx, dword [esp + 0x34]
push 0
call fcn.004150e0
add esp, 4
jmp 0x41465e
mov edx, dword [esp + 0x70]
cmp edi, 0x10
jae 0x4146ef
lea edx, [esp + 0x70]
mov ecx, dword [esp + 0x34]
push 0
call fcn.004150e0
add esp, 4
jmp 0x41466a
mov eax, dword [esp + 0x24]
push eax
call fcn.00418ee0
add esp, 4
lea ecx, [esp + 0xc4]
call fcn.00401c60
lea ecx, [esp + 0xa8]
call fcn.00401c60
lea ecx, [esp + 0xe0]
call fcn.00401c60
mov eax, 0xfffffffd
jmp 0x41476c
cmp dword [esp + 0xf8], 0x10
jb 0x414754
mov ecx, dword [esp + 0xe4]
push ecx
call fcn.0041ef45
add esp, 4
mov eax, 0xfffffffe
jmp 0x41476c
cmp edi, 0x10
jb 0x414769
push ebx
call fcn.0041ef45
add esp, 4
or eax, 0xffffffff
mov ecx, dword [esp + 0x564]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebp
pop ebx
mov ecx, dword [esp + 0x548]
xor ecx, esp
call fcn.00428ddf
add esp, 0x55c
ret