Function at 0x415128
Capabilities:
Query or enumerate registry value
Set registry value

Disassembly:
sub esp, 0x424
mov eax, dword [0x514d34]
xor eax, esp
mov dword [esp + 0x420], eax
mov ecx, dword [esp + 0x43c]
lea eax, [esp + 4]
push ebx
movzx ebx, word [esp + 0x434]
push ebp
mov ebp, dword [esp + 0x448]
push esi
push edi
mov edi, dword [sym.imp.ADVAPI32.dll_RegOpenKeyExA]
xor esi, esi
push eax
inc esi
mov dword [esp + 0x24], ebx
push esi
push 0
push str.Software_verypdfpdfcamp
push reloc.OLEAUT32.dll_SysReAllocString
mov dword [esp + 0x24], ecx
mov dword [esp + 0x3c], ebp
call edi
mov dword [esp + 0x24], 3
test eax, eax
jne 0x415202
lea eax, [esp + 0x18]
mov dword [esp + 0x18], 0x401
push eax
lea eax, [esp + 0x30]
push eax
push 0
push 0
push str.RegisterNO
push dword [esp + 0x28]
call dword [sym.imp.ADVAPI32.dll_RegQueryValueExA]
mov esi, dword [sym.imp.ADVAPI32.dll_RegCloseKey]
test eax, eax
jne 0x4151f9
lea eax, [esp + 0x1c]
push eax
push 3
pop eax
push eax
push 0
push str.Software_verypdfpdfcamp
push connect
call edi
test eax, eax
jne 0x4151f9
push dword [esp + 0x18]
lea eax, [esp + 0x30]
push eax
xor eax, eax
inc eax
push eax
push 0
push str.RegisterNO
push dword [esp + 0x30]
call dword [sym.imp.ADVAPI32.dll_RegSetValueExA]
push dword [esp + 0x1c]
call esi
push dword [esp + 0x14]
call esi
xor esi, esi
inc esi
mov al, bl
and al, 0xa0
cmp al, 0xa0
push 0xe
pop eax
sete cl
bt bx, ax
setb al
test al, cl
je 0x41522c
and ebx, 0xff5f
mov word [0x52e25c], si
mov dword [esp + 0x20], ebx
jmp 0x41523d
push 0xf7
call fcn.00460b68
pop ecx
mov word [0x52e25c], ax
mov esi, 0x53214c
push esi
call fcn.00447230
pop ecx
test eax, eax
jne 0x415254
push esi
call fcn.0045dc0b
pop ecx
xor eax, eax
push eax
mov word [0x5327c8], ax
call fcn.00439b79
mov edx, dword [esp + 0x448]
mov ecx, 0x12c
mov esi, dword [esp + 0x440]
cmp dx, cx
movzx eax, dx
cmovbe ecx, eax
mov word [0x52d800], si
xor eax, eax
mov word [0x52d7e4], cx
and dword [0x52d80c], eax
mov word [0x53129c], ax
mov eax, dword [esp + 0x43c]
mov dword [0x52d7f0], eax
mov eax, 0xffff
mov word [0x50e7c0], ax
xor eax, eax
and dword [0x52d7f8], eax
mov word [0x52d808], bx
mov word [0x52d7f4], ax
mov dword [esp], 0x5313a8
call fcn.0040972a
cmp word [0x52d7fc], 0
pop ecx
push 4
pop eax
mov dword [esp + 0x14], eax
je 0x415307
push 3
pop ecx
cmp si, cx
je 0x4152f1
cmp si, ax
jne 0x415307
mov edi, dword [esp + 0x10]
test edi, edi
je 0x4160f3
cmp byte [edi], 0
jne 0x41530b
jmp 0x4160f3
mov edi, dword [esp + 0x10]
mov eax, dword [0x510504]
mov edx, 0x200
push 0x20
pop ecx
mov eax, dword [eax]
test word [eax + 0x10], dx
jne 0x415327
or word [0x52d808], cx
push 2
pop edx
push 6
pop ecx
mov dword [esp + 0x1c], ecx
push 9
pop eax
test si, si
je 0x415351
cmp si, cx
je 0x415351
cmp si, ax
je 0x415351
mov ax, word [0x52d800]
xor edx, edx
inc edx
jmp 0x4153da
mov ax, word [0x533e10]
cmp ax, cx
je 0x4153ce
push 7
pop ecx
cmp ax, word [esp + 0x24]
je 0x41539f
cmp ax, word [esp + 0x14]
je 0x41539f
cmp ax, cx
je 0x41539f
cmp ax, dx
je 0x41539f
push str.Select_Report_Device
push esi
push 0x42cc70
call fcn.0041b6fe
mov ax, word [0x533e10]
add esp, 0xc
test ax, ax
je 0x4160ee
push 7
pop ecx
push 2
pop edx
cmp ax, word [esp + 0x1c]
je 0x4153ce
cmp ax, word [esp + 0x24]
jne 0x4153b5
push 5
pop eax
xor edx, edx
inc edx
jmp 0x4153d4
cmp ax, word [esp + 0x14]
jne 0x4153c0
push 3
jmp 0x4153af
cmp ax, cx
jne 0x4153c9
push 4
jmp 0x4153af
mov ax, dx
jmp 0x4153b0
xor edx, edx
inc edx
mov ax, dx
mov word [0x52d800], ax
xor ecx, ecx
mov word [0x52d804], ax
test byte [0x52ed6c], 1
mov word [0x533e10], cx
mov ecx, 0x5314b0
je 0x41545e
push 0x52ed78
mov word [0x52eca4], dx
call fcn.0046e41f
cmp byte [0x52f298], 0
je 0x415420
push 0x52f298
mov ecx, 0x531a03
call fcn.0046e41f
test byte [0x52ed6c], 0x10
mov eax, 0x5314b0
mov ecx, 0x531a03
cmove ecx, eax
mov dword [0x52f294], ecx
call fcn.0046e329
dec eax
mov dword [0x52d7e8], eax
test edi, edi
je 0x415456
push edi
push 0x52e780
call fcn.00446f90
pop ecx
pop ecx
mov ax, word [0x52d800]
jmp 0x415467
xor ecx, ecx
mov word [0x52eca4], cx
push 3
pop ecx
cmp ax, cx
je 0x415477
push 4
pop ecx
cmp ax, cx
jne 0x415495
cmp word [0x52eca4], 0
jne 0x4160d7
push edi
call fcn.00414c8d
pop ecx
test ax, ax
je 0x4160e9
and dword [0x52d81c], 0
xor eax, eax
mov word [0x52d7e0], ax
movzx eax, word [0x52d7e4]
push eax
push 0x20
push 0x530548
call fcn.00443240
mov edi, dword [esp + 0x454]
xor ecx, ecx
xor eax, eax
mov dword [0x530674], ecx
mov word [0x531104], ax
add esp, 0xc
mov eax, 0xffffff
mov byte [0x531108], cl
mov dword [0x531109], ecx
mov dword [0x53110d], eax
mov byte [0x531114], cl
mov dword [0x531115], ecx
mov dword [0x531119], eax
mov dword [0x52d810], ecx
mov dword [0x52d814], ecx
cmp dword [0x52d80c], ecx
jne 0x4155ac
push 0x52d80c
push ecx
push 0x52d820
call fcn.0040cd7f
movzx ebp, ax
add esp, 0xc
test bp, bp
je 0x41554f
push str.Unable_to_Create_Temporary_Report_File
call fcn.00413845
push ebp
call fcn.0040cb9c
push eax
call fcn.00413845
add esp, 0xc
call fcn.0041b070
jmp 0x4160fe
push 0x52d810
push 0
push 0x52dd40
call fcn.0040cd7f
movzx ebp, ax
add esp, 0xc
test bp, bp
je 0x415572
push str.Unable_to_Create_Temporary_Report_Attributes_File
jmp 0x415531
push 0x52d814
push 0
push 0x52e260
call fcn.0040cd7f
movzx ebp, ax
add esp, 0xc
test bp, bp
je 0x415595
push str.Unable_to_Create_Temporary_Report_AXR_File
jmp 0x415531
mov ebp, dword [esp + 0x28]
push ebp
push edi
push dword [esp + 0x44c]
push ebx
push esi
call fcn.0041bcb2
add esp, 0x14
mov dx, word [0x52d800]
xor eax, eax
inc eax
push 0x18
pop esi
cmp dx, ax
jne 0x4155ca
mov cx, si
mov word [0x52dd3c], cx
jmp 0x4155fc
mov ecx, 0xffff
cmp di, cx
jne 0x4155d8
xor ecx, ecx
jmp 0x4155e7
push 0x42
test di, di
movzx eax, di
pop ecx
cmovne ecx, eax
xor eax, eax
inc eax
push 5
pop edi
mov word [0x52dd3c], cx
cmp dx, di
jne 0x4155fc
mov word [0x52d800], ax
mov eax, dword [0x510504]
mov edx, 0x200
mov eax, dword [eax]
test word [eax + 0x10], dx
jne 0x415660
test bl, 0x40
jne 0x415660
cmp cx, si
jne 0x415637
mov eax, 0x84
cmp word [0x52d7e4], ax
jne 0x415637
call fcn.004a25de
test ax, ax
je 0x415637
call fcn.0042c41e
jmp 0x41563c
call fcn.0042c2ef
mov eax, dword [0x510504]
push 0
push dword [eax]
call fcn.0042ca4d
call fcn.004161d8
push 0
push 0
push 0x533d68
call fcn.0042c85a
add esp, 0x14
push 0x50
pop edi
test ebp, ebp
je 0x4156c1
cmp byte [ebp], 0
je 0x4156c1
push ebp
push 0x531310
call fcn.00446f90
pop ecx
pop ecx
push 0x5f
push 0x4c
push ebp
call fcn.00447230
pop ecx
movzx eax, ax
mov esi, 0x5312b8
push eax
push esi
push ebp
call fcn.00447230
pop ecx
movzx eax, ax
push eax
push ebp
call fcn.0045bc43
push ebp
call fcn.00447230
add esp, 0x1c
cmp eax, 0x51
jae 0x416117
push esi
mov byte [eax + 0x5312b8], 0
call fcn.0045ba77
jmp 0x4156e9
mov esi, 0x5312b8
mov byte [0x531310], 0
cmp word [0x52d7e4], di
jbe 0x4156dd
push str.def132
jmp 0x4156e2
push str.def80
push esi
call fcn.00446f90
pop ecx
mov dx, word [0x52d800]
pop ecx
push 8
pop ecx
push 2
pop ebp
mov dword [esp + 0x18], ecx
cmp dx, bp
jne 0x4157b4
cmp word [0x52eca4], 0
push 0
jne 0x415897
mov eax, 0x100
test bx, ax
pop edx
mov eax, edx
cmovne eax, ebp
test ebx, 0x200
je 0x41572d
or eax, 4
test ebx, 0x400
je 0x415737
or eax, ecx
cmp word [0x52d7e4], di
jne 0x415743
or eax, 0x10
test dword [0x52d808], 0x800
je 0x415752
or eax, 0x20
mov ecx, dword [esp + 0x10]
test ecx, ecx
je 0x41575d
or eax, 0x40
push esi
push edx
push edx
push edx
push eax
push ecx
call fcn.004771f4
add esp, 0x18
test ax, ax
je 0x415545
movzx eax, word [0x52d7e4]
push eax
call fcn.00477a5a
movzx eax, word [0x52dd3c]
push eax
call fcn.00477a85
call fcn.004771ee
push eax
push 0x5313a8
call fcn.00446f90
mov dx, word [0x52d800]
add esp, 0x10
cmp dx, bp
je 0x4158a5
push 8
pop ecx
push 3
pop eax
push 4
pop edi
cmp dx, ax
je 0x4158a8
cmp dx, di
je 0x4158a8
cmp dx, cx
je 0x4158a8
xor ebp, ebp
inc ebp
and dword [0x5313a4], 0
cmp dx, bp
jne 0x416039
mov eax, dword [0x50d248]
mov esi, str.TXP_TIN_T
push esi
push dword [eax]
call fcn.00412d78
pop ecx
push eax
call dword [sym.imp.USER32.dll_GetPropA]
mov dword [0x5313a4], eax
test eax, eax
je 0x415820
mov eax, dword [0x50d248]
push esi
push dword [eax]
call fcn.00412d78
pop ecx
push eax
call dword [sym.imp.USER32.dll_RemovePropA]
test byte [0x52d808], 0x20
jne 0x415ff0
push edi
lea eax, [esp + 0x2c]
push eax
push 0x4c7e84
push str.oldpreview
call fcn.0041506a
lea eax, [esp + 0x38]
push 0x4c7e80
push eax
call fcn.00447146
add esp, 0x18
neg eax
sbb eax, eax
xor ecx, ecx
inc eax
cmp word [0x52eca4], cx
movzx eax, ax
cmovne eax, ecx
cmp word [0x52e25c], cx
je 0x41591a
test byte [0x52d808], 0x80
jne 0x41591a
test ax, ax
jne 0x41591a
mov word [0x52eca0], bp
jmp 0x415922
push 0
call fcn.0041e6f3
pop ecx
pop ecx
jmp 0x415545
push 4
pop edi
push 0x5311a0
push 5
pop eax
push eax
push 8
pop esi
cmp dx, bp
mov eax, str.Writing_Page
mov ecx, str.Printing_Page
cmovne ecx, eax
cmp dx, si
mov eax, str.Mailing_Page
cmovne eax, ecx
test bl, 4
push eax
push 0x1c
push 0x28
push str.LXPREP.AVI
push 0
push 0x106
push str.Producing_Report
mov eax, 0xffff
push eax
push eax
push eax
push 0
pop ecx
mov eax, str.Abandon_report_
cmovne eax, ecx
push eax
call fcn.0047caca
mov dx, word [0x52d800]
xor ebp, ebp
add esp, 0x34
inc ebp
mov word [0x531298], bp
jmp 0x4157d8
xor eax, eax
mov word [0x52eca0], ax
push 0x41b95e
call fcn.004108fd
xor eax, eax
mov word [0x52c388], bp
mov word [0x52ec9c], ax
mov edx, 0x200
mov eax, dword [0x510504]
mov edi, 0xc000
pop ecx
mov cx, word [0x52dd3c]
mov word [0x52e77c], cx
mov eax, dword [eax]
test word [eax + 0x10], dx
jne 0x41599e
push 0x531120
push str.q1yqt
push 0x506
push str.Report_Display
movzx eax, cx
push eax
mov eax, dword [0x52d7e4]
add eax, 2
push eax
push ebp
push 2
call fcn.0042c63d
mov eax, dword [0x50d248]
push dword [eax]
call fcn.0041aa70
add esp, 0x24
jmp 0x415f2e
xor ecx, ecx
cmp word [0x52d804], bp
push 2
pop eax
cmove eax, ecx
add ax, word [0x52d7e4]
movzx ebx, ax
cmp word [0x52eca0], cx
jne 0x415c38
test byte [0x52d808], 0x80
jne 0x415a38
mov eax, dword [0x50d234]
push 0x531378
push dword [eax]
call dword [sym.imp.USER32.dll_GetWindowPlacement]
mov eax, dword [0x50d234]
push 0xfffffffffffffff0
push dword [eax]
call dword [sym.imp.USER32.dll_GetWindowLongA]
mov dword [0x531374], eax
test eax, 0x50000
je 0x415a2f
and eax, 0xfefaffff
push eax
mov eax, dword [0x50d248]
push 0xfffffffffffffff0
push dword [eax]
call fcn.00412d78
pop ecx
push eax
call dword [sym.imp.USER32.dll_SetWindowLongA]
call fcn.00413f9b
call fcn.00413eb6
call fcn.00465e13
test ax, ax
je 0x415a2f
call fcn.00462130
test byte [0x52d808], 0x80
je 0x415a70
movzx eax, word [0x52e77c]
push 0x531120
push str.q1yqt
push 0x506
push str.Report_Display
push eax
mov eax, 0xffff
push ebx
push eax
push eax
call fcn.0042c63d
push 0x53113e
call fcn.0041aa70
add esp, 0x24
jmp 0x415aaa
mov eax, dword [0x50d248]
push dword [eax]
call fcn.0041aa70
movzx eax, word [0x52e77c]
mov dword [esp], 0x531120
push str.q1yqt
push 0x2506
push str.Report_Display
push eax
mov eax, 0xffff
push ebx
push eax
push eax
call fcn.0042c63d
add esp, 0x20
push 6
pop eax
mov dword [esp + 0x10], eax
mov ecx, 0x400
mov eax, dword [0x50d258]
cmp word [eax], cx
jb 0x415adc
push 0x18
pop eax
cmp word [0x52dd3c], ax
jne 0x415adc
mov dword [esp + 0x10], 0xc
mov dword [esp + 0x18], 0x10
mov edi, dword [sym.imp.USER32.dll_GetSystemMetrics]
push 5
pop eax
push eax
call edi
imul ecx, eax, 3
mov eax, dword [0x50d258]
push 2
mov ax, word [eax]
sub ax, cx
movzx esi, ax
call edi
push 6
sub esi, eax
pop eax
push eax
movzx ebp, si
call edi
imul edx, eax, 0xfffe
mov eax, dword [0x50d248]
push 0xf
mov ecx, dword [eax]
movzx eax, byte [ecx + 0x25]
sub dx, ax
movzx eax, byte [ecx + 0x24]
sub dx, ax
mov eax, dword [0x50d25c]
sub dx, word [ecx + 0x22]
add dx, word [eax]
movzx esi, dx
call edi
sub esi, eax
mov eax, dword [esp + 0x10]
movzx ecx, ax
mov eax, ebp
cdq
idiv ecx
movzx esi, si
mov dword [esp + 0x14], ecx
cmp eax, ebx
jge 0x415b57
push 3
pop eax
push eax
call edi
sub esi, eax
mov eax, dword [esp + 0x18]
movzx ecx, ax
movzx eax, si
cdq
idiv ecx
mov si, word [0x52e77c]
mov dword [esp + 0x1c], ecx
movzx ecx, si
mov dword [esp + 0x24], eax
cmp eax, ecx
jge 0x415b8b
push 2
call edi
mov si, word [0x52e77c]
sub ebp, eax
mov eax, dword [esp + 0x24]
mov ecx, 0x800
movzx edx, si
or word [0x531146], cx
movzx ecx, ax
cmp cx, si
mov eax, ecx
mov esi, dword [esp + 0x14]
cmovbe edx, eax
movzx eax, bp
mov word [0x531178], dx
cdq
idiv esi
mov edx, ebx
movzx ecx, ax
cmp cx, bx
mov eax, ecx
mov ecx, dword [esp + 0x1c]
cmovbe edx, eax
mov eax, dword [esp + 0x10]
mov byte [0x531151], al
xor ebx, ebx
mov eax, dword [esp + 0x18]
mov byte [0x531152], al
mov eax, dword [0x53117e]
mov word [0x531176], dx
push ebx
mov dword [eax + 4], esi
mov esi, 0x53113e
mov eax, dword [0x53117e]
push esi
mov dword [eax], ecx
call fcn.004114ae
mov eax, dword [0x531178]
add eax, dword [0x53116a]
push eax
mov eax, dword [0x531176]
add eax, dword [0x531168]
push eax
movzx eax, word [0x53116a]
push eax
movzx eax, word [0x531168]
push eax
push esi
call fcn.0041187f
xor ebp, ebp
add esp, 0x1c
inc ebp
mov edi, 0xc000
jmp 0x415caf
mov eax, dword [0x50d248]
push dword [eax]
call fcn.0041aa70
movzx eax, word [0x52eca4]
mov esi, 0x52fed0
pop ecx
push eax
mov eax, dword [0x52d808]
mov ecx, esi
and eax, 0x4000
push eax
push dword [0x52d810]
movzx eax, word [0x52dd3c]
push dword [0x52d80c]
push eax
movzx eax, word [0x52d7e4]
push eax
call fcn.004198b9
cmp word [0x52eca4], 0
je 0x415c9c
push 0x531a03
mov eax, 0x5314b0
mov ecx, esi
push eax
call fcn.00419047
test byte [0x52ed6c], 0x10
je 0x415cad
push ebp
mov ecx, esi
call fcn.00419d97
xor ebx, ebx
mov eax, dword [0x50d248]
push str.View
push 0x4c7028
push dword [eax]
call fcn.0043eb0e
mov esi, dword [sym.imp.USER32.dll_AppendMenuA]
add esp, 0xc
mov dword [0x50e7b4], eax
push str.First_Page_tHome
push 0x3ea
push ebp
push eax
call esi
push str.Next_Page_tPgDn
push 0x3eb
push ebp
push dword [0x50e7b4]
call esi
push str.Previous_Page_tPgUp
push 0x3ec
push ebp
push dword [0x50e7b4]
call esi
push str.Last_Page_tEnd
push 0x3ed
push ebp
push dword [0x50e7b4]
call esi
cmp word [0x52eca0], 0
jne 0x415dca
push ebx
push ebx
mov eax, 0x800
push eax
push dword [0x50e7b4]
call esi
push 0x4c8048
push 0x3ee
push ebx
push dword [0x50e7b4]
call esi
push 0x4c8054
push 0x3ef
push ebp
push dword [0x50e7b4]
call esi
cmp word [0x52eca0], 0
jne 0x415dca
mov eax, dword [0x50d248]
push 0x4c6ff0
push str.View
push dword [eax]
call fcn.0043eb0e
add esp, 0xc
mov dword [0x50e7b8], eax
push 0x4c6ff8
push 0xc9
push ebx
push eax
call esi
push 0x4c7000
push 0xca
push ebp
push dword [0x50e7b8]
call esi
push ebx
push ebx
mov eax, 0x800
push eax
push dword [0x50e7b8]
call esi
push str.Find_..._tCtrlF
push 0x3f2
push ebx
push dword [0x50e7b8]
jmp 0x415dfe
cmp word [0x52eca4], 0
jne 0x415e00
mov eax, dword [0x50d248]
push 0x4c6ff0
push str.View
push dword [eax]
call fcn.0043eb0e
add esp, 0xc
mov dword [0x50e7b8], eax
push str.Find_..._tCtrlF
push 0x3f2
push ebx
push eax
call esi
mov eax, dword [0x52d808]
and eax, edi
cmp ax, di
je 0x415e1c
push 0xf8
call fcn.00460b68
pop ecx
test ax, ax
je 0x415e48
mov eax, dword [0x50d248]
push str.Tools
push 0x4c7028
push dword [eax]
call fcn.0043eb0e
add esp, 0xc
mov dword [0x50e7bc], eax
push str.Options_...
push 0x3f5
push ebx
push eax
call esi
mov eax, dword [0x50d248]
push ebx
push 0x4c6fe0
push dword [eax]
call fcn.0043eb90
mov edi, dword [sym.imp.USER32.dll_InsertMenuA]
add esp, 0xc
cmp word [0x52d7fc], 0
mov esi, eax
jne 0x415ee6
push str.Save_As_..._tCtrlS
push 0x3f0
mov ebx, 0x401
push ebx
push 0
push esi
call edi
push str.Send_To_..._tCtrlM
push 0x3f1
push ebx
push ebp
push esi
call edi
mov eax, dword [0x52d808]
mov ecx, 0xc000
and eax, ecx
push 2
pop ebx
cmp ax, cx
je 0x415eb7
push 0xf8
call fcn.00460b68
pop ecx
test ax, ax
je 0x415ee6
call fcn.00410eed
test ax, ax
je 0x415ee6
test dword [0x52d808], 0x4000
jne 0x415ee6
push str.Write_to_PDF_tCtrlW
push 0x3f4
push 0x401
push 2
push esi
call edi
push 3
pop eax
mov ebx, eax
push str.Print_..._tCtrlP
push 0x3e9
push 0x401
push ebx
push esi
call edi
test dword [0x52d808], 0x1000
je 0x415f25
cmp word [0x52eca4], 0
jne 0x415f25
push str.Fax_..._tCtrlX
push 0x3f3
push 0x401
lea eax, [ebx + 1]
push eax
push esi
call edi
mov ebx, dword [esp + 0x20]
mov edi, 0xc000
cmp word [0x52eca0], 0
mov eax, dword [0x50d268]
mov ecx, dword [0x53113e]
cmovne ecx, dword [0x52ff04]
mov dword [eax], ecx
mov eax, dword [0x52d808]
and eax, edi
cmp ax, di
je 0x415f78
push 0xf8
call fcn.00460b68
pop ecx
test ax, ax
jne 0x415f78
mov word [0x51c1d5], 0xffe2
mov byte [0x51c1d7], 0xf5
jmp 0x415f88
mov word [0x51c1d5], 0xdcdc
mov byte [0x51c1d7], 0xff
mov dx, word [0x52eca0]
mov word [0x51c1e1], 0xffff
mov byte [0x51c1e3], 0xff
test dx, dx
jne 0x415fd5
mov ecx, dword [0x53117e]
mov ax, word [ecx + 4]
mov word [0x5312a4], ax
mov ax, word [ecx]
mov word [0x5312a8], ax
mov ax, word [0x531176]
mov word [0x5312b0], ax
mov ax, word [0x531178]
mov word [0x5312b4], ax
xor eax, eax
mov word [0x5312ac], ax
test dx, dx
jne 0x416039
mov eax, 0x800
or word [0x531146], ax
jmp 0x416039
mov ax, word [0x52dd3c]
mov word [0x52e77c], ax
xor eax, eax
mov word [0x52ec9c], ax
mov word [0x51c1e1], 0xffff
mov byte [0x51c1e3], 0xff
test bl, 0x40
jne 0x416039
mov eax, dword [0x510504]
push 0xf0
push dword [eax]
call fcn.0042c820
mov eax, dword [0x510504]
push dword [eax]
call fcn.0042c9f6
add esp, 0xc
mov ax, word [0x52dd3c]
or ecx, 0xffffffff
cmp word [0x52eca4], 0
mov word [0x52d818], ax
mov eax, dword [0x52d7e8]
cmove eax, ecx
and dword [0x52d7ec], 0
mov dword [0x52d7e8], eax
call fcn.0041b057
movzx eax, word [0x52d7e4]
test eax, eax
je 0x4160a1
mov esi, 0x531108
imul ecx, eax, 9
mov edi, 0x530678
push 3
movsd dword es:[edi], dword [esi]
sub ecx, 9
mov eax, ecx
shr ecx, 2
movsd dword es:[edi], dword [esi]
movsb byte es:[edi], byte [esi]
mov esi, 0x530678
mov edi, 0x530681
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
pop eax
and ecx, eax
rep movsb byte es:[edi], byte [esi]
call fcn.0040e319
cmp byte [0x52f7b8], 0
mov dword [0x5312a0], eax
je 0x4160bf
push 0x52f7b8
call fcn.0041707b
pop ecx
cmp word [0x52d800], bp
jne 0x4160d2
test bl, 0x40
jne 0x4160d2
call fcn.0041b4d3
mov ax, bp
jmp 0x4160fe
cmp word [0x52d7fc], 0
jne 0x4160f3
push 0
call fcn.0041eb5f
pop ecx
call fcn.0041643c
call fcn.00416472
xor eax, eax
inc eax
mov word [0x52d7e0], ax
xor eax, eax
mov ecx, dword [esp + 0x430]
pop edi
pop esi
pop ebp
pop ebx
xor ecx, esp
call fcn.00441a5e
add esp, 0x424
ret
call fcn.00441f00
int3