Function at 0x45269f
Capabilities:
Encode data using base64
Get disk information
Read file on windows
Write file on windows

Disassembly:
push ebp
lea ebp, [esp - 0x70]
sub esp, 0x364
push ebx
push esi
lea eax, [ebp + 0x78]
push edi
push eax
mov dword [ebp - 0xa4], ecx
call fcn.00430961
pop ecx
push 5
lea ecx, [ebp + 0xc]
call fcn.00435d80
push 0x14
lea ecx, [ebp - 0x194]
call fcn.00435d80
lea ecx, [ebp - 0xdc]
call fcn.00435d62
lea ecx, [ebp - 0x80]
call fcn.00435d62
lea ecx, [ebp - 0x8c]
call fcn.00435d62
mov eax, dword [ebp + 0x78]
xor ebx, ebx
or esi, 0xffffffff
mov dword [ebp - 4], eax
push 0x2c
lea eax, [ebp - 0x80]
push eax
lea eax, [ebp - 4]
push eax
mov dword [ebp + 0x10], ebx
mov dword [ebp - 0x40], ebx
mov dword [ebp - 0x3c], ebx
mov dword [ebp - 0xfc], esi
mov dword [ebp - 0xf8], esi
mov dword [ebp - 0x18], 0xfffc0000
mov dword [ebp + 0x58], ebx
mov dword [ebp - 0xe8], ebx
mov dword [ebp - 0x84], esi
mov dword [ebp - 0x34], esi
mov dword [ebp + 0x44], esi
mov dword [ebp + 0x48], esi
mov dword [ebp + 0x30], esi
mov dword [ebp + 0x34], esi
mov dword [ebp - 0x30], ebx
mov dword [ebp - 0xc8], esi
mov dword [ebp - 0xc4], esi
mov dword [ebp - 0xd0], esi
mov dword [ebp - 0xcc], esi
mov dword [ebp - 0xd8], esi
mov dword [ebp - 0xd4], esi
mov byte [ebp - 0x2a], bl
mov byte [ebp - 0xd], bl
mov byte [ebp - 0x6b], bl
mov byte [ebp - 0x69], bl
mov byte [ebp + 0x39], bl
mov byte [ebp + 0x4d], bl
mov byte [ebp - 0xe], bl
mov byte [ebp - 0x59], bl
mov dword [ebp - 0x78], ebx
call fcn.004386e6
mov eax, dword [ebp - 0x80]
mov word [eax], bx
mov eax, dword [ebp - 4]
add esp, 0xc
cmp word [eax], 0x2c
jne 0x4527b4
mov word [eax], bx
inc eax
inc eax
mov dword [ebp - 4], eax
push 0x2c
lea eax, [ebp - 0x80]
push eax
lea eax, [ebp - 4]
push eax
call fcn.004386e6
add esp, 0xc
push 0xfffffffffffffff7
pop eax
mov dword [ebp - 0x68], eax
mov dword [ebp - 0x4c], eax
mov eax, dword [ebp + 0x78]
cmp word [eax], bx
mov byte [ebp + 0x2f], 0
mov byte [ebp + 0x4e], 0
mov byte [ebp - 0x5a], 0
mov byte [ebp + 0x27], 0
mov byte [ebp - 0x21], 0
mov byte [ebp - 0x6a], 0
mov byte [ebp + 0x2d], 0
mov byte [ebp + 0x67], 0
mov byte [ebp + 0x3a], 0
mov byte [ebp + 0x57], 0
mov byte [ebp + 0x5f], 0
mov byte [ebp + 0x43], 0
mov byte [ebp - 0x22], 0
mov byte [ebp - 5], 0
mov dword [ebp - 0x7c], ebx
mov dword [ebp - 0x44], ebx
mov dword [ebp - 0x20], ebx
mov byte [ebp - 0x88], 0
mov byte [ebp + 0x1f], 0
mov dword [ebp + 0x14], 0xfffff000
mov dword [ebp - 0x64], esi
mov dword [ebp - 0x48], esi
mov dword [ebp - 0x98], esi
je 0x4530c4
push 6
lea eax, [ebp + 0x78]
push eax
push 0x49c6cc
call fcn.00437ad0
add esp, 0xc
test al, al
je 0x452848
or byte [ebp + 0x2f], 1
jmp 0x453043
push 6
lea eax, [ebp + 0x78]
push eax
push 0x49c6c4
call fcn.00437ad0
add esp, 0xc
test al, al
je 0x452868
or byte [ebp + 0x2f], 2
jmp 0x453043
push 6
lea eax, [ebp + 0x78]
push eax
push 0x49c6bc
call fcn.00437ad0
add esp, 0xc
test al, al
je 0x45288b
or byte [ebp - 0xe6], 1
jmp 0x453043
push 7
lea eax, [ebp + 0x78]
push eax
push 0x49c6b4
call fcn.00437ad0
add esp, 0xc
test al, al
je 0x4528ae
or byte [ebp - 0xe6], 2
jmp 0x453043
push 4
lea eax, [ebp + 0x78]
push eax
push 0x49730c
call fcn.00437ad0
add esp, 0xc
test al, al
jne 0x45306f
push 4
lea eax, [ebp + 0x78]
push eax
push 0x49c6ac
call fcn.00437ad0
add esp, 0xc
test al, al
jne 0x453043
push 6
lea eax, [ebp + 0x78]
push eax
push 0x49c6a4
call fcn.00437ad0
add esp, 0xc
test al, al
je 0x452904
or dword [ebp - 0x20], 1
jmp 0x453043
push 4
lea eax, [ebp + 0x78]
push eax
push 0x49c69c
call fcn.00437ad0
add esp, 0xc
test al, al
je 0x452924
or dword [ebp - 0x20], 2
jmp 0x453043
push 5
lea eax, [ebp + 0x78]
push eax
push 0x49c694
call fcn.00437ad0
add esp, 0xc
test al, al
je 0x452944
or dword [ebp - 0x20], 0x10
jmp 0x453043
push 5
lea eax, [ebp + 0x78]
push eax
push 0x49c68c
call fcn.00437ad0
add esp, 0xc
test al, al
je 0x452964
or dword [ebp - 0x20], 4
jmp 0x453043
push 3
lea eax, [ebp + 0x78]
push eax
mov edi, 0x49c688
push edi
call fcn.00437ad0
add esp, 0xc
test al, al
je 0x452985
mov byte [ebp + 0x3a], 1
jmp 0x453043
push 3
lea eax, [ebp + 0x78]
push eax
push edi
call fcn.00437ad0
add esp, 0xc
test al, al
jne 0x45297c
push 4
pop edi
push edi
lea eax, [ebp + 0x78]
push eax
push 0x49c680
call fcn.00437ad0
add esp, 0xc
test al, al
je 0x4529ba
mov byte [ebp + 0x57], 1
jmp 0x453043
push 5
lea eax, [ebp + 0x78]
push eax
push 0x49c678
call fcn.00437ad0
add esp, 0xc
test al, al
je 0x4529da
mov byte [ebp + 0x57], 0x21
jmp 0x453043
push edi
lea eax, [ebp + 0x78]
push eax
push 0x49c670
call fcn.00437ad0
add esp, 0xc
test al, al
je 0x4529f9
mov byte [ebp + 0x5f], 1
jmp 0x453043
push 5
lea eax, [ebp + 0x78]
push eax
push 0x49c668
call fcn.00437ad0
add esp, 0xc
test al, al
je 0x452a19
mov byte [ebp + 0x5f], 0x21
jmp 0x453043
push edi
lea eax, [ebp + 0x78]
push eax
push 0x49c660
call fcn.00437ad0
add esp, 0xc
test al, al
je 0x452a38
mov byte [ebp + 0x43], 1
jmp 0x453043
push edi
lea eax, [ebp + 0x78]
push eax
push 0x49c658
call fcn.00437ad0
add esp, 0xc
test al, al
je 0x452a57
mov byte [ebp - 0x69], 1
jmp 0x453043
push edi
lea eax, [ebp + 0x78]
push eax
push 0x49c650
call fcn.00437ad0
add esp, 0xc
test al, al
je 0x452a76
mov byte [ebp - 0x22], 1
jmp 0x453043
push 6
lea eax, [ebp + 0x78]
push eax
push 0x4972a0
call fcn.00437ad0
add esp, 0xc
test al, al
je 0x452a96
mov byte [ebp - 0x6b], 1
jmp 0x453043
push 3
lea eax, [ebp + 0x78]
push eax
push 0x49c64c
call fcn.00437ad0
add esp, 0xc
test al, al
je 0x452ab6
mov byte [ebp - 0x59], 1
jmp 0x453043
push 6
lea eax, [ebp + 0x78]
push eax
push 0x49c644
call fcn.00437ad0
add esp, 0xc
test al, al
je 0x452ad6
or byte [ebp - 0xe], 0x40
jmp 0x453043
push 6
lea eax, [ebp + 0x78]
push eax
push 0x49c63c
call fcn.00437ad0
add esp, 0xc
test al, al
je 0x452af6
mov byte [ebp + 0x4d], 3
jmp 0x453043
mov edi, dword [ebp + 0x78]
push 7
push edi
push 0x49c634
call fcn.004318b1
add esp, 0xc
test al, al
je 0x452b15
inc edi
mov byte [ebp + 0x4d], 3
inc edi
jmp 0x452b2d
push 6
push edi
push 0x49c62c
call fcn.004318b1
add esp, 0xc
test al, al
je 0x452b95
mov byte [ebp + 0x4d], 1
add edi, 0xc
xor ecx, ecx
mov dword [ebp + 0x78], edi
mov cx, word [edi]
cmp cx, bx
je 0x452b66
mov eax, ecx
call fcn.0040bc38
test al, al
jne 0x452b66
push ecx
call fcn.004103b8
add esp, 4
test al, al
jne 0x452b66
lea eax, [ebp + 0x78]
push eax
mov dword [ebp + 0x10], edi
call fcn.00404579
jmp 0x452cbf
lea eax, [ebp - 0x40]
push eax
lea eax, [ebp + 0x78]
push eax
call fcn.004045d4
lea eax, [ebp - 0xfc]
push eax
lea eax, [ebp + 0x78]
push eax
call fcn.004045d4
add esp, 0x10
lea eax, [ebp + 0x78]
push eax
call fcn.00430961
pop ecx
jmp 0x453043
push 5
lea eax, [ebp + 0x78]
push eax
push 0x49c624
call fcn.00437ad0
add esp, 0xc
test al, al
je 0x452bb5
mov byte [ebp + 0x4d], 1
jmp 0x453043
push 6
lea eax, [ebp + 0x78]
push eax
push 0x49c61c
call fcn.00437ad0
add esp, 0xc
test al, al
jne 0x452aed
push 6
lea eax, [ebp + 0x78]
push eax
push 0x49c614
call fcn.00437ad0
add esp, 0xc
test al, al
je 0x452bf6
mov byte [ebp + 0x4d], 0xf0
mov dword [ebp - 0x40], esi
mov dword [ebp - 0x3c], esi
jmp 0x453043
mov edi, dword [ebp + 0x78]
push 4
push edi
push 0x49c60c
call fcn.004318b1
add esp, 0xc
test al, al
je 0x452c55
lea ecx, [edi + 8]
xor eax, eax
mov ax, word [ecx]
cmp ax, bx
je 0x452c29
cmp ax, 0x3d
je 0x452c29
call fcn.0040bc38
test al, al
je 0x452c55
mov dword [ebp + 0x78], ecx
cmp word [ecx], 0x3d
mov dword [ebp - 0x44], ebx
je 0x452c41
mov dword [ebp - 0x7c], 0x49c604
jmp 0x452b86
add dword [ebp + 0x78], 2
lea eax, [ebp + 0x78]
push eax
call fcn.00430961
mov eax, dword [eax]
mov dword [ebp - 0x7c], eax
jmp 0x452cb5
push 4
push edi
push 0x49c5fc
call fcn.004318b1
add esp, 0xc
test al, al
je 0x452cd8
lea ecx, [edi + 8]
xor eax, eax
mov ax, word [ecx]
cmp ax, bx
je 0x452c85
cmp ax, 0x3d
je 0x452c85
call fcn.0040bc38
test al, al
je 0x452cd8
mov dword [ebp + 0x78], ecx
cmp word [ecx], 0x3d
lea eax, [ebp + 0x78]
mov dword [ebp - 0x7c], ebx
push eax
je 0x452ca7
mov dword [ebp - 0x44], 0x4958ae
call fcn.00404579
pop ecx
jmp 0x452b86
add dword [ebp + 0x78], 2
call fcn.00430961
mov eax, dword [eax]
mov dword [ebp - 0x44], eax
lea eax, [ebp + 0x78]
push eax
call fcn.00404579
pop ecx
mov eax, dword [ebp + 0x78]
cmp word [eax], bx
pop ecx
je 0x452b86
mov word [eax], bx
add dword [ebp + 0x78], 2
jmp 0x452b86
push 9
push edi
push 0x49c5f0
call fcn.004318b1
add esp, 0xc
test al, al
je 0x452d5f
lea ecx, [edi + 0x12]
xor eax, eax
mov ax, word [ecx]
cmp ax, bx
je 0x452d08
cmp ax, 0x3d
je 0x452d08
call fcn.0040bc38
test al, al
je 0x452d5f
mov dword [ebp + 0x78], ecx
cmp word [ecx], 0x3d
jne 0x452d50
xor eax, eax
add ecx, 2
mov ax, word [ecx]
push eax
call fcn.004103b8
add esp, 4
test al, al
je 0x453027
lea eax, [ebp - 0x4c]
push eax
lea eax, [ebp + 0x28]
push eax
mov dword [ebp + 0x28], ecx
call fcn.0043aabb
cmp dword [ebp - 0x48], ebx
pop ecx
pop ecx
jg 0x453027
jl 0x452d50
cmp dword [ebp - 0x4c], ebx
ja 0x453027
mov dword [ebp - 0x4c], 0xfffffffe
mov dword [ebp - 0x48], esi
jmp 0x453027
push 6
push edi
push 0x49c5e8
call fcn.004318b1
add esp, 0xc
test al, al
je 0x452dfe
lea ecx, [edi + 0xc]
xor eax, eax
mov ax, word [ecx]
cmp ax, bx
je 0x452d93
cmp ax, 0x3d
je 0x452d93
call fcn.0040bc38
test al, al
je 0x452dfe
lea eax, [ebp + 0x78]
mov edi, ecx
push eax
mov dword [ebp + 0x78], edi
call fcn.00404579
lea eax, [ebp + 0x78]
push eax
call fcn.00430961
cmp word [edi], 0x3d
pop ecx
pop ecx
je 0x452dbd
mov dword [ebp - 0x68], esi
mov dword [ebp - 0x64], esi
jmp 0x453043
xor eax, eax
lea ecx, [edi + 2]
mov ax, word [ecx]
push eax
call fcn.004103b8
add esp, 4
test al, al
je 0x453043
lea eax, [ebp - 0x68]
push eax
lea eax, [ebp + 0x28]
push eax
mov dword [ebp + 0x28], ecx
call fcn.0043aabb
cmp dword [ebp - 0x64], ebx
pop ecx
pop ecx
jg 0x453043
jl 0x452db2
cmp dword [ebp - 0x68], ebx
ja 0x453043
jmp 0x452db2
push 6
pop edi
push edi
lea eax, [ebp + 0x78]
push eax
push 0x49c5e0
call fcn.00437ad0
add esp, 0xc
test al, al
je 0x452e20
mov byte [ebp - 0x5a], 1
jmp 0x453043
push 3
lea eax, [ebp + 0x78]
push eax
push 0x49761c
call fcn.00437ad0
add esp, 0xc
test al, al
jne 0x45303f
push 4
lea eax, [ebp + 0x78]
push eax
push 0x49814c
call fcn.00437ad0
add esp, 0xc
test al, al
jne 0x45303f
push 4
lea eax, [ebp + 0x78]
push eax
push 0x49c194
call fcn.00437ad0
add esp, 0xc
test al, al
je 0x452e7a
or dword [ebp - 0x20], 0x20
mov byte [ebp - 0x21], 1
jmp 0x453043
push edi
push dword [ebp + 0x78]
push 0x49c5d8
call fcn.004318b1
add esp, 0xc
test al, al
je 0x452eb3
add dword [ebp + 0x78], 0xc
lea eax, [ebp + 0x14]
push eax
lea eax, [ebp + 0x78]
push eax
call fcn.00438b8e
test eax, eax
pop ecx
pop ecx
jl 0x4563a2
mov byte [ebp + 0x1f], 1
jmp 0x453043
push 5
push dword [ebp + 0x78]
push 0x49c5d0
call fcn.004318b1
add esp, 0xc
test al, al
je 0x452f52
add dword [ebp + 0x78], 0xa
lea eax, [ebp + 0x78]
push eax
call fcn.00430961
mov edi, dword [ebp + 0x78]
lea eax, [ebp + 0x78]
push eax
mov dword [ebp + 0x50], edi
call fcn.0040459d
xor eax, eax
mov ax, word [edi]
push eax
call fcn.004103b8
add esp, 0xc
test al, al
je 0x452f0d
lea eax, [ebp - 0xc8]
push eax
lea eax, [ebp + 0x50]
push eax
call fcn.0043aabb
pop ecx
pop ecx
mov eax, dword [ebp + 0x50]
cmp word [eax], 0x3a
jne 0x452f2c
add dword [ebp + 0x50], 2
lea eax, [ebp - 0xd0]
push eax
lea eax, [ebp + 0x50]
push eax
call fcn.0043aabb
pop ecx
pop ecx
mov eax, dword [ebp + 0x50]
cmp word [eax], 0x3a
jne 0x453043
add dword [ebp + 0x50], 2
lea eax, [ebp - 0xd8]
push eax
lea eax, [ebp + 0x50]
push eax
call fcn.0043aabb
jmp 0x453039
push 5
push dword [ebp + 0x78]
push 0x49c5c8
call fcn.004318b1
add esp, 0xc
test al, al
jne 0x45304f
push edi
push dword [ebp + 0x78]
push 0x49c5c0
call fcn.004318b1
add esp, 0xc
test al, al
je 0x452fb3
add dword [ebp + 0x78], 0xc
lea eax, [ebp + 0x78]
push eax
call fcn.00430961
lea eax, [ebp - 0x38]
push eax
lea eax, [ebp + 0x78]
push eax
mov dword [ebp - 0x38], 0x42
call fcn.00438b8e
mov al, byte [ebp - 0x38]
add esp, 0xc
mov byte [ebp - 0x88], al
jmp 0x453043
push 4
push dword [ebp + 0x78]
push 0x49c5b8
call fcn.004318b1
add esp, 0xc
test al, al
je 0x452fdf
add dword [ebp + 0x78], 8
lea eax, [ebp - 0x98]
push eax
lea eax, [ebp + 0x78]
push eax
call fcn.00438b8e
jmp 0x453039
push edi
lea eax, [ebp + 0x78]
push eax
push 0x49c5b0
call fcn.00437ad0
add esp, 0xc
test al, al
je 0x452ffe
mov dword [ebp - 0x78], 8
jmp 0x453043
push 7
lea eax, [ebp + 0x78]
push eax
push 0x49c5a8
call fcn.00437ad0
add esp, 0xc
test al, al
je 0x45301e
mov dword [ebp - 0x78], 0x10
jmp 0x453043
mov eax, dword [ebp + 0x78]
cmp word [eax], 0x2d
jne 0x45304f
lea eax, [ebp + 0x78]
push eax
call fcn.00404579
lea eax, [ebp + 0x78]
push eax
call fcn.00430961
pop ecx
jmp 0x452b8f
mov byte [ebp + 0x27], 1
mov eax, dword [ebp + 0x78]
cmp word [eax], bx
jne 0x452828
cmp dword [ebp - 0x4c], 0xfffffffe
jne 0x4530b9
cmp dword [ebp - 0x48], esi
jne 0x4530b9
mov eax, dword [ebp - 0x68]
cmp eax, 0xfffffff7
jne 0x4530b0
cmp dword [ebp - 0x64], esi
jne 0x4530b0
mov dword [ebp - 0x4c], esi
mov dword [ebp - 0x48], esi
jmp 0x4530c4
push 0x49c590
lea ecx, [ebp - 0x88]
call fcn.004403c3
push dword [ebp + 0x78]
lea ecx, [ebp - 0x88]
call fcn.00435dd0
push dword [ebp - 0x88]
mov ecx, dword [ebp - 0xa4]
call fcn.00428650
lea ecx, [ebp - 0x88]
mov esi, eax
call fcn.0043092f
jmp 0x45654b
mov dword [ebp - 0x4c], eax
mov eax, dword [ebp - 0x64]
mov dword [ebp - 0x48], eax
cmp dword [ebp - 0x68], 0xfffffff7
jne 0x4530ce
cmp dword [ebp - 0x64], esi
jne 0x4530ce
mov dword [ebp - 0x68], 1
mov dword [ebp - 0x64], ebx
cmp dword [ebp - 0x4c], 0xfffffff7
jne 0x4530e5
cmp dword [ebp - 0x48], esi
jne 0x4530e5
mov eax, dword [ebp - 0x68]
mov dword [ebp - 0x4c], eax
mov eax, dword [ebp - 0x64]
mov dword [ebp - 0x48], eax
push 4
pop edi
push edi
lea eax, [ebp + 0x78]
push eax
push 0x49c588
call fcn.00437ad0
add esp, 0xc
test al, al
je 0x4531e0
push edi
lea eax, [ebp + 0x78]
push eax
push 0x49c580
call fcn.00437ad0
add esp, 0xc
test al, al
je 0x453121
mov byte [ebp + 0x4e], 1
jmp 0x4531e0
push edi
lea eax, [ebp + 0x78]
push eax
push 0x49c578
call fcn.00437ad0
add esp, 0xc
test al, al
je 0x453140
mov byte [ebp + 0x4e], 2
jmp 0x4531e0
push 3
lea eax, [ebp + 0x78]
push eax
push 0x49c574
call fcn.00437ad0
add esp, 0xc
test al, al
je 0x453160
mov byte [ebp + 0x4e], 3
jmp 0x4531e0
push 5
lea eax, [ebp + 0x78]
push eax
push 0x49c56c
call fcn.00437ad0
add esp, 0xc
test al, al
je 0x453184
mov byte [ebp + 0x4e], 4
mov dword [ebp - 0x78], 8
jmp 0x4531e0
push 6
lea eax, [ebp + 0x78]
push eax
push 0x49c564
call fcn.00437ad0
add esp, 0xc
test al, al
je 0x4531a8
mov byte [ebp + 0x4e], 5
mov dword [ebp - 0x78], 0x10
jmp 0x4531e0
push 6
lea eax, [ebp + 0x78]
push eax
push 0x49c55c
call fcn.00437ad0
add esp, 0xc
test al, al
je 0x4531c5
mov byte [ebp + 0x4e], 6
jmp 0x4531e0
push 6
lea eax, [ebp + 0x78]
push eax
push 0x49c554
call fcn.00437ad0
add esp, 0xc
test al, al
je 0x4531e0
mov byte [ebp + 0x4e], 7
push edi
lea eax, [ebp + 0x78]
push eax
push 0x49c54c
mov byte [ebp + 0x2e], 0
call fcn.00437ad0
xor edi, edi
add esp, 0xc
inc edi
test al, al
je 0x453204
mov byte [ebp + 0x39], 1
mov dword [ebp + 0x58], edi
push 6
lea eax, [ebp + 0x78]
push eax
push 0x49c544
call fcn.00437ad0
add esp, 0xc
test al, al
je 0x453222
mov byte [ebp + 0x2e], 1
mov dword [ebp + 0x58], edi
push 7
lea eax, [ebp + 0x78]
push eax
push 0x49c53c
call fcn.00437ad0
add esp, 0xc
test al, al
je 0x453240
mov byte [ebp + 0x2e], 0x20
mov dword [ebp + 0x58], edi
push 7
lea eax, [ebp + 0x78]
push eax
push 0x49c534
call fcn.00437ad0
add esp, 0xc
test al, al
je 0x45325e
mov byte [ebp + 0x2e], 0x10
mov dword [ebp + 0x58], edi
mov edi, dword [ebp + 0x78]
lea eax, [ebp + 0x78]
push eax
call fcn.00404579
mov eax, dword [ebp + 0x78]
pop ecx
sub eax, edi
sar eax, 1
push eax
push edi
lea ecx, [ebp - 0xdc]
call fcn.00435e88
lea eax, [ebp + 0x78]
push eax
call fcn.00430961
pop ecx
mov ecx, dword [ebp + 0x78]
xor eax, eax
mov ax, word [ecx]
mov edx, eax
or edx, 0x20
cmp dx, 0x61
jne 0x4532a8
mov dword [ebp - 0x84], 0x80
jmp 0x4532c2
cmp ax, 0x2d
jne 0x4532cc
mov ax, word [ecx + 2]
or ax, 0x20
cmp ax, 0x61
jne 0x4532cc
mov dword [ebp - 0x84], ebx
lea eax, [ebp + 0x78]
push eax
call fcn.00404579
pop ecx
xor eax, eax
mov dword [ebp - 0x1c4], ebx
lea edi, [ebp - 0x1c0]
stosd dword es:[edi], eax
stosd dword es:[edi], eax
stosd dword es:[edi], eax
mov edi, 0x4ad290
push edi
mov dword [ebp - 0x160], 0xebd0a0a2
mov word [ebp - 0x15c], 0xb9e5
mov word [ebp - 0x15a], 0x4433
mov byte [ebp - 0x158], 0x87
mov byte [ebp - 0x157], 0xc0
mov byte [ebp - 0x156], 0x68
mov byte [ebp - 0x155], 0xb6
mov byte [ebp - 0x154], 0xb7
mov byte [ebp - 0x153], 0x26
mov byte [ebp - 0x152], 0x99
mov byte [ebp - 0x151], 0xc7
mov dword [ebp - 0x188], ebx
mov dword [ebp - 0x184], ebx
mov dword [ebp - 0x13c], ebx
mov dword [ebp - 0x140], ebx
mov dword [ebp - 0x124], 0x49c518
mov dword [ebp - 0x148], ebx
mov dword [ebp - 0x128], ebx
mov dword [ebp - 0x120], ebx
mov dword [ebp - 0x10c], ebx
call dword [sym.imp.KERNEL32.DLL_EnterCriticalSection]
cmp byte [ebp + 0x43], 0
jne 0x4533b5
lea eax, [ebp - 0x34]
push eax
lea eax, [ebp + 0x78]
push eax
call fcn.00438b8e
pop ecx
pop ecx
mov ecx, dword [ebp + 0x78]
cmp word [ecx], 0x2d
jne 0x4533dc
xor eax, eax
lea edx, [ecx + 2]
mov ax, word [edx]
push eax
call fcn.004103b8
add esp, 4
test al, al
jne 0x4533dc
mov ecx, edx
mov byte [ebp - 0x6a], 1
mov dword [ebp + 0x78], ecx
jmp 0x4533dc
push ebx
lea eax, [ebp - 0x160]
push eax
lea eax, [ebp + 0x78]
push eax
call fcn.00447018
add esp, 0xc
cmp eax, esi
mov dword [ebp - 0x148], eax
jne 0x4533d9
push edi
jmp 0x456543
mov ecx, dword [ebp + 0x78]
cmp word [ecx], 0x2b
jne 0x4533ec
mov al, byte [ecx]
inc ecx
inc ecx
mov byte [ebp - 0x2a], al
mov dword [ebp + 0x78], ecx
cmp word [ecx], 0x2d
jne 0x4533fd
lea eax, [ebp + 0x78]
push eax
call fcn.0040459d
jmp 0x453411
lea eax, [ebp + 0x44]
push eax
lea eax, [ebp + 0x78]
push eax
call fcn.0043ab58
pop ecx
mov dword [ebp - 0x120], eax
mov eax, dword [ebp + 0x78]
cmp word [eax], 0x40
pop ecx
mov byte [ebp - 0x5b], 1
jne 0x453428
inc eax
inc eax
mov dword [ebp + 0x78], eax
mov byte [ebp - 0x5b], 0
cmp word [eax], 0x2d
jne 0x453439
lea eax, [ebp + 0x78]
push eax
call fcn.0040459d
jmp 0x45344d
lea eax, [ebp + 0x30]
push eax
lea eax, [ebp + 0x78]
push eax
call fcn.0043ab58
pop ecx
mov dword [ebp - 0x10c], eax
cmp byte [ebp + 0x43], 0
pop ecx
je 0x453484
push ebx
lea eax, [ebp - 0x1c4]
push eax
lea eax, [ebp + 0x78]
push eax
call fcn.00447018
mov dword [ebp - 0x128], eax
lea eax, [ebp - 0x188]
push eax
lea eax, [ebp + 0x78]
push eax
call fcn.0043aabb
add esp, 0x14
mov dword [ebp - 0x13c], eax
mov eax, dword [ebp + 0x78]
mov dword [ebp - 0x174], ebx
mov cx, word [eax]
cmp cx, 0x2d
je 0x4534de
cmp byte [ebp + 0x43], 0
je 0x4534de
cmp cx, bx
je 0x4534de
mov dword [ebp - 0x180], eax
push ebx
lea eax, [ebp - 0x174]
push eax
lea eax, [ebp - 0x180]
push eax
call fcn.00416853
mov eax, dword [ebp - 0x180]
mov ecx, dword [ebp - 0x174]
add esp, 0xc
mov dword [ebp - 0x140], 1
mov dword [ebp - 0x124], eax
mov word [eax + ecx*2], bx
cmp byte [ebp + 0x4e], 1
mov byte [ebp - 0xf], 0
mov byte [ebp - 0x2b], 0
je 0x4534f5
cmp byte [ebp + 0x4e], 4
jge 0x4534f5
mov dword [ebp - 0x18], ebx
mov ebx, dword [ebp - 0xdc]
push 5
push ebx
mov edi, ebx
push 0x49c510
mov dword [ebp + 0x78], edi
call fcn.004318b1
add esp, 0xc
test al, al
je 0x453566
lea ecx, [ebx + 0xa]
mov edi, ecx
xor edx, edx
jmp 0x453530
mov eax, edx
call fcn.0040bc38
test al, al
jne 0x45353b
cmp dx, 0x23
je 0x45353b
inc ecx
inc ecx
mov dword [ebp + 0x78], ecx
mov dx, word [ecx]
test dx, dx
jne 0x45351d
sub ecx, edi
sar ecx, 1
test ecx, ecx
jle 0x453557
push ecx
push edi
lea ecx, [ebp - 0x8c]
call fcn.00435e88
mov dword [ebp - 0x18], 0xfffc0000
lea eax, [ebp + 0x78]
push eax
call fcn.00430961
mov edi, dword [ebp + 0x78]
pop ecx
jmp 0x4535ac
push 2
push ebx
push 0x49c50c
call fcn.004318b1
add esp, 0xc
test al, al
je 0x453580
lea edi, [ebx + 4]
mov dword [ebp + 0x78], edi
xor eax, eax
mov ax, word [edi]
push eax
call fcn.004103b8
add esp, 4
test al, al
je 0x4535a4
lea eax, [ebp - 0x18]
push eax
lea eax, [ebp + 0x78]
push eax
call fcn.00438b8e
mov edi, dword [ebp + 0x78]
pop ecx
pop ecx
cmp word [ebx], 0
setne byte [ebp - 0xf]
mov ax, word [edi]
cmp ax, 0x23
je 0x4535bf
cmp ax, 0x3a
jne 0x453665
inc edi
inc edi
push 2
push edi
push 0x49c508
mov dword [ebp + 0x78], edi
call fcn.004318b1
push 2
push edi
push 0x49c504
mov byte [ebp + 0x67], al
call fcn.004318b1
mov byte [ebp + 0x2d], al
mov al, byte [ebp + 0x67]
or al, byte [ebp + 0x2d]
add esp, 0x18
neg al
sbb al, al
inc al
cmp byte [ebp + 0x67], 0
mov byte [ebp - 0x2b], al
jne 0x45360b
cmp word [edi], 0x2b
jne 0x45360b
inc edi
inc edi
mov byte [ebp - 5], 1
mov dword [ebp + 0x78], edi
cmp byte [ebp + 0x2d], 0
jne 0x45362f
mov ax, word [edi]
cmp ax, 0x40
je 0x453626
cmp ax, 0x2d
je 0x453626
cmp ax, 0x3d
jne 0x45362f
or dword [ebp - 0x20], 2
inc edi
inc edi
mov dword [ebp + 0x78], edi
xor eax, eax
mov ax, word [edi]
push eax
call fcn.004103b8
add esp, 4
test al, al
je 0x453665
lea eax, [ebp + 0x58]
push eax
lea eax, [ebp + 0x78]
push eax
call fcn.00438b8e
pop ecx
xor edi, edi
test eax, eax
pop ecx
jle 0x453667
cmp dword [ebp + 0x58], edi
mov byte [ebp - 0xd], 1
jne 0x45366a
mov byte [ebp + 0x67], 1
jmp 0x45366c
xor edi, edi
cmp dword [ebp + 0x58], edi
jg 0x45367f
cmp byte [ebp + 0x4e], 0
jg 0x45367f
cmp dword [ebp - 0x7c], edi
jne 0x45367f
cmp dword [ebp - 0x44], edi
mov dword [ebp + 0x50], edi
je 0x453686
mov dword [ebp + 0x50], 1
cmp byte [ebp + 0x4d], 0
mov eax, dword [ebp - 0x18]
mov dword [ebp - 0x14], eax
je 0x4536a7
cmp dword [ebp + 0x50], edi
jne 0x4536a7
cmp word [ebx], di
jne 0x4536a7
mov eax, 0xfffc0000
mov dword [ebp - 0x18], eax
mov dword [ebp - 0x14], eax
mov eax, dword [ebp - 0x8c]
lea ebx, [ebp - 0x274]
mov word [ebp - 0x274], di
cmp word [eax], di
mov dword [ebp - 0x94], ebx
je 0x4536cd
mov ebx, eax
mov dword [ebp - 0x94], ebx
push dword [ebp - 0x18]
lea eax, [ebp - 0x274]
push 0x49b3e8
push eax
call dword [sym.imp.USER32.DLL_wsprintfW]
add esp, 0xc
push 0x11
push ebx
push 0x49b44c
call dword [sym.imp.SHLWAPI.DLL_StrCmpNIW]
test eax, eax
jne 0x45370c
lea eax, [ebp - 0x14]
push eax
lea eax, [ebp + 0x28]
add ebx, 0x22
push eax
mov dword [ebp + 0x28], ebx
call fcn.00438b8e
pop ecx
pop ecx
cmp byte [ebp + 0x2e], 0
jne 0x45371e
cmp byte [ebp + 0x57], 0
jne 0x45371e
cmp byte [ebp + 0x5f], 0
je 0x453732
cmp dword [ebp - 0x18], edi
jge 0x453732
cmp dword [ebp - 0x14], edi
jge 0x453732
push 0x4ad290
jmp 0x45639c
cmp byte [ebp + 0x4d], 0
mov ebx, 0x80070057
mov dword [ebp + 0x6c], edi
mov dword [ebp], esi
mov dword [ebp - 0x50], edi
mov dword [ebp - 0x90], ebx
mov byte [ebp + 0x68], 0
je 0x45380b
cmp dword [ebp - 0x14], edi
jge 0x45376e
cmp dword [ebp - 0x3c], esi
jl 0x45376e
jg 0x453765
cmp dword [ebp - 0x40], esi
jbe 0x45376e
cmp dword [ebp + 0x10], edi
je 0x45380b
mov eax, dword [ebp + 0x10]
cmp eax, edi
je 0x4537a6
cmp word [eax], 0x2a
jne 0x4537a6
xor eax, eax
mov al, byte [ebp + 0x4d]
and eax, 2
shr eax, 1
push eax
push dword [ebp - 0x14]
call fcn.004471c6
pop ecx
mov dword [ebp - 0x90], eax
mov dword [ebp - 0x50], eax
xor eax, eax
or byte [0x4ad228], 0x20
pop ecx
mov byte [ebp + 0x68], 0x20
cmp dword [ebp - 0x14], edi
jge 0x4537bb
cmp dword [ebp - 0x3c], esi
jl 0x4537bb
jg 0x4537b7
cmp dword [ebp - 0x40], esi
jbe 0x4537bb
cmp eax, edi
je 0x45380b
push eax
xor eax, eax
mov al, byte [ebp + 0x4d]
and eax, 2
shr eax, 1
push eax
push dword [ebp - 0xf8]
push dword [ebp - 0xfc]
push dword [ebp - 0x3c]
push dword [ebp - 0x40]
push dword [ebp - 0x14]
call fcn.004041b3
mov dword [ebp - 0x50], eax
mov dword [ebp - 0x90], eax
mov eax, dword [ebp - 0x40]
and eax, dword [ebp - 0x3c]
add esp, 0x1c
cmp eax, esi
je 0x453804
or byte [ebp + 0x68], 0x10
or byte [0x4ad228], 0x10
jmp 0x45380b
mov byte [0x4ad228], 0
cmp byte [ebp + 0x1f], 0
jbe 0x453a4c
cmp byte [ebp + 0x43], 0
jne 0x453a4c
cmp dword [ebp - 0x18], edi
jge 0x453833
mov eax, dword [ebp - 0x8c]
cmp word [eax], di
je 0x453a2a
mov eax, dword [ebp + 0x14]
cmp eax, edi
jle 0x453843
cmp eax, dword [ebp + 0x58]
je 0x453a2a
cmp dword [ebp + 0x58], 4
jg 0x453a2a
cmp byte [ebp + 0x2f], 2
jl 0x453a2a
push edi
push 0x20000000
push 3
push edi
push 3
push 0xc0000000
push dword [ebp - 0x94]
lea ecx, [ebp + 0x6c]
call fcn.004045f9
cmp dword [ebp + 0x6c], edi
je 0x45397c
push 0x800
push 1
push 0
push dword [ebp + 0x6c]
call fcn.0043a9c5
add esp, 0x10
push 0x600
lea ecx, [ebp - 0xc]
mov dword [ebp], eax
call fcn.00435c56
mov esi, dword [ebp - 0xc]
push 0
lea eax, [ebp - 0x30]
push eax
add esi, 0x200
and esi, 0xfffffe00
push 0x200
lea edi, [esi + 0x200]
push edi
push dword [ebp + 0x6c]
call dword [sym.imp.KERNEL32.DLL_ReadFile]
test eax, eax
jne 0x4538ff
call dword [sym.imp.KERNEL32.DLL_GetLastError]
mov esi, eax
test esi, esi
jne 0x4538dd
inc esi
lea ecx, [ebp - 0xc]
call fcn.0043092f
lea ecx, [ebp + 0x68]
call fcn.0043408a
lea ecx, [ebp + 0x6c]
call fcn.00402b27
push 0x4ad290
jmp 0x4559c1
push 0x200
push edi
push esi
call fcn.004102e0
dec dword [ebp + 0x14]
dec dword [ebp + 0x58]
mov ebx, dword [ebp + 0x14]
mov eax, dword [ebp + 0x58]
shl eax, 4
shl ebx, 4
push 0x10
lea ecx, [ebx + esi + 0x1be]
mov dword [ebp + 0x28], eax
push ecx
lea eax, [eax + edi + 0x1be]
push eax
mov byte [edi + 0x1fe], 0x55
mov byte [edi + 0x1ff], 0xaa
call fcn.004102e0
mov eax, dword [ebp + 0x28]
lea eax, [eax + esi + 0x1be]
push 0x10
push eax
lea eax, [ebx + edi + 0x1be]
push eax
call fcn.004102e0
add esp, 0x24
xor eax, eax
push eax
push eax
push eax
push dword [ebp + 0x6c]
call dword [sym.imp.KERNEL32.DLL_SetFilePointer]
test eax, eax
je 0x45399f
lea ecx, [ebp - 0xc]
call fcn.0043092f
lea ecx, [ebp + 0x68]
call fcn.0043408a
lea ecx, [ebp + 0x6c]
call fcn.00402b27
push 0x4ad290
call dword [sym.imp.KERNEL32.DLL_LeaveCriticalSection]
xor esi, esi
inc esi
jmp 0x45654b
and dword [ebp - 0x50], 0
mov ebx, 0x200
push ebx
push edi
push esi
call fcn.00436036
add esp, 0xc
test eax, eax
jne 0x4539e2
push eax
lea eax, [ebp - 0x30]
push eax
push ebx
push edi
push dword [ebp + 0x6c]
call dword [sym.imp.KERNEL32.DLL_WriteFile]
test eax, eax
jne 0x4539d9
call dword [sym.imp.KERNEL32.DLL_GetLastError]
test eax, eax
jne 0x4539d6
inc eax
mov dword [ebp - 0x50], eax
push dword [ebp + 0x6c]
call fcn.00434051
pop ecx
mov al, byte [ebp + 0x5f]
or al, byte [ebp + 0x3a]
lea ecx, [ebp - 0xc]
or byte [ebp + 0x57], al
mov al, byte [ebp + 0x5f]
or al, byte [ebp + 0x57]
or al, byte [ebp + 0x3a]
je 0x453a02
and dword [ebp + 0x50], 0
jmp 0x455859
call fcn.0043092f
lea ecx, [ebp + 0x68]
call fcn.0043408a
lea ecx, [ebp + 0x6c]
call fcn.00402b27
push 0x4ad290
call dword [sym.imp.KERNEL32.DLL_LeaveCriticalSection]
mov esi, dword [ebp - 0x50]
jmp 0x45654b
lea ecx, [ebp + 0x68]
call fcn.0043408a
lea ecx, [ebp + 0x6c]
call fcn.00402b27
push 0x4ad290
call dword [sym.imp.KERNEL32.DLL_LeaveCriticalSection]
mov esi, ebx
jmp 0x45654b
cmp byte [ebp + 0x2e], 0x10
jne 0x453a5f
test byte [ebp + 0x5f], 0x20
jne 0x45585e
or esi, 0xffffffff
xor ebx, ebx
cmp byte [ebp + 0x4d], bl
mov edi, 0x200
je 0x453ab6
cmp dword [ebp + 0x50], ebx
jne 0x453ab6
cmp byte [ebp + 0x3a], bl
jne 0x45585e
cmp byte [ebp + 0x57], bl
jne 0x45585e
cmp byte [ebp + 0x5f], bl
jne 0x45585e
lea ecx, [ebp + 0x68]
call fcn.0043408a
lea ecx, [ebp + 0x6c]
call fcn.00402b27
mov eax, 0x4ad290
test eax, eax
je 0x453aab
push eax
call dword [sym.imp.KERNEL32.DLL_LeaveCriticalSection]
mov esi, dword [ebp - 0x90]
jmp 0x45654b
push 0x600
lea ecx, [ebp + 0x60]
call fcn.00435c56
mov eax, dword [ebp + 0x60]
add eax, 0x200
and eax, 0xfffffe00
cmp dword [ebp - 0x7c], ebx
mov dword [ebp + 0x20], eax
jne 0x4559cc
cmp dword [ebp - 0x44], ebx
jne 0x455d00
mov al, byte [ebp + 0x4e]
cmp al, 6
je 0x45607d
cmp al, 1
je 0x456137
cmp al, 2
je 0x456165
cmp al, 3
je 0x4561e4
cmp al, 4
je 0x456463
cmp al, 5
je 0x456463
cmp al, 7
je 0x4562cd
cmp byte [ebp + 0x2d], 0
je 0x453b42
mov dword [ebp - 0x84], ebx
mov dword [ebp - 0x34], ebx
mov dword [ebp + 0x30], ebx
mov dword [ebp + 0x34], ebx
mov dword [ebp + 0x44], ebx
mov dword [ebp + 0x48], ebx
mov dword [ebp + 0x58], 5
cmp byte [ebp + 0x67], 0
je 0x453b4f
mov dword [ebp + 0x58], 5
cmp byte [ebp + 0x27], 0
je 0x453b6a
mov dword [ebp - 0x84], ebx
mov dword [ebp - 0x34], ebx
mov dword [ebp + 0x30], ebx
mov dword [ebp + 0x34], ebx
mov dword [ebp + 0x44], ebx
mov dword [ebp + 0x48], ebx
cmp byte [ebp - 0xf], 0
je 0x453b79
cmp dword [ebp - 0x14], ebx
jl 0x4559dc
cmp byte [ebp - 0x2b], 0
je 0x453b88
cmp dword [ebp + 0x58], ebx
jl 0x4559dc
dec dword [ebp + 0x58]
cmp byte [ebp + 0x43], 0
mov dword [ebp - 0xa0], esi
mov dword [ebp - 0x9c], esi
mov dword [ebp - 0xc0], esi
mov dword [ebp - 0xbc], esi
mov byte [ebp - 0x5c], 0
mov byte [ebp - 0x5d], 0
mov dword [ebp + 0x28], ebx
mov byte [ebp + 0x1f], 0
mov byte [ebp - 0x2c], 0
mov dword [ebp - 0x28], ebx
jne 0x453bd8
cmp dword [ebp - 0x34], ebx
jne 0x453bd8
mov eax, dword [ebp + 0x44]
or eax, dword [ebp + 0x48]
jne 0x453bd8
mov eax, dword [ebp + 0x30]
or eax, dword [ebp + 0x34]
jne 0x453bd8
mov byte [ebp + 0x27], 1
push ebx
call dword [sym.imp.KERNEL32.DLL_SetLastError]
cmp byte [ebp - 0x59], 0
je 0x453dee
cmp dword [ebp + 0x48], ebx
jl 0x453dee
jg 0x453bfd
cmp dword [ebp + 0x44], ebx
jb 0x453dee
cmp dword [ebp + 0x34], ebx
jl 0x453dee
jg 0x453c12
cmp dword [ebp + 0x30], 0x11
jb 0x453dee
push ebx
push edi
push dword [ebp + 0x48]
mov dword [ebp + 0x10], 1
push dword [ebp + 0x44]
call fcn.0047fe80
test byte [ebp + 0x68], 0x11
jne 0x453c45
push ebx
push ebx
push ebx
push 0x2200
push edx
push eax
push dword [ebp - 0x14]
call fcn.004041b3
add esp, 0x1c
or byte [ebp + 0x68], 1
push ebx
push 0x20000000
push 3
push ebx
push 3
push 0xc0000000
push dword [ebp - 0x94]
lea ecx, [ebp + 0x6c]
call fcn.004045f9
cmp dword [ebp + 0x6c], ebx
je 0x4562e4
cmp dword [ebp + 0x10], ebx
je 0x453c96
cmp byte [ebp + 0x67], 0
jne 0x453c96
push dword [ebp + 0x48]
push dword [ebp + 0x44]
push dword [ebp + 0x6c]
call fcn.0042c82c
add esp, 0xc
lea ecx, [ebp + 0x68]
call fcn.0043408a
mov dword [ebp - 0x90], ebx
push 0x800
push 1
push ebx
push dword [ebp + 0x6c]
call fcn.0043a9c5
add esp, 0x10
cmp byte [ebp + 0x2e], 0
mov dword [ebp], eax
jne 0x454483
cmp dword [ebp - 0x34], 0xff
mov dword [ebp - 0x11c], ebx
mov dword [ebp - 0x118], ebx
jg 0x4562f1
cmp byte [ebp + 0x67], 0
jne 0x453d1a
cmp dword [ebp + 0x58], ebx
jge 0x453d1a
cmp dword [ebp + 0x48], ebx
jg 0x4562f1
jl 0x453cee
cmp dword [ebp + 0x44], ebx
jae 0x4562f1
cmp dword [ebp + 0x34], ebx
jg 0x4562f1
jl 0x453d02
cmp dword [ebp + 0x30], ebx
jae 0x4562f1
cmp dword [ebp - 0x34], ebx
jge 0x4562f1
mov dword [ebp - 0x34], esi
mov dword [ebp + 0x30], esi
mov dword [ebp + 0x34], esi
mov dword [ebp + 0x44], esi
mov dword [ebp + 0x48], esi
cmp byte [ebp + 0x67], 0
mov eax, dword [ebp + 0x58]
mov dword [ebp - 0x130], ebx
mov dword [ebp - 0x12c], ebx
mov dword [ebp - 0xac], ebx
mov dword [ebp - 0xa8], ebx
mov dword [ebp - 0x150], esi
mov dword [ebp - 0x14c], esi
mov dword [ebp - 0xe4], esi
mov dword [ebp - 0xe0], esi
mov dword [ebp - 0xc], eax
jne 0x453d65
cmp byte [ebp + 0x2d], 0
jne 0x453d65
cmp eax, 4
jl 0x454356
cmp byte [ebp + 0x43], 0
jne 0x454356
cmp byte [ebp + 0x39], 0
jne 0x454356
cmp byte [ebp + 0x67], 0
je 0x453d86
mov dword [ebp + 0x58], 4
cmp dword [ebp - 0x34], 5
je 0x4559dc
cmp dword [ebp - 0x34], 0xf
je 0x4559dc
push 0x100000
lea ecx, [ebp - 0x1c]
mov dword [ebp + 0x50], ebx
call fcn.00435c56
lea eax, [ebp + 0x50]
push eax
push dword [ebp - 0x1c]
push dword [ebp + 0x6c]
call fcn.00433ed8
mov ecx, dword [ebp + 0x58]
mov edx, dword [ebp + 0x50]
add esp, 0xc
cmp byte [ebp + 0x67], 0
mov edi, eax
jne 0x453df6
cmp edx, ecx
jge 0x453dd3
cmp ecx, 4
jge 0x453e3c
cmp byte [ebp + 0x67], 0
jne 0x453df6
cmp byte [ebp + 0x2d], 0
jne 0x453df6
lea eax, [ecx + 1]
cmp eax, 4
mov byte [ebp + 0x3b], 0
jg 0x453e28
dec eax
jmp 0x453e2f
mov dword [ebp + 0x10], ebx
jmp 0x453c45
cmp byte [ebp + 0x2d], 0
mov byte [ebp + 0x3b], 1
jne 0x453e44
cmp byte [ebp + 0x67], 0
je 0x453e49
cmp dword [ebp - 0x34], ebx
jl 0x453e3c
cmp word [ebp - 0x84], bx
jle 0x453e20
mov dword [ebp - 0x84], 0x80
jmp 0x453e49
mov dword [ebp - 0x84], ebx
jmp 0x453e49
lea eax, [eax*4 - 0x10]
cmp eax, ebx
jle 0x453e3c
cmp eax, edx
jl 0x453e49
cmp ecx, 4
jle 0x453e49
lea ecx, [ebp - 0x1c]
jmp 0x4545a9
cmp edx, 4
jle 0x453e3c
cmp edx, 4
jle 0x453e59
lea eax, [edx - 4]
and eax, 0xfffffffc
mov dword [ebp + 0x18], eax
jmp 0x453e5c
mov dword [ebp + 0x18], ebx
cmp byte [ebp + 0x3b], 0
mov dword [ebp + 0x3c], esi
mov dword [ebp - 0xc], esi
jne 0x453e7c
cmp ecx, 4
jl 0x453e79
lea eax, [ecx*4 - 0x10]
mov dword [ebp + 0x18], eax
jmp 0x453e7c
mov dword [ebp + 0x18], ebx
mov dword [ebp + 8], esi
xor edx, edx
lea eax, [edi + 0x50]
mov cl, byte [eax]
cmp cl, 5
je 0x453e90
cmp cl, 0xf
jne 0x453e93
mov dword [ebp + 8], edx
inc edx
add eax, 0x90
cmp edx, 4
jl 0x453e84
cmp byte [ebp + 0x3b], 0
je 0x453ea9
cmp dword [ebp + 8], ebx
jl 0x453e3c
mov eax, dword [ebp + 8]
lea eax, [eax + eax*8]
push ebx
shl eax, 4
lea esi, [eax + edi + 0x30]
push 0x200
push dword [esi + 0xc]
push dword [esi + 8]
call fcn.0047fdd0
push ebx
push 0x200
push dword [esi + 0x14]
mov dword [ebp - 0x19c], eax
push dword [esi + 0x10]
mov dword [ebp - 0x198], edx
mov dword [ebp - 0x138], eax
mov dword [ebp - 0x134], edx
call fcn.0047fdd0
mov dword [ebp - 0x17c], eax
mov eax, dword [ebp + 0x18]
lea eax, [eax + eax*8]
shl eax, 4
cmp byte [ebp + 0x2d], 0
mov dword [ebp - 0x178], edx
lea esi, [eax + edi + 0x30]
je 0x453fc8
mov eax, dword [ebp + 0x50]
xor esi, esi
cmp eax, 8
jne 0x453f2b
mov ecx, dword [ebp - 0x19c]
mov edx, dword [ebp - 0x198]
jmp 0x453f7e
add eax, 0xfffffff8
and eax, 0xfffffffc
lea eax, [eax + eax*8]
shl eax, 4
lea edi, [eax + edi + 0x30]
lea eax, [edi + 0x20]
mov cl, byte [eax]
cmp cl, 5
je 0x453f5a
cmp cl, 0xf
je 0x453f5a
inc esi
add eax, 0x90
cmp esi, 4
jl 0x453f3e
jmp 0x453e3c
push ebx
push 0x200
push dword [edi + 0xc]
push dword [edi + 8]
call fcn.0047fdd0
mov ecx, eax
mov eax, dword [edi + 0x24]
xor edi, edi
sub ecx, eax
sbb edx, edi
cmp esi, ebx
jl 0x453e3c
xor eax, eax
mov dword [ebp - 0x1ec], ebx
lea edi, [ebp - 0x1e8]
stosd dword es:[edi], eax
stosd dword es:[edi], eax
push esi
stosd dword es:[edi], eax
lea eax, [ebp - 0x1ec]
push eax
push edx
push ecx
push dword [ebp + 0x6c]
call fcn.0043ae3e
add esp, 0x14
cmp byte [ebp + 0x5f], 0
mov dword [ebp - 0x50], ebx
jne 0x453fbd
cmp byte [ebp + 0x57], 0
jne 0x453fbd
cmp byte [ebp + 0x3a], 0
je 0x456315
mov dword [ebp + 0x50], ebx
lea ecx, [ebp - 0x1c]
jmp 0x455851
cmp dword [ebp + 0x50], 4
jg 0x453fd6
mov eax, dword [ebp + 8]
mov dword [ebp + 0x3c], eax
jmp 0x454001
xor edx, edx
lea eax, [esi + 0x20]
mov cl, byte [eax]
cmp cl, 5
je 0x453fe7
cmp cl, 0xf
jne 0x453fea
mov dword [ebp + 0x3c], edx
inc edx
add eax, 0x90
cmp edx, 4
jl 0x453fdb
cmp byte [ebp + 0x3b], 0
jne 0x454001
mov eax, dword [ebp + 0x18]
add dword [ebp + 0x3c], eax
cmp dword [ebp + 0x3c], ebx
jge 0x454010
cmp byte [ebp + 0x67], 0
je 0x453e3c
cmp byte [ebp + 0x3b], 0
je 0x45401b
mov dword [ebp - 0xc], ebx
jmp 0x454045
xor edx, edx
lea eax, [esi + 0x260]
mov cl, byte [eax]
test cl, cl
jne 0x45402d
cmp edx, ebx
jne 0x45403a
cmp cl, 5
je 0x45403a
cmp cl, 0xf
je 0x45403a
mov dword [ebp - 0xc], edx
inc edx
add eax, 0x90
cmp edx, 4
jl 0x454023
cmp byte [ebp + 0x3b], 0
jne 0x454054
cmp dword [ebp - 0xc], ebx
jl 0x453e3c
cmp byte [ebp + 0x67], 0
je 0x45425d
mov eax, dword [ebp + 0x18]
cmp eax, ebx
jg 0x454068
mov eax, dword [ebp + 8]
lea eax, [eax + eax*8]
shl eax, 4
push 0
lea ebx, [eax + edi + 0x30]
mov ecx, dword [ebx + 0xc]
mov eax, dword [ebx + 8]
push 0x200
push ecx
push eax
mov dword [ebp - 0x100], ecx
call fcn.0047fdd0
cmp dword [ebp + 0x50], 4
mov dword [ebp - 0x130], eax
mov dword [ebp - 0x12c], edx
jle 0x45414f
cmp dword [ebp + 0x3c], 0
jge 0x45414f
cmp byte [esi + 0x20], 0
je 0x456322
mov eax, dword [ebp + 0x50]
cmp eax, 8
jle 0x4540c7
add eax, 0xfffffff8
and eax, 0xfffffffc
inc eax
jmp 0x4540ca
mov eax, dword [ebp + 8]
push 0
lea eax, [eax + eax*8]
mov ebx, 0x200
push ebx
shl eax, 4
push dword [eax + edi + 0x3c]
push dword [eax + edi + 0x38]
call fcn.0047fdd0
mov ecx, dword [esi + 0x14]
mov dword [ebp - 0x130], eax
mov eax, dword [esi + 0x10]
add eax, dword [esi + 8]
push 0
adc ecx, dword [esi + 0xc]
push ebx
push ecx
push eax
mov dword [ebp - 0x12c], edx
call fcn.0047fdd0
mov ecx, dword [ebp - 0x178]
mov esi, eax
sub eax, dword [ebp - 0x138]
mov edi, edx
mov dword [ebp - 0x150], eax
mov eax, edi
sbb eax, dword [ebp - 0x134]
mov dword [ebp - 0x14c], eax
mov eax, dword [ebp - 0x17c]
sub eax, esi
sbb ecx, edi
add eax, dword [ebp - 0x138]
adc ecx, dword [ebp - 0x134]
mov dword [ebp - 0xe4], eax
mov dword [ebp - 0xe0], ecx
jmp 0x4541a0
cmp dword [ebp + 0x18], 0
jle 0x454172
mov eax, dword [ebx + 0x10]
add eax, dword [ebx + 8]
mov ecx, dword [ebx + 0x14]
adc ecx, dword [ebp - 0x100]
push 0
push 0x200
push ecx
push eax
call fcn.0047fdd0
mov ecx, dword [ebp - 0x178]
mov esi, eax
mov eax, dword [ebp - 0x17c]
sub eax, esi
mov edi, edx
sbb ecx, edi
add eax, dword [ebp - 0x138]
adc ecx, dword [ebp - 0x134]
and dword [ebp - 0xe4], 0
and dword [ebp - 0xe0], 0
test ecx, ecx
mov dword [ebp - 0xac], esi
mov dword [ebp - 0xa8], edi
jl 0x45632a
jg 0x4541be
test eax, eax
jbe 0x45632a
cmp byte [ebp - 0x2a], 0
je 0x4541ca
add dword [ebp + 0x44], esi
adc dword [ebp + 0x48], edi
mov ebx, esi
add ebx, 1
mov edx, edi
adc edx, 0
cmp dword [ebp + 0x48], edx
jg 0x4541e6
jl 0x4541e0
cmp dword [ebp + 0x44], ebx
ja 0x4541e6
mov dword [ebp + 0x44], ebx
mov dword [ebp + 0x48], edx
sub eax, dword [ebp + 0x44]
sbb ecx, dword [ebp + 0x48]
add eax, esi
adc ecx, edi
cmp dword [ebp + 0x34], ecx
jl 0x454202
jg 0x4541fc
cmp dword [ebp + 0x30], eax
jbe 0x454202
mov dword [ebp + 0x30], eax
mov dword [ebp + 0x34], ecx
xor ebx, ebx
cmp dword [ebp + 0x34], ebx
jl 0x453e3c
jg 0x454218
cmp dword [ebp + 0x30], ebx
jb 0x453e3c
cmp dword [ebp + 0x18], ebx
mov eax, dword [ebp + 0x50]
jle 0x454236
dec eax
and eax, 0xfffffffc
cmp eax, 3
jg 0x45422c
inc eax
jmp 0x45423e
cdq
push 4
pop ecx
idiv ecx
add eax, ecx
jmp 0x45423e
and eax, 0xfffffffc
cmp eax, 3
jg 0x454241
inc eax
jmp 0x454249
cdq
push 4
pop ecx
idiv ecx
add eax, ecx
mov dword [ebp + 0x58], eax
mov dword [ebp - 0x11c], esi
mov dword [ebp - 0x118], edi
jmp 0x454347
mov eax, dword [ebp + 0x3c]
lea eax, [eax + eax*8]
shl eax, 4
lea esi, [eax + edi + 0x30]
mov eax, dword [esi + 8]
mov ecx, dword [esi + 0xc]
mov edx, eax
mov dword [ebp - 0x1ac], eax
mov eax, 0x200
push ebx
add edx, eax
mov dword [ebp - 0x1a8], ecx
push eax
adc ecx, ebx
push ecx
push edx
call fcn.0047fdd0
mov ecx, dword [esi + 0x10]
mov edi, eax
mov eax, 0x200
mov dword [ebp - 0x1b0], edx
mov dword [ebp - 0xa8], edx
mov edx, dword [esi + 0x14]
push ebx
sub ecx, eax
push eax
sbb edx, ebx
push edx
push ecx
mov dword [ebp - 0xac], edi
call fcn.0047fdd0
cmp byte [ebp - 0x2a], 0
je 0x4542ce
add dword [ebp + 0x44], edi
mov ecx, dword [ebp - 0x1b0]
adc dword [ebp + 0x48], ecx
cmp dword [ebp + 0x48], ebx
jl 0x4542f2
jg 0x4542da
cmp dword [ebp + 0x44], ebx
jbe 0x4542f2
mov ecx, dword [ebp - 0x1b0]
cmp dword [ebp + 0x48], ecx
jg 0x4542f2
jl 0x4542ec
cmp dword [ebp + 0x44], edi
ja 0x4542f2
mov dword [ebp + 0x44], edi
mov dword [ebp + 0x48], ecx
cmp dword [ebp + 0x34], ebx
jl 0x454324
jg 0x4542fe
cmp dword [ebp + 0x30], ebx
jbe 0x454324
cmp dword [ebp + 0x34], edx
jl 0x454310
jg 0x45430a
cmp dword [ebp + 0x30], eax
jbe 0x454310
mov dword [ebp + 0x30], eax
mov dword [ebp + 0x34], edx
cmp dword [ebp + 0x34], ebx
jl 0x453e3c
jg 0x454324
cmp dword [ebp + 0x30], ebx
jb 0x453e3c
push ebx
push 0x200
push dword [ebp - 0x1a8]
push dword [ebp - 0x1ac]
call fcn.0047fdd0
mov dword [ebp - 0x11c], eax
mov dword [ebp - 0x118], edx
lea ecx, [ebp - 0x1c]
call fcn.0043092f
xor ebx, ebx
mov edi, 0x200
cmp dword [ebp + 0x58], 4
push ebx
push edi
push dword [ebp - 0x118]
setge byte [ebp - 0x29]
push dword [ebp - 0x11c]
call fcn.0047fe80
cmp dword [ebp + 0x10], ebx
mov dword [ebp - 0x74], eax
mov dword [ebp - 0x70], edx
je 0x4543a1
cmp byte [ebp + 0x67], 0
je 0x4543a1
push dword [ebp + 0x48]
push dword [ebp + 0x44]
push dword [ebp + 0x6c]
call fcn.0042c82c
add esp, 0xc
lea ecx, [ebp + 0x68]
call fcn.0043408a
mov dword [ebp - 0x90], ebx
mov esi, dword [ebp + 0x20]
push edi
push ebx
add esi, 0x200
push esi
call fcn.0047fd70
push ebx
push dword [ebp - 0x70]
push dword [ebp - 0x74]
push dword [ebp + 0x6c]
call fcn.0043181b
add esp, 0x1c
cmp eax, dword [ebp - 0x74]
jne 0x4563b4
cmp edx, dword [ebp - 0x70]
jne 0x4563b4
push ebx
lea eax, [ebp - 0x30]
push eax
push edi
push esi
push dword [ebp + 0x6c]
call dword [sym.imp.KERNEL32.DLL_ReadFile]
push edi
push esi
push dword [ebp + 0x20]
mov dword [ebp + 0x3c], eax
call fcn.004102e0
add esp, 0xc
cmp dword [ebp + 0x3c], ebx
je 0x4563b4
cmp byte [ebp + 0x39], 0
je 0x45448b
cmp byte [ebp + 0x43], 0
jne 0x45448b
push esi
call fcn.00434069
push pe_nt_image_headers32
lea eax, [esi + 0x1be]
push ebx
push eax
call fcn.0047fd70
push edi
push esi
push dword [ebp + 0x20]
mov word [esi + 0x1fe], 0xaa55
call fcn.004309b4
add esp, 0x1c
test eax, eax
je 0x45446b
push ebx
push dword [ebp - 0x70]
push dword [ebp - 0x74]
push dword [ebp + 0x6c]
call fcn.0043181b
add esp, 0x10
push ebx
lea eax, [ebp - 0x30]
push eax
push edi
push esi
push dword [ebp + 0x6c]
mov dword [ebp - 0x30], ebx
call dword [sym.imp.KERNEL32.DLL_WriteFile]
neg eax
sbb eax, eax
inc eax
mov dword [ebp - 0x50], eax
mov al, byte [ebp + 0x5f]
or al, byte [ebp + 0x57]
or al, byte [ebp + 0x3a]
je 0x45632f
cmp dword [ebp - 0x18], ebx
jl 0x45632f
mov dword [ebp + 0x50], ebx
jmp 0x455856
cmp byte [ebp + 0x2f], 0
jne 0x4544a1
cmp byte [ebp - 0xd], 0
je 0x4544b0
cmp dword [ebp + 0x58], 1
jle 0x4559dc
cmp byte [ebp - 0xd], 0
je 0x4544b0
cmp dword [ebp + 0x58], ebx
jl 0x4559dc
push dword [ebp + 0x6c]
call fcn.00433ad8
lea ecx, [ebp + 4]
mov dword [ebp + 8], eax
mov dword [esp], 0x100000
call fcn.00435c56
cmp dword [ebp - 0x14], ebx
mov esi, dword [ebp + 4]
mov dword [ebp - 0x30], ebx
mov dword [ebp - 0x58], ebx
mov dword [ebp - 0x54], ebx
jl 0x4544f4
push dword [ebp + 0x6c]
call fcn.00433c53
pop ecx
push ebx
push dword [ebp + 8]
push edx
push eax
call fcn.0047fdd0
mov dword [ebp - 0x54], edx
jmp 0x45453b
lea eax, [ebp - 0x210]
push eax
push ebx
push dword [ebp - 0x94]
call dword [sym.imp.KERNEL32.DLL_GetFileAttributesExW]
test eax, eax
je 0x45453e
test byte [ebp - 0x210], 0x10
jne 0x45453e
mov eax, dword [ebp - 0x1f4]
mov edx, dword [ebp - 0x1f0]
and eax, 0xfffffe00
xor ecx, ecx
shld ecx, eax, 0x17
shl eax, 0x17
shr edx, 9
xor edi, edi
or eax, edx
or ecx, edi
mov dword [ebp - 0x54], ecx
mov dword [ebp - 0x58], eax
lea eax, [ebp - 0xb0]
push eax
push esi
push dword [ebp + 0x6c]
call fcn.00433ed8
mov ecx, dword [ebp - 0x8c]
mov cx, word [ecx]
add esp, 0xc
cmp cx, bx
mov dword [ebp - 0xb0], eax
jne 0x454569
cmp eax, ebx
je 0x4545a6
cmp eax, ebx
je 0x454571
mov eax, dword [eax]
jmp 0x454573
xor eax, eax
cmp eax, 1
sete byte [ebp + 0x4f]
cmp byte [ebp + 0x4f], 0
je 0x45458a
cmp byte [ebp - 0x69], 0
mov byte [ebp + 0x2c], 1
je 0x45458e
mov byte [ebp + 0x2c], 0
cmp byte [ebp - 0x6b], 0
jne 0x4545b9
cmp byte [ebp + 0x39], 0
jne 0x4545b9
cmp byte [ebp + 0x2c], 0
je 0x4545b3
cmp byte [ebp + 0x43], 0
jne 0x4545b9
lea ecx, [ebp + 4]
call fcn.0043092f
jmp 0x4559dc
cmp byte [ebp + 0x43], 0
jne 0x4545a6
cmp cx, bx
mov eax, dword [ebp - 0xc8]
mov dword [ebp + 0x18], eax
mov eax, dword [ebp - 0xd0]
mov dword [ebp + 0x50], eax
mov eax, dword [ebp - 0xd8]
mov dword [ebp + 0x3c], eax
jne 0x454686
xor eax, eax
mov dword [ebp - 0x1dc], ebx
lea edi, [ebp - 0x1d8]
stosd dword es:[edi], eax
stosd dword es:[edi], eax
stosd dword es:[edi], eax
stosd dword es:[edi], eax
push ebx
stosd dword es:[edi], eax
lea eax, [ebp - 0x30]
push eax
push 0x18
lea eax, [ebp - 0x1dc]
push eax
push ebx
push ebx
push 0x70000
push dword [ebp + 0x6c]
call dword [sym.imp.KERNEL32.DLL_DeviceIoControl]
cmp dword [ebp - 0xc4], ebx
jg 0x454636
jl 0x454620
cmp dword [ebp - 0xc8], ebx
ja 0x454636
mov eax, dword [ebp - 0x1d0]
mov dword [ebp + 0x18], eax
cdq
mov dword [ebp - 0xc8], eax
mov dword [ebp - 0xc4], edx
cmp dword [ebp - 0xcc], ebx
jg 0x45465e
jl 0x454648
cmp dword [ebp - 0xd0], ebx
ja 0x45465e
mov eax, dword [ebp - 0x1cc]
mov dword [ebp + 0x50], eax
cdq
mov dword [ebp - 0xd0], eax
mov dword [ebp - 0xcc], edx
cmp dword [ebp - 0xd4], ebx
jg 0x454686
jl 0x454670
cmp dword [ebp - 0xd8], ebx
ja 0x454686
mov eax, dword [ebp - 0x1c8]
mov dword [ebp + 0x3c], eax
cdq
mov dword [ebp - 0xd8], eax
mov dword [ebp - 0xd4], edx
cmp dword [ebp - 0xc4], ebx
jg 0x4546ac
jl 0x454698
cmp dword [ebp - 0xc8], ebx
ja 0x4546ac
mov eax, 0xff
mov dword [ebp + 0x18], eax
mov dword [ebp - 0xc8], eax
mov dword [ebp - 0xc4], ebx
cmp dword [ebp - 0xcc], ebx
jg 0x4546d0
jl 0x4546be
cmp dword [ebp - 0xd0], ebx
ja 0x4546d0
push 0x3f
pop eax
mov dword [ebp + 0x50], eax
mov dword [ebp - 0xd0], eax
mov dword [ebp - 0xcc], ebx
cmp dword [ebp - 0xd4], ebx
jg 0x4546f6
jl 0x4546e2
cmp dword [ebp - 0xd8], ebx
ja 0x4546f6
mov eax, 0x200
mov dword [ebp + 0x3c], eax
mov dword [ebp - 0xd8], eax
mov dword [ebp - 0xd4], ebx
mov eax, dword [ebp + 0x3c]
cdq
mov ecx, 0x200
idiv ecx
cmp byte [ebp + 0x2c], 0
mov esi, dword [ebp + 8]
mov dword [ebp + 0x10], eax
mov eax, dword [ebp + 4]
lea ebx, [eax + esi]
lea edi, [ebx + esi + 0x10000]
mov dword [ebp - 0x38], edi
jne 0x454fdc
cmp byte [ebp + 0x43], 0
jne 0x454fdc
cmp byte [ebp + 0x27], 0
mov byte [ebp + 0x4f], 0
jne 0x454bc9
mov ebx, dword [ebp + 0x48]
xor eax, eax
cmp ebx, eax
jg 0x45475d
jl 0x454749
cmp dword [ebp + 0x44], eax
jae 0x45475d
cmp dword [ebp + 0x34], eax
jl 0x454bc9
jg 0x45475d
cmp dword [ebp + 0x30], eax
jb 0x454bc9
mov edi, dword [ebp + 0x58]
cmp edi, eax
jl 0x454bc9
push 0x100000
lea ecx, [ebp - 4]
call fcn.00435c56
mov eax, dword [ebp + 0x3c]
imul eax, dword [ebp + 0x50]
cdq
mov ecx, 0x200
idiv ecx
mov esi, eax
imul eax, dword [ebp + 0x18]
cmp dword [ebp + 0x3c], 0
cdq
mov dword [ebp - 0x114], eax
mov dword [ebp - 0x110], edx
jle 0x45636a
mov eax, dword [ebp - 0x8c]
cmp word [eax], 0
jne 0x4547df
and dword [ebp - 0x38], 0
lea eax, [ebp - 0x38]
push eax
push dword [ebp - 4]
push dword [ebp + 0x6c]
call fcn.00433ed8
add esp, 0xc
test eax, eax
je 0x45635a
cmp edi, 4
jl 0x4547df
cmp byte [ebp + 0x67], 0
jne 0x4547df
cmp edi, dword [ebp - 0x38]
jge 0x45636a
xor ecx, ecx
xor eax, eax
xor edx, edx
cmp ebx, ecx
jl 0x454883
jg 0x4547f8
cmp dword [ebp + 0x44], ecx
jbe 0x454883
mov edi, dword [ebp - 0x68]
and edi, dword [ebp - 0x64]
cmp edi, 0xffffffff
jne 0x454831
cmp ebx, dword [ebp - 0x110]
jl 0x45482c
jg 0x454818
mov eax, dword [ebp + 0x44]
cmp eax, dword [ebp - 0x114]
jb 0x45482c
cmp byte [ebp - 0x29], 0
jne 0x45482c
push dword [ebp - 0x110]
push dword [ebp - 0x114]
jmp 0x45486d
mov eax, esi
cdq
jmp 0x45486b
cmp byte [ebp - 0x21], 0
jne 0x454883
mov eax, dword [ebp + 0x3c]
cdq
mov ecx, eax
add ecx, dword [ebp - 0x68]
mov esi, edx
adc esi, dword [ebp - 0x64]
push edx
sub ecx, 1
push eax
sbb esi, 0
push esi
push ecx
call fcn.0047fdd0
mov ecx, eax
mov eax, dword [ebp + 0x10]
mov esi, edx
cdq
push edx
push eax
push esi
push ecx
call fcn.0047fe80
mov dword [ebp - 0x68], eax
mov dword [ebp - 0x64], edx
push edx
push eax
push ebx
push dword [ebp + 0x44]
call fcn.00433fad
add esp, 0x10
add dword [ebp + 0x44], eax
adc ebx, edx
mov dword [ebp + 0x48], ebx
xor ecx, ecx
cmp dword [ebp + 0x34], ecx
jl 0x4548ad
jg 0x45488f
cmp dword [ebp + 0x30], ecx
jbe 0x4548ad
cmp byte [ebp - 0x6a], 0
jne 0x4548ad
sub dword [ebp + 0x30], eax
sbb dword [ebp + 0x34], edx
cmp dword [ebp + 0x34], ecx
jg 0x4548ad
jl 0x4548a7
cmp dword [ebp + 0x30], ecx
jae 0x4548ad
mov dword [ebp + 0x30], ecx
mov dword [ebp + 0x34], ecx
cmp ebx, ecx
jl 0x4548bd
jg 0x4548b8
cmp dword [ebp + 0x44], ecx
jbe 0x4548bd
mov edi, dword [ebp + 0x44]
jmp 0x4548c1
xor edi, edi
xor ebx, ebx
cmp dword [ebp + 0x34], ecx
jl 0x4548fb
jg 0x4548cd
cmp dword [ebp + 0x30], ecx
jbe 0x4548fb
mov eax, dword [ebp - 0x4c]
and eax, dword [ebp - 0x48]
cmp eax, 0xffffffff
jne 0x454a92
push dword [ebp - 0x110]
add edi, dword [ebp + 0x30]
push dword [ebp - 0x114]
adc ebx, dword [ebp + 0x34]
push ebx
push edi
call fcn.004824c0
sub dword [ebp + 0x30], eax
sbb dword [ebp + 0x34], edx
mov esi, 0x200
cmp dword [ebp - 0xe0], 0
mov byte [ebp + 0x4f], 0
mov byte [ebp + 0x3b], 0
mov byte [ebp + 0x2c], 0
jl 0x454a37
jg 0x454928
cmp dword [ebp - 0xe4], 0
jbe 0x454a37
mov ecx, dword [ebp + 0x30]
sub ecx, dword [ebp - 0xac]
mov edi, dword [ebp + 0x34]
sbb edi, dword [ebp - 0xa8]
mov eax, dword [ebp + 0x10]
add ecx, dword [ebp + 0x44]
cdq
adc edi, dword [ebp + 0x48]
push edx
push eax
push edi
push ecx
call fcn.0047fdd0
and dword [ebp - 0x170], 0
mov ebx, eax
xor eax, eax
push 1
push dword [ebp + 0x18]
lea edi, [ebp - 0x16c]
push dword [ebp + 0x50]
stosd dword es:[edi], eax
stosd dword es:[edi], eax
stosd dword es:[edi], eax
mov edi, dword [ebp - 0x150]
lea eax, [ebp + 0x2c]
push eax
lea eax, [ebp + 0x3b]
push eax
lea eax, [ebp + 0x4f]
push eax
push dword [ebp - 0x14c]
mov dword [ebp - 0xe4], ebx
push edi
mov dword [ebp - 0xe0], edx
call fcn.00433fd7
mov al, byte [ebp + 0x3b]
add esp, 0x20
push 1
push dword [ebp + 0x18]
mov byte [ebp - 0x16f], al
mov al, byte [ebp + 0x2c]
push dword [ebp + 0x50]
mov byte [ebp - 0x16e], al
mov al, byte [ebp + 0x4f]
mov byte [ebp - 0x16d], al
lea eax, [ebp + 0x2c]
push eax
lea eax, [ebp + 0x3b]
push eax
lea eax, [ebp + 0x4f]
push eax
push 0
push 2
push dword [ebp - 0x14c]
mov byte [ebp - 0x170], 0
push edi
call fcn.0047fe80
add eax, 0xffffffff
adc edx, 0xffffffff
push edx
push eax
call fcn.00433fd7
mov al, byte [ebp + 0x3b]
mov byte [ebp - 0x16b], al
mov al, byte [ebp + 0x2c]
mov byte [ebp - 0x16a], al
mov al, byte [ebp + 0x4f]
push 1
mov byte [ebp - 0x169], al
lea eax, [ebp - 0x170]
push eax
push dword [ebp - 0x12c]
mov byte [ebp - 0x16c], 5
push dword [ebp - 0x130]
mov dword [ebp - 0x168], edi
push dword [ebp + 0x6c]
mov dword [ebp - 0x164], ebx
call fcn.0043ae3e
add esp, 0x34
mov eax, dword [ebp + 0x10]
cdq
mov ebx, edx
push ebx
mov edi, eax
push edi
push dword [ebp - 0xa8]
push dword [ebp - 0xac]
call fcn.0047fdd0
cmp dword [ebp + 0x48], 0
mov dword [ebp - 0x190], eax
mov dword [ebp - 0x18c], edx
jl 0x454afc
jg 0x454a75
xor eax, eax
cmp dword [ebp + 0x44], eax
jb 0x454afe
push ebx
push edi
push dword [ebp + 0x48]
push dword [ebp + 0x44]
call fcn.0047fdd0
mov dword [ebp - 0xa0], eax
mov dword [ebp - 0x9c], edx
xor eax, eax
jmp 0x454b0a
cmp byte [ebp - 0x21], 0
jne 0x4548fb
mov eax, dword [ebp + 0x3c]
cdq
mov esi, eax
add eax, dword [ebp - 0x4c]
mov ecx, edx
adc ecx, dword [ebp - 0x48]
push edx
sub eax, 1
push esi
sbb ecx, 0
push ecx
push eax
mov dword [ebp - 0xec], edx
call fcn.0047fdd0
push dword [ebp - 0xec]
push esi
push edx
push eax
call fcn.0047fe80
push 0
mov esi, 0x200
push esi
push edx
push eax
call fcn.0047fdd0
add edi, dword [ebp + 0x30]
push edx
adc ebx, dword [ebp + 0x34]
push eax
push ebx
push edi
mov dword [ebp - 0x4c], eax
mov dword [ebp - 0x48], edx
call fcn.004824c0
sub dword [ebp + 0x30], eax
sbb dword [ebp + 0x34], edx
jmp 0x454900
xor eax, eax
mov dword [ebp - 0xa0], eax
mov dword [ebp - 0x9c], eax
cmp dword [ebp + 0x34], eax
jl 0x454b2b
jg 0x454b16
cmp dword [ebp + 0x30], eax
jb 0x454b2b
push ebx
push edi
push dword [ebp + 0x34]
push dword [ebp + 0x30]
call fcn.0047fdd0
mov dword [ebp - 0xbc], edx
jmp 0x454b31
mov dword [ebp - 0xbc], eax
mov dword [ebp - 0xc0], eax
xor eax, eax
cmp dword [ebp + 0x58], 4
mov ebx, dword [ebp - 0x9c]
mov edi, dword [ebp - 0xa0]
setge al
push eax
push dword [ebp + 0x18]
lea eax, [ebp - 0x5c]
push dword [ebp + 0x50]
push eax
lea eax, [ebp - 0x5d]
push eax
lea eax, [ebp + 0x28]
push eax
push ebx
push edi
call fcn.00433fd7
xor ecx, ecx
add esp, 0x20
cmp dword [ebp + 0x48], ecx
jl 0x454b8f
jg 0x454b77
cmp dword [ebp + 0x44], ecx
jbe 0x454b8f
sub edi, dword [ebp - 0x190]
sbb ebx, dword [ebp - 0x18c]
mov dword [ebp - 0xa0], edi
mov dword [ebp - 0x9c], ebx
mov al, byte [ebp - 0x29]
mov byte [ebp + 0x4f], al
movsx eax, al
push eax
push dword [ebp + 0x18]
lea eax, [ebp + 0x1f]
push dword [ebp + 0x50]
push eax
lea eax, [ebp - 0x2c]
push eax
lea eax, [ebp - 0x28]
push eax
mov eax, dword [ebp - 0xc0]
lea eax, [edi + eax - 1]
push ecx
push eax
call fcn.00433fd7
add esp, 0x20
lea ecx, [ebp - 4]
call fcn.0043092f
jmp 0x454bce
mov esi, 0x200
mov ecx, dword [ebp + 0x20]
mov ebx, dword [ebp - 0xc]
lea eax, [ecx + 0x200]
push esi
push eax
shl ebx, 4
push ecx
lea edi, [eax + ebx]
call fcn.004102e0
add esp, 0xc
cmp dword [ebp - 0xe0], 0
jl 0x454c30
jg 0x454bff
cmp dword [ebp - 0xe4], 0
jb 0x454c30
cmp dword [ebp - 0xc], 0
jle 0x454c19
mov eax, dword [ebp + 0x20]
push ebx
add eax, 0x3be
push 0
push eax
call fcn.0047fd70
add esp, 0xc
push 0x30
pop eax
sub eax, ebx
push eax
lea eax, [edi + 0x1ce]
push 0
push eax
call fcn.0047fd70
add esp, 0xc
cmp byte [ebp + 0x67], 0
mov al, byte [edi + 0x1c2]
jne 0x454c52
cmp byte [ebp + 0x2f], 2
jge 0x454c52
cmp al, 5
je 0x456372
cmp al, 0xf
je 0x456372
cmp byte [ebp + 0x67], 0
mov edx, dword [edi + 0x1c6]
mov ecx, dword [edi + 0x1ca]
jne 0x454cc4
test al, al
je 0x454cc4
xor eax, eax
cmp dword [ebp - 0x34], eax
je 0x454cc6
cmp byte [ebp + 0x2f], 2
jge 0x454cc6
cmp byte [ebp - 0x29], al
jne 0x454cc6
cmp dword [ebp + 0x48], eax
jl 0x454ca0
jg 0x454c86
cmp dword [ebp + 0x44], eax
jb 0x454ca0
cmp dword [ebp - 0xa0], edx
jne 0x456372
cmp dword [ebp - 0x9c], eax
jne 0x456372
xor eax, eax
cmp dword [ebp + 0x34], eax
jl 0x454cc6
jg 0x454cac
cmp dword [ebp + 0x30], eax
jb 0x454cc6
cmp dword [ebp - 0xc0], ecx
jne 0x454cbc
cmp dword [ebp - 0xbc], eax
je 0x454cc4
test ecx, ecx
jne 0x456372
xor eax, eax
cmp byte [ebp + 0x27], 0
je 0x454ce8
xor ecx, ecx
xor edx, edx
mov dword [ebp - 0xa0], eax
mov dword [ebp - 0x9c], eax
mov dword [ebp - 0xc0], eax
mov dword [ebp - 0xbc], eax
mov ebx, dword [ebp - 0x34]
cmp ebx, eax
jl 0x454cf5
mov byte [edi + 0x1c2], bl
mov ebx, dword [ebp - 0x84]
cmp bx, ax
jl 0x454d06
mov byte [edi + 0x1be], bl
cmp dword [ebp + 0x48], 0
jg 0x454d36
jl 0x454d14
cmp dword [ebp + 0x44], 0
jae 0x454d36
xor eax, eax
cmp dword [ebp + 0x34], eax
jl 0x454db1
jg 0x454d2a
cmp dword [ebp + 0x30], eax
jb 0x454db1
mov eax, dword [ebp - 0xc0]
lea eax, [edx + eax - 1]
jmp 0x454d4e
xor eax, eax
cmp dword [ebp + 0x34], eax
jg 0x454d72
jl 0x454d44
cmp dword [ebp + 0x30], eax
jae 0x454d72
mov eax, dword [ebp - 0xa0]
lea eax, [ecx + eax - 1]
movsx ecx, byte [ebp + 0x4f]
push ecx
push dword [ebp + 0x18]
lea ecx, [ebp + 0x1f]
push dword [ebp + 0x50]
push ecx
lea ecx, [ebp - 0x2c]
push ecx
lea ecx, [ebp - 0x28]
push ecx
push 0
push eax
call fcn.00433fd7
add esp, 0x20
xor eax, eax
cmp dword [ebp + 0x48], eax
jl 0x454da5
jg 0x454d7e
cmp dword [ebp + 0x44], eax
jb 0x454da5
mov cl, byte [ebp - 0x5d]
mov byte [edi + 0x1bf], cl
mov cl, byte [ebp - 0x5c]
mov byte [edi + 0x1c0], cl
mov cl, byte [ebp + 0x28]
mov byte [edi + 0x1c1], cl
mov ecx, dword [ebp - 0xa0]
mov dword [edi + 0x1c6], ecx
cmp dword [ebp + 0x34], eax
jg 0x454dbd
jl 0x454db1
cmp dword [ebp + 0x30], eax
jae 0x454dbd
cmp dword [ebp + 0x48], eax
jl 0x454dd8
jg 0x454dbd
cmp dword [ebp + 0x44], eax
jb 0x454dd8
mov cl, byte [ebp - 0x2c]
mov byte [edi + 0x1c3], cl
mov cl, byte [ebp + 0x1f]
mov byte [edi + 0x1c4], cl
mov cl, byte [ebp - 0x28]
mov byte [edi + 0x1c5], cl
cmp dword [ebp + 0x34], eax
jl 0x454df0
jg 0x454de4
cmp dword [ebp + 0x30], eax
jb 0x454df0
mov ecx, dword [ebp - 0xc0]
mov dword [edi + 0x1ca], ecx
cmp dword [ebp - 0x34], eax
jge 0x454e12
cmp bx, ax
jge 0x454e12
cmp dword [ebp + 0x48], eax
jg 0x454e12
jl 0x454e06
cmp dword [ebp + 0x44], eax
jae 0x454e12
cmp dword [ebp + 0x34], eax
jl 0x454e29
jg 0x454e12
cmp dword [ebp + 0x30], eax
jb 0x454e29
mov ecx, dword [ebp + 0x20]
add ecx, 0x200
mov byte [ecx + 0x1fe], 0x55
mov byte [ecx + 0x1ff], 0xaa
cmp bx, ax
jge 0x454e61
cmp dword [ebp - 0x34], eax
jge 0x454e61
cmp dword [ebp + 0x48], eax
jg 0x454e61
jl 0x454e3f
cmp dword [ebp + 0x44], eax
jae 0x454e61
cmp dword [ebp + 0x34], eax
jg 0x454e61
jl 0x454e4b
cmp dword [ebp + 0x30], eax
jae 0x454e61
mov eax, dword [ebp + 0x20]
add eax, 0x200
mov byte [eax + 0x1fe], 0x55
mov byte [eax + 0x1ff], 0xaa
mov edi, dword [ebp - 0x74]
xor ebx, ebx
push ebx
push dword [ebp - 0x70]
push edi
push dword [ebp + 0x6c]
call fcn.0043181b
add esp, 0x10
cmp eax, edi
jne 0x4563ac
cmp edx, dword [ebp - 0x70]
jne 0x4563ac
or edi, dword [ebp - 0x70]
mov dword [ebp + 0x3c], 1
jne 0x454ea2
mov eax, dword [ebp + 0x20]
add eax, 0x200
push eax
call fcn.00434069
pop ecx
mov eax, dword [ebp + 0x20]
lea edi, [eax + 0x200]
push esi
push edi
push eax
mov dword [ebp - 0x28], edi
call fcn.00436036
add esp, 0xc
test eax, eax
jne 0x454ed9
push ebx
lea eax, [ebp - 0x30]
push eax
push esi
push edi
push dword [ebp + 0x6c]
call dword [sym.imp.KERNEL32.DLL_WriteFile]
push dword [ebp + 0x6c]
mov dword [ebp + 0x3c], eax
call fcn.00434051
pop ecx
cmp dword [ebp + 0x48], ebx
jl 0x454fb1
jg 0x454eed
cmp dword [ebp + 0x44], esi
jb 0x454fb1
cmp dword [ebp + 0x34], ebx
jl 0x454fb1
jg 0x454f01
cmp dword [ebp + 0x30], esi
jbe 0x454fb1
cmp byte [ebp - 0x5a], 0
je 0x454fb1
push esi
push ebx
push dword [ebp - 0x28]
call fcn.0047fd70
add esp, 0xc
push ebx
push esi
push dword [ebp + 0x48]
push dword [ebp + 0x44]
call fcn.0047fe80
push ebx
push edx
mov edi, eax
push edi
push dword [ebp + 0x6c]
mov dword [ebp - 0x1a0], edx
call fcn.0043181b
add esp, 0x10
cmp eax, edi
jne 0x454fae
cmp edx, dword [ebp - 0x1a0]
jne 0x454fae
push ebx
lea eax, [ebp - 0x30]
push eax
push esi
push dword [ebp + 0x20]
push dword [ebp + 0x6c]
call dword [sym.imp.KERNEL32.DLL_ReadFile]
cmp eax, ebx
mov dword [ebp + 0x3c], eax
je 0x454fae
cmp dword [ebp - 0x30], esi
jne 0x454fae
push esi
push dword [ebp - 0x28]
push dword [ebp + 0x20]
call fcn.00436036
add esp, 0xc
test eax, eax
jne 0x454fb1
push ebx
push dword [ebp - 0x1a0]
push edi
push dword [ebp + 0x6c]
call fcn.0043181b
add esp, 0x10
cmp eax, edi
jne 0x454fae
cmp edx, dword [ebp - 0x1a0]
jne 0x454fae
push ebx
lea eax, [ebp - 0x30]
push eax
push esi
push dword [ebp - 0x28]
push dword [ebp + 0x6c]
call dword [sym.imp.KERNEL32.DLL_WriteFile]
mov dword [ebp + 0x3c], eax
jmp 0x454fb1
mov dword [ebp + 0x3c], ebx
xor eax, eax
cmp dword [ebp + 0x3c], ebx
sete al
cmp byte [ebp + 0x57], 0
mov esi, eax
mov dword [ebp - 0x50], esi
jne 0x454fd4
cmp byte [ebp + 0x5f], 0
jne 0x454fd4
cmp byte [ebp + 0x3a], 0
je 0x4563df
mov dword [ebp + 0x50], ebx
jmp 0x45584e
cmp byte [ebp + 0x27], 0
je 0x454fe6
mov byte [ebp - 5], 0
cmp byte [ebp + 0x4f], 0
je 0x455000
cmp byte [ebp + 0x39], 0
jne 0x455000
mov eax, dword [ebp - 0xb0]
mov eax, dword [eax + 0x28]
mov dword [ebp + 0x3c], eax
jmp 0x455007
mov dword [ebp + 0x3c], 0x80
cmp byte [ebp - 0x5b], 0
mov ecx, dword [ebp + 0x30]
mov eax, dword [ebp + 0x34]
mov dword [ebp - 0xb8], ecx
mov dword [ebp - 0xb4], eax
je 0x455037
add ecx, dword [ebp + 0x44]
adc eax, dword [ebp + 0x48]
sub ecx, 1
sbb eax, 0
mov dword [ebp - 0xb8], ecx
mov dword [ebp - 0xb4], eax
and dword [ebp - 0x40], 0
and dword [ebp - 0x3c], 0
cmp byte [ebp + 0x39], 0
je 0x455089
cmp dword [ebp + 0x48], 0
jg 0x45505e
jl 0x455053
cmp dword [ebp + 0x44], 1
jae 0x45505e
and dword [ebp + 0x48], 0
mov dword [ebp + 0x44], 1
test eax, eax
mov dword [ebp - 0x40], ecx
mov dword [ebp - 0x3c], eax
jg 0x455081
jl 0x45506f
cmp ecx, 1
jae 0x455081
mov eax, dword [ebp - 0x58]
mov ecx, dword [ebp - 0x54]
sub eax, 1
sbb ecx, 0
mov dword [ebp - 0x40], eax
mov dword [ebp - 0x3c], ecx
mov eax, dword [ebp + 0x44]
mov ecx, dword [ebp + 0x48]
jmp 0x45508d
xor eax, eax
xor ecx, ecx
lea edx, [ebp - 0x40]
push edx
push ecx
push eax
push esi
push dword [ebp + 0x3c]
lea eax, [ebp + 0x6c]
push dword [ebp + 4]
push eax
call fcn.0043a849
add esp, 0x1c
cmp byte [ebp + 0x4f], 0
mov dword [ebp - 0xfc], eax
mov dword [ebp - 0xf8], edx
jne 0x4550cd
or eax, edx
jne 0x4550cd
and dword [ebp - 0xf8], 0
mov dword [ebp - 0xfc], 1
mov eax, dword [ebp + 0x3c]
cmp dword [ebp + 0x58], eax
mov dword [ebp + 0x10], 1
jae 0x455100
cmp dword [ebp + 0x14], eax
jge 0x455100
mov ecx, dword [ebp + 0x58]
push 0x10
shl ecx, 7
lea eax, [ebx + esi]
add ecx, eax
push 0x499578
push ecx
call fcn.004309b4
add esp, 0xc
test eax, eax
jne 0x455104
and dword [ebp + 0x10], 0
cmp byte [ebp + 0x39], 0
je 0x4552c3
mov ecx, dword [ebp + 0x3c]
cmp dword [ebp + 0x58], ecx
jae 0x456372
lea eax, [ebx + esi]
mov dword [ebp + 0x10], eax
mov eax, ecx
shl eax, 7
xor edx, edx
div esi
test eax, eax
jle 0x45515c
mov dword [ebp + 0x28], eax
push 0x1b3
push 0
push dword [ebp + 0x10]
call fcn.0047fd70
mov eax, dword [ebp + 0x10]
push 0x4a
add eax, 0x1b4
push 0
push eax
call fcn.0047fd70
add dword [ebp + 0x10], esi
add esp, 0x18
dec dword [ebp + 0x28]
jne 0x455130
push 0x5c
push 0
push ebx
call fcn.0047fd70
push 8
push 0x49c4f8
push ebx
call fcn.004102e0
mov ecx, dword [ebp + 0x44]
mov edx, dword [ebp + 0x48]
mov eax, dword [ebp - 0x40]
mov dword [ebx + 0x18], ecx
add esp, 0x18
add ecx, 0x21
mov dword [ebx + 0x28], ecx
mov ecx, dword [ebp - 0x40]
mov dword [ebx + 0x20], eax
mov eax, dword [ebp - 0x3c]
mov dword [ebx + 0x1c], edx
adc edx, 0
add ecx, 0xffffffe0
mov dword [ebx + 0x24], eax
adc eax, 0xffffffff
mov dword [ebx + 0x34], eax
lea eax, [ebx + 0x38]
mov dword [ebx + 0x30], ecx
mov ecx, dword [eax]
or ecx, dword [eax + 4]
mov dword [ebx + 8], 0x10000
mov dword [ebx + 0xc], 0x5c
mov dword [ebx + 0x2c], edx
jne 0x4551d1
push 0x10
push 0x49c4e8
push eax
call fcn.004102e0
add esp, 0xc
mov eax, dword [ebp + 0x44]
mov ecx, dword [ebp + 0x48]
add eax, 1
push 0x5c
mov dword [ebx + 0x48], eax
mov eax, 0x80
adc ecx, 0
push ebx
push edi
mov dword [ebx + 0x4c], ecx
mov dword [ebx + 0x50], eax
mov dword [ebx + 0x54], eax
call fcn.004102e0
mov eax, dword [ebx + 0x20]
mov dword [edi + 0x18], eax
mov eax, dword [ebx + 0x24]
mov dword [edi + 0x1c], eax
mov eax, dword [ebx + 0x18]
mov dword [edi + 0x20], eax
mov eax, dword [ebx + 0x1c]
mov dword [edi + 0x24], eax
mov eax, dword [ebp + 4]
push pe_nt_image_headers32
add eax, 0x1be
push 0
push eax
call fcn.0047fd70
add esp, 0x18
cmp dword [ebp - 0xb4], 0
jg 0x455246
jl 0x455238
cmp dword [ebp - 0xb8], 1
jae 0x455246
or dword [ebp - 0xb8], 0xffffffff
or dword [ebp - 0xb4], 0xffffffff
mov eax, dword [ebp + 0x58]
mov ecx, dword [ebp + 4]
push 1
push dword [ebp + 0x18]
shl eax, 4
push dword [ebp + 0x50]
lea edi, [eax + ecx]
lea eax, [edi + 0x1bf]
lea ecx, [eax + 1]
push ecx
push eax
add eax, 2
push eax
push dword [ebp + 0x48]
mov dword [edi + 0x1c2], 0xee
push dword [ebp + 0x44]
call fcn.00433fd7
push 1
push dword [ebp + 0x18]
lea eax, [edi + 0x1c3]
push dword [ebp + 0x50]
lea ecx, [eax + 1]
push ecx
push eax
add eax, 2
push eax
push dword [ebp - 0xb4]
push dword [ebp - 0xb8]
call fcn.00433fd7
mov eax, dword [ebp + 0x44]
mov dword [edi + 0x1c6], eax
mov eax, dword [ebp - 0xb8]
add esp, 0x40
mov dword [edi + 0x1ca], eax
jmp 0x4555f7
cmp byte [ebp - 0x22], 0
je 0x4552d3
cmp dword [ebp + 0x58], 0
jl 0x4555f7
cmp byte [ebp + 0x67], 0
je 0x45532e
or dword [ebp + 0x58], 0xffffffff
xor edi, edi
cmp dword [ebp + 0x3c], edi
mov byte [ebp - 5], 0
jbe 0x45532e
lea eax, [ebx + esi]
mov dword [ebp - 0x28], eax
push 0x10
push 0x499578
push dword [ebp - 0x28]
call fcn.004309b4
add esp, 0xc
test eax, eax
je 0x455313
add dword [ebp - 0x28], 0x80
inc edi
cmp edi, dword [ebp + 0x3c]
jb 0x4552ee
jmp 0x45532e
mov dword [ebp + 0x58], edi
push 0x80
lea eax, [ebx + esi]
shl edi, 7
add edi, eax
push 0
push edi
call fcn.0047fd70
add esp, 0xc
mov eax, dword [ebp + 0x3c]
dec dword [ebp + 0x14]
cmp dword [ebp + 0x58], eax
jae 0x456372
cmp dword [ebp + 0x14], eax
jge 0x456372
cmp byte [ebp - 5], 0
je 0x455458
xor ecx, ecx
cmp byte [ebp + 0x4f], cl
je 0x4553a6
lea eax, [ebx + esi + 0x20]
cmp ecx, dword [ebp + 0x3c]
jae 0x4553a6
mov edx, dword [eax]
cmp edx, dword [ebp + 0x44]
jne 0x45536f
mov edx, dword [eax + 4]
cmp edx, dword [ebp + 0x48]
je 0x455377
inc ecx
add eax, 0x80
jmp 0x45535b
mov eax, dword [ebp + 8]
mov edx, ecx
shl edx, 7
add eax, ebx
add eax, edx
cmp ecx, dword [ebp + 0x58]
mov esi, 0x499578
mov edi, eax
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
je 0x4553a3
push 0x80
push 0
push eax
call fcn.0047fd70
add esp, 0xc
mov esi, dword [ebp + 8]
mov eax, dword [ebp + 0x58]
shl eax, 7
push 0x10
lea edi, [ebx + esi]
add eax, edi
push 0x499578
push eax
mov dword [ebp - 0xb0], eax
call fcn.004309b4
add esp, 0xc
test eax, eax
je 0x45543f
mov esi, dword [ebp + 0x58]
inc esi
cmp esi, dword [ebp + 0x3c]
mov dword [ebp + 0x50], esi
jae 0x456372
shl esi, 7
add esi, edi
push 0x10
push 0x499578
push esi
call fcn.004309b4
add esp, 0xc
test eax, eax
je 0x455407
inc dword [ebp + 0x50]
mov eax, dword [ebp + 0x50]
add esi, 0x80
cmp eax, dword [ebp + 0x3c]
jb 0x4553e0
jmp 0x455430
mov eax, dword [ebp + 0x50]
cmp eax, dword [ebp + 0x58]
jle 0x455430
mov edi, eax
mov eax, dword [ebp + 8]
add eax, ebx
shl edi, 7
add edi, eax
mov eax, dword [ebp + 0x50]
sub eax, dword [ebp + 0x58]
dec eax
lea edx, [edi - 0x80]
push 0x20
pop ecx
mov esi, edx
rep movsd dword es:[edi], dword [esi]
mov edi, edx
jne 0x455421
mov eax, dword [ebp + 0x3c]
cmp dword [ebp + 0x50], eax
jae 0x456372
mov esi, dword [ebp + 8]
push 0x80
push 0
push dword [ebp - 0xb0]
call fcn.0047fd70
add esp, 0xc
and dword [ebp + 0x10], 0
mov eax, dword [ebp + 0x14]
xor ecx, ecx
cmp eax, ecx
jge 0x455588
cmp dword [ebp + 0x10], ecx
jne 0x455491
xor eax, eax
inc eax
mov dword [ebp - 0x10c], eax
mov dword [ebp - 0x120], eax
mov dword [ebp - 0x128], eax
mov dword [ebp - 0x148], eax
mov dword [ebp - 0x13c], eax
mov dword [ebp - 0x140], eax
cmp dword [ebp - 0x148], ecx
jle 0x4554b5
mov edi, dword [ebp + 0x58]
mov eax, dword [ebp + 8]
shl edi, 7
add eax, ebx
add edi, eax
lea esi, [ebp - 0x160]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
mov esi, dword [ebp + 8]
xor ecx, ecx
cmp dword [ebp - 0x128], ecx
jle 0x4554db
mov ecx, dword [ebp + 0x58]
mov eax, dword [ebp + 8]
shl ecx, 7
add eax, ebx
lea edi, [ecx + eax + 0x10]
lea esi, [ebp - 0x1c4]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
mov esi, dword [ebp + 8]
xor ecx, ecx
cmp dword [ebp - 0x120], ecx
jle 0x4554fa
mov edx, dword [ebp + 0x58]
mov edi, dword [ebp + 0x44]
lea eax, [ebx + esi]
shl edx, 7
mov dword [edx + eax + 0x20], edi
mov edi, dword [ebp + 0x48]
mov dword [edx + eax + 0x24], edi
cmp dword [ebp - 0x10c], ecx
jle 0x45551f
mov edx, dword [ebp + 0x58]
mov edi, dword [ebp - 0xb8]
lea eax, [ebx + esi]
shl edx, 7
mov dword [edx + eax + 0x28], edi
mov edi, dword [ebp - 0xb4]
mov dword [edx + eax + 0x2c], edi
cmp dword [ebp - 0x13c], ecx
jle 0x455543
mov eax, dword [ebp + 0x58]
mov edx, dword [ebp - 0x188]
shl eax, 7
add esi, ebx
mov dword [eax + esi + 0x30], edx
mov edx, dword [ebp - 0x184]
mov dword [eax + esi + 0x34], edx
cmp dword [ebp - 0x140], ecx
jle 0x4555d1
mov eax, dword [ebp - 0x124]
cmp word [eax], 0
je 0x4555d1
mov ecx, dword [ebp + 0x58]
mov eax, dword [ebp + 8]
shl ecx, 7
add eax, ebx
push 0x48
lea esi, [ecx + eax + 0x38]
push 0
push esi
call fcn.0047fd70
add esp, 0xc
push 0x24
push dword [ebp - 0x124]
push esi
call dword [sym.imp.SHLWAPI.DLL_StrCpyNW]
jmp 0x4555d1
cmp eax, dword [ebp + 0x58]
je 0x4555d1
mov ecx, dword [ebp + 0x58]
mov eax, dword [ebp + 8]
shl ecx, 7
add eax, ebx
lea edx, [ecx + eax]
push 0x20
pop ecx
mov esi, edx
lea edi, [ebp - 0x2f4]
rep movsd dword es:[edi], dword [esi]
mov ecx, dword [ebp + 0x14]
shl ecx, 7
add eax, ecx
push 0x20
pop ecx
mov esi, eax
mov edi, edx
rep movsd dword es:[edi], dword [esi]
mov edi, eax
mov eax, dword [ebp + 0x14]
cmp dword [ebp + 0x58], eax
push 0x20
pop ecx
lea esi, [ebp - 0x2f4]
rep movsd dword es:[edi], dword [esi]
jge 0x4555d1
mov dword [ebp + 0x58], eax
cmp byte [ebp + 0x27], 0
je 0x4555f4
mov ecx, dword [ebp + 0x58]
mov eax, dword [ebp + 8]
push 0x80
shl ecx, 7
add eax, ebx
add ecx, eax
push 0
push ecx
call fcn.0047fd70
add esp, 0xc
mov esi, dword [ebp + 8]
xor eax, eax
cmp byte [ebp - 0x22], al
mov dword [ebp + 0x10], eax
je 0x4556f2
cmp byte [ebp + 0x39], al
jne 0x4556f2
cmp dword [ebp + 0x3c], eax
mov dword [ebp - 0xc], eax
mov dword [ebp + 0x18], eax
jle 0x4556f2
lea eax, [ebx + esi]
mov dword [ebp + 0x50], eax
mov dword [ebp + 0x20], eax
mov edi, 0x80
push 0x10
push 0x499578
push dword [ebp + 0x50]
call fcn.004309b4
add esp, 0xc
neg eax
sbb al, al
inc al
jne 0x455653
mov ecx, dword [ebp + 0x18]
cmp ecx, dword [ebp - 0xc]
jne 0x455653
and dword [ebp + 0x28], 0
jmp 0x45565a
mov dword [ebp + 0x28], 1
and dword [ebp - 0x28], 0
test al, al
jne 0x45569e
mov eax, dword [ebp + 0x18]
cmp eax, dword [ebp - 0xc]
je 0x455698
mov esi, dword [ebp + 0x50]
push 0x10
push esi
push esi
call fcn.00436036
mov edi, dword [ebp + 0x20]
add esp, 0xc
inc dword [ebp - 0xc]
add dword [ebp + 0x20], 0x80
push 0x20
pop ecx
rep movsd dword es:[edi], dword [esi]
mov esi, dword [ebp + 8]
mov dword [ebp - 0x28], eax
mov edi, 0x80
jmp 0x45569e
inc dword [ebp - 0xc]
add dword [ebp + 0x20], edi
cmp dword [ebp + 0x28], 0
je 0x4556d3
mov eax, dword [ebp + 0x50]
lea ecx, [eax + 0x80]
jmp 0x4556b8
mov edx, dword [eax]
add eax, 4
test edx, edx
jne 0x4556be
cmp eax, ecx
jb 0x4556af
jmp 0x4556c5
mov dword [ebp - 0x28], 1
push edi
push 0
push dword [ebp + 0x50]
call fcn.0047fd70
add esp, 0xc
cmp dword [ebp - 0x28], 0
je 0x4556e0
mov eax, dword [ebp + 0x18]
inc eax
mov dword [ebp + 0x10], eax
inc dword [ebp + 0x18]
mov eax, dword [ebp + 0x18]
add dword [ebp + 0x50], edi
cmp eax, dword [ebp + 0x3c]
jl 0x45562b
push dword [ebp + 4]
call fcn.00434069
lea eax, [ebx - 0x174]
push eax
call fcn.00434069
mov eax, dword [ebp + 0x58]
cmp dword [ebp + 0x10], eax
pop ecx
pop ecx
jg 0x455714
inc eax
mov dword [ebp + 0x10], eax
cmp byte [ebp + 0x39], 0
mov eax, dword [ebp + 0x3c]
je 0x455720
mov dword [ebp + 0x10], eax
xor edi, edi
push edi
shl eax, 7
push edi
push eax
lea eax, [ebx + esi]
push eax
call fcn.004740bf
mov ecx, dword [ebp - 0x38]
mov dword [ebx + 0x58], eax
mov dword [ecx + 0x58], eax
mov eax, dword [ebx + 0xc]
add esp, 0x10
cmp eax, 0x20000
mov dword [ebx + 0x10], edi
mov dword [ebp + 0x28], eax
ja 0x45640b
xor eax, eax
push eax
push eax
push dword [ebp + 0x28]
push ebx
call fcn.004740bf
mov edi, dword [ebp - 0x38]
mov dword [ebx + 0x10], eax
and dword [edi + 0x10], 0
push 0
xor eax, eax
push eax
push dword [ebp + 0x28]
push edi
call fcn.004740bf
mov dword [edi + 0x10], eax
mov eax, dword [ebp + 0x10]
shl eax, 7
xor edx, edx
lea eax, [eax + esi - 1]
div esi
add esp, 0x20
mov edi, eax
imul edi, esi
cmp byte [ebp + 0x39], 0
je 0x4557b1
xor eax, eax
push eax
push eax
push eax
push dword [ebp + 0x6c]
call fcn.0043181b
add esp, 0x10
push esi
push dword [ebp + 4]
lea ecx, [ebp + 0x6c]
call fcn.00430892
xor eax, eax
push eax
push dword [ebp - 0xf8]
push dword [ebp - 0xfc]
push eax
push esi
call fcn.0047fe80
push edx
push eax
push dword [ebp + 0x6c]
call fcn.0043181b
add esp, 0x10
lea eax, [edi + esi]
push eax
push ebx
lea ecx, [ebp + 0x6c]
call fcn.00430892
mov ecx, dword [ebp - 0x40]
mov edx, dword [ebp - 0x3c]
sub ecx, 0x20
push 0
sbb edx, 0
xor eax, eax
push eax
push esi
push edx
push ecx
call fcn.0047fe80
push edx
push eax
push dword [ebp + 0x6c]
call fcn.0043181b
add esp, 0x10
push edi
push ebx
lea ecx, [ebp + 0x6c]
call fcn.00430892
push 0
push dword [ebp - 0x3c]
xor eax, eax
push dword [ebp - 0x40]
push eax
push esi
call fcn.0047fe80
push edx
push eax
push dword [ebp + 0x6c]
call fcn.0043181b
add esp, 0x10
push esi
push dword [ebp - 0x38]
lea ecx, [ebp + 0x6c]
call fcn.00430892
mov al, byte [ebp + 0x5f]
or al, byte [ebp + 0x57]
or al, byte [ebp + 0x3a]
je 0x456437
and dword [ebp + 0x50], 0
lea ecx, [ebp + 4]
call fcn.0043092f
lea ecx, [ebp + 0x60]
call fcn.0043092f
mov bl, byte [ebp + 0x2e]
xor edi, edi
cmp dword [ebp - 0x14], edi
jl 0x4558e6
cmp bl, 0x20
je 0x455872
cmp bl, 0x10
jne 0x455878
cmp dword [ebp], 0xb
je 0x45589c
test byte [ebp + 0x57], 0x20
jne 0x45589c
cmp byte [ebp + 0x57], 0
je 0x45588a
cmp dword [ebp], 0xb
je 0x45589c
test byte [ebp + 0x5f], 0x20
jne 0x45589c
cmp byte [ebp + 0x5f], 0
je 0x4558e6
cmp dword [ebp], 0xb
jne 0x4558e6
test byte [0x4ad228], 0x20
jne 0x4558b7
test byte [ebp + 0x68], 0x20
jne 0x4558b7
push 1
push dword [ebp - 0x14]
call fcn.004471c6
pop ecx
pop ecx
or byte [ebp + 0x68], 2
test byte [0x4ad228], 0x10
jne 0x4558e2
test byte [ebp + 0x68], 0x11
jne 0x4558e2
push edi
push 1
push 0xffffffffffffffff
push 0xffffffffffffffff
push edi
push edi
push dword [ebp - 0x14]
call fcn.004041b3
add esp, 0x1c
or byte [ebp + 0x68], 1
or byte [ebp + 0x68], 1
cmp byte [ebp + 0x3a], 0
jne 0x4558fc
cmp bl, 1
je 0x4558fc
cmp bl, 0x20
je 0x4558fc
cmp byte [ebp + 0x57], 0
je 0x455940
push dword [ebp + 0x6c]
call fcn.00434051
pop ecx
push edi
lea eax, [ebp - 0x144]
push eax
push edi
push edi
push edi
push edi
push 0x70140
push dword [ebp + 0x6c]
mov dword [ebp - 0x144], edi
call dword [sym.imp.KERNEL32.DLL_DeviceIoControl]
test eax, eax
je 0x45592d
xor eax, eax
jmp 0x455933
call dword [sym.imp.KERNEL32.DLL_GetLastError]
cmp bl, 1
je 0x45593d
cmp bl, 0x20
jne 0x455940
mov dword [ebp - 0x50], eax
lea ecx, [ebp + 0x6c]
call fcn.00402b27
xor eax, eax
test byte [ebp + 0x5f], 0x20
jne 0x455966
cmp byte [ebp + 0x5f], al
je 0x45595b
cmp dword [ebp], 0xb
je 0x455966
cmp bl, 0x10
jne 0x45598a
cmp dword [ebp], 0xc
je 0x45598a
lea ecx, [ebp + 0x68]
call fcn.0043408a
push 0x495908
push 1
push edi
push dword [ebp - 0x94]
call fcn.0043a346
add esp, 0x10
call dword [sym.imp.KERNEL32.DLL_GetLastError]
cmp byte [ebp + 0x4d], 0
je 0x455999
cmp dword [ebp + 0x50], edi
jne 0x453a5c
cmp bl, 0x10
mov esi, eax
je 0x4559a3
mov esi, dword [ebp - 0x50]
lea ecx, [ebp + 0x68]
call fcn.0043408a
lea ecx, [ebp + 0x6c]
call fcn.00402b27
mov eax, 0x4ad290
cmp eax, edi
je 0x45654b
push eax
call dword [sym.imp.KERNEL32.DLL_LeaveCriticalSection]
jmp 0x45654b
cmp dword [ebp - 0x18], ebx
jge 0x455a00
mov eax, dword [ebp - 0x8c]
cmp word [eax], bx
jne 0x455a00
lea ecx, [ebp + 0x60]
call fcn.0043092f
lea ecx, [ebp + 0x68]
call fcn.0043408a
lea ecx, [ebp + 0x6c]
call fcn.00402b27
mov eax, 0x4ad290
cmp eax, ebx
jmp 0x456399
mov edi, dword [ebp - 0x7c]
mov dword [ebp + 0x14], 0x1b8
mov dword [ebp - 0x108], ebx
mov dword [ebp - 0x104], ebx
mov dword [ebp - 0x100], ebx
cmp word [edi], bx
je 0x455b3d
push edi
push 0x49c4e4
call fcn.004318e1
test al, al
pop ecx
pop ecx
jne 0x455b3d
push edi
push 0x497f5c
call fcn.004318e1
test al, al
pop ecx
pop ecx
jne 0x455b3d
push edi
push 0x49c4e0
call fcn.004318e1
test al, al
pop ecx
pop ecx
je 0x455a73
mov dword [ebp], 0x4ab308
mov dword [ebp + 0x14], 0x190
jmp 0x455b5d
push edi
push 0x49c4dc
call fcn.004318e1
test al, al
pop ecx
pop ecx
je 0x455a97
mov dword [ebp], 0x4ab498
mov dword [ebp + 0x14], 0x180
jmp 0x455b5d
mov dword [ebp + 0x14], ebx
cmp word [edi], 0x2a
mov dword [ebp - 0x58], esi
mov dword [ebp - 0x54], esi
jne 0x455ac5
lea eax, [ebp - 0x58]
push eax
inc edi
lea eax, [ebp - 0x7c]
inc edi
push eax
mov dword [ebp - 0x7c], edi
call fcn.0043aabb
mov edi, dword [ebp - 0x7c]
cmp word [edi], 0x2a
pop ecx
pop ecx
jne 0x455ac5
inc edi
inc edi
cmp word [edi], 0x23
jne 0x455b03
push edi
lea ecx, [ebp + 0x28]
call fcn.004403c3
push ebx
lea eax, [ebp - 0x108]
push eax
push 0x497e70
push dword [ebp + 0x28]
push ebx
call fcn.00410a1a
add esp, 0x14
lea ecx, [ebp + 0x28]
mov dword [ebp], eax
call fcn.0043092f
mov eax, dword [ebp - 0x104]
mov dword [ebp + 0x14], eax
jmp 0x455b1a
lea eax, [ebp + 0x14]
push eax
push ebx
push edi
call fcn.0040c209
add esp, 0xc
mov dword [ebp], eax
mov dword [ebp - 0x108], eax
cmp dword [ebp - 0x54], ebx
jl 0x455b4b
jg 0x455b26
cmp dword [ebp - 0x58], ebx
jb 0x455b4b
cmp ebx, dword [ebp - 0x54]
jl 0x455b4b
jg 0x455b35
mov eax, dword [ebp + 0x14]
cmp eax, dword [ebp - 0x58]
jbe 0x455b4b
mov eax, dword [ebp - 0x58]
mov dword [ebp + 0x14], eax
jmp 0x455b4b
mov dword [ebp], 0x4ab618
mov dword [ebp + 0x14], 0x1b8
cmp dword [ebp + 0x14], ebx
jbe 0x455cf5
cmp dword [ebp], ebx
je 0x455cf5
push ebx
push 0x20000000
push 3
push ebx
push 3
push 0xc0000000
push dword [ebp - 0x94]
lea ecx, [ebp + 0x6c]
call fcn.004045f9
cmp dword [ebp + 0x6c], ebx
je 0x455cf5
mov esi, dword [ebp + 0x14]
add esi, 0x1ff
mov edi, 0xfffffe00
and esi, edi
lea eax, [esi + esi + 0x200]
push eax
lea ecx, [ebp - 4]
call fcn.00435c56
mov ebx, dword [ebp - 4]
push 0
lea eax, [ebp - 0x30]
push eax
add ebx, 0x200
and ebx, edi
push esi
lea edi, [ebx + esi]
push edi
push dword [ebp + 0x6c]
call dword [sym.imp.KERNEL32.DLL_ReadFile]
test eax, eax
jne 0x455bdd
call dword [sym.imp.KERNEL32.DLL_GetLastError]
mov esi, eax
test esi, esi
jne 0x455cbe
inc esi
jmp 0x455cbe
push esi
push edi
push ebx
call fcn.004102e0
add esp, 0xc
xor eax, eax
push eax
push eax
push eax
push dword [ebp + 0x6c]
call dword [sym.imp.KERNEL32.DLL_SetFilePointer]
test eax, eax
je 0x455c31
lea ecx, [ebp - 4]
call fcn.0043092f
lea ecx, [ebp - 0x108]
call fcn.0043092f
lea ecx, [ebp + 0x60]
call fcn.0043092f
lea ecx, [ebp + 0x68]
call fcn.0043408a
lea ecx, [ebp + 0x6c]
call fcn.00402b27
mov eax, 0x4ad290
test eax, eax
jmp 0x4563d3
mov ecx, dword [ebp + 0x14]
mov eax, 0x1b8
cmp ecx, eax
jle 0x455c3f
mov ecx, eax
push ecx
push dword [ebp]
push edi
call fcn.004102e0
mov byte [edi + 0x1fe], 0x55
mov byte [edi + 0x1ff], 0xaa
mov eax, dword [ebp + 0x14]
add esp, 0xc
cmp eax, 0x200
jbe 0x455c82
add eax, 0xfffffe00
push eax
mov eax, dword [ebp]
add eax, 0x200
push eax
lea eax, [edi + 0x200]
push eax
call fcn.004102e0
add esp, 0xc
push esi
push edi
push ebx
mov dword [ebp + 0x3c], 1
call fcn.00436036
add esp, 0xc
test eax, eax
jne 0x455cb4
push eax
lea eax, [ebp - 0x30]
push eax
push esi
push edi
push dword [ebp + 0x6c]
call dword [sym.imp.KERNEL32.DLL_WriteFile]
push dword [ebp + 0x6c]
mov dword [ebp + 0x3c], eax
call fcn.00434051
pop ecx
xor eax, eax
cmp dword [ebp + 0x3c], eax
sete al
mov esi, eax
lea ecx, [ebp - 4]
call fcn.0043092f
lea ecx, [ebp - 0x108]
call fcn.0043092f
lea ecx, [ebp + 0x60]
call fcn.0043092f
lea ecx, [ebp + 0x68]
call fcn.0043408a
lea ecx, [ebp + 0x6c]
call fcn.00402b27
mov eax, 0x4ad290
test eax, eax
jmp 0x4559ba
lea ecx, [ebp - 0x108]
jmp 0x4563af
cmp dword [ebp + 0x58], ebx
jle 0x4559dc
cmp dword [ebp - 0x18], ebx
jge 0x455d1d
mov eax, dword [ebp - 0x8c]
cmp word [eax], bx
je 0x4559dc
push dword [ebp - 0x88]
lea eax, [ebp + 0x28]
push eax
lea eax, [ebp - 0x74]
push eax
push dword [ebp - 0x20]
lea eax, [ebp + 0xc]
push dword [ebp + 0x58]
mov dword [ebp - 0x74], ebx
push dword [ebp - 0x18]
mov dword [ebp - 0x70], ebx
push eax
mov dword [ebp + 0x28], esi
call fcn.00446838
add esp, 0x1c
cmp dword [ebp + 0x28], ebx
jle 0x4563b4
mov eax, dword [ebp - 0x44]
mov dword [ebp + 0x20], edi
mov dword [ebp - 0xf4], ebx
mov dword [ebp - 0xf0], ebx
mov dword [ebp - 0xec], ebx
cmp word [eax], bx
je 0x455ecc
push eax
push 0x49c4e4
call fcn.004318e1
test al, al
pop ecx
pop ecx
jne 0x455ecc
push dword [ebp - 0x44]
push 0x497f5c
call fcn.004318e1
test al, al
pop ecx
pop ecx
jne 0x455ecc
mov edi, dword [ebp - 0x44]
push edi
push 0x49c4dc
call fcn.004318e1
test al, al
pop ecx
pop ecx
je 0x455dba
push 8
jmp 0x455ece
push edi
push 0x49c4d4
call fcn.004318e1
test al, al
pop ecx
pop ecx
jne 0x455ec8
push edi
push 0x49c4cc
call fcn.004318e1
test al, al
pop ecx
pop ecx
jne 0x455ec8
push edi
push 0x49c4e0
call fcn.004318e1
test al, al
pop ecx
pop ecx
je 0x455dfc
push 6
jmp 0x455ece
push edi
push 0x49c4c4
call fcn.004318e1
test al, al
pop ecx
pop ecx
je 0x455e14
push 5
jmp 0x455ece
mov dword [ebp + 0x20], ebx
cmp word [edi], 0x2a
mov dword [ebp - 0x58], esi
mov dword [ebp - 0x54], esi
jne 0x455e42
lea eax, [ebp - 0x58]
push eax
inc edi
lea eax, [ebp - 0x44]
inc edi
push eax
mov dword [ebp - 0x44], edi
call fcn.0043aabb
mov edi, dword [ebp - 0x44]
cmp word [edi], 0x2a
pop ecx
pop ecx
jne 0x455e42
inc edi
inc edi
cmp word [edi], 0x23
jne 0x455e80
push edi
lea ecx, [ebp + 0x28]
call fcn.004403c3
push ebx
lea eax, [ebp - 0xf4]
push eax
push 0x497e70
push dword [ebp + 0x28]
push ebx
call fcn.00410a1a
add esp, 0x14
lea ecx, [ebp + 0x28]
mov dword [ebp], eax
call fcn.0043092f
mov eax, dword [ebp - 0xf0]
mov dword [ebp + 0x20], eax
jmp 0x455e97
lea eax, [ebp + 0x20]
push eax
push ebx
push edi
call fcn.0040c209
add esp, 0xc
mov dword [ebp], eax
mov dword [ebp - 0xf4], eax
cmp dword [ebp - 0x54], ebx
jl 0x455eb8
jg 0x455ea3
cmp dword [ebp - 0x58], ebx
jb 0x455eb8
cmp ebx, dword [ebp - 0x54]
jl 0x455eb8
jg 0x455eb2
mov eax, dword [ebp + 0x20]
cmp eax, dword [ebp - 0x58]
jbe 0x455eb8
mov eax, dword [ebp - 0x58]
mov dword [ebp + 0x20], eax
cmp dword [ebp], ebx
jne 0x455ef7
lea ecx, [ebp - 0xf4]
jmp 0x4563af
push 7
jmp 0x455ece
push 9
pop eax
push ebx
lea ecx, [ebp - 0xf4]
push ecx
push 0x4951fc
push eax
push ebx
call fcn.00410a1a
add esp, 0x14
cmp dword [ebp + 0x20], ebx
mov dword [ebp], eax
je 0x455ebd
mov eax, dword [ebp - 0xf0]
mov dword [ebp + 0x20], eax
cmp dword [ebp + 0x20], ebx
jbe 0x455ebd
cmp dword [ebp], ebx
je 0x455ebd
push ebx
push 0x20000000
push 3
push ebx
push 3
push 0xc0000000
push dword [ebp - 0x94]
lea ecx, [ebp + 0x6c]
call fcn.004045f9
cmp dword [ebp + 0x6c], ebx
je 0x455ebd
push ebx
push dword [ebp - 0x70]
push dword [ebp - 0x74]
push dword [ebp + 0x6c]
call fcn.0043181b
add esp, 0x10
cmp eax, dword [ebp - 0x74]
jne 0x455ebd
cmp edx, dword [ebp - 0x70]
jne 0x455ebd
mov esi, dword [ebp + 0x20]
add esi, 0x1ff
mov edi, 0xfffffe00
and esi, edi
lea eax, [esi + esi + 0x200]
push eax
lea ecx, [ebp - 4]
call fcn.00435c56
mov eax, dword [ebp - 4]
add eax, 0x200
and eax, edi
push ebx
lea edi, [eax + esi]
mov dword [ebp + 0x28], eax
lea eax, [ebp - 0x30]
push eax
push esi
push edi
push dword [ebp + 0x6c]
call dword [sym.imp.KERNEL32.DLL_ReadFile]
test eax, eax
je 0x455fae
push esi
push edi
push dword [ebp + 0x28]
call fcn.004102e0
push ebx
push dword [ebp - 0x70]
push dword [ebp - 0x74]
push dword [ebp + 0x6c]
call fcn.0043181b
add esp, 0x1c
cmp eax, dword [ebp - 0x74]
jne 0x455fae
cmp edx, dword [ebp - 0x70]
je 0x455fbb
lea ecx, [ebp - 4]
call fcn.0043092f
jmp 0x455ebd
mov eax, dword [ebp + 0x20]
push 3
push dword [ebp]
mov dword [ebp - 0x38], eax
push edi
call fcn.004102e0
mov eax, 0x1fe
add esp, 0xc
cmp dword [ebp - 0x38], eax
jle 0x455fdc
mov dword [ebp - 0x38], eax
mov eax, dword [ebp - 0x38]
add eax, 0xffffffe2
push eax
mov eax, dword [ebp]
add eax, 0x1e
push eax
lea eax, [edi + 0x1e]
push eax
call fcn.004102e0
mov byte [edi + 0x1fe], 0x55
mov byte [edi + 0x1ff], 0xaa
mov eax, dword [ebp + 0x20]
add esp, 0xc
cmp eax, 0x200
jbe 0x45602c
add eax, 0xfffffe00
push eax
mov eax, dword [ebp]
add eax, 0x200
push eax
lea eax, [edi + 0x200]
push eax
call fcn.004102e0
add esp, 0xc
push esi
push edi
push dword [ebp + 0x28]
mov dword [ebp + 0x3c], 1
call fcn.00436036
add esp, 0xc
test eax, eax
jne 0x456060
push ebx
lea eax, [ebp - 0x30]
push eax
push esi
push edi
push dword [ebp + 0x6c]
call dword [sym.imp.KERNEL32.DLL_WriteFile]
push dword [ebp + 0x6c]
mov dword [ebp + 0x3c], eax
call fcn.00434051
pop ecx
xor eax, eax
cmp dword [ebp + 0x3c], ebx
lea ecx, [ebp - 4]
sete al
mov esi, eax
call fcn.0043092f
lea ecx, [ebp - 0xf4]
jmp 0x4563e2
push 0x103c
lea ecx, [ebp + 0xc]
call fcn.00435da9
mov ecx, dword [ebp - 0xdc]
mov esi, dword [ebp + 0xc]
mov ax, word [ecx]
add esi, 0x2000
cmp ax, bx
mov edi, 0x495908
je 0x4560e6
cmp word [ecx + 2], 0x3a
jne 0x4560e6
movzx eax, ax
push eax
push 0x49c4b4
push esi
call dword [sym.imp.USER32.DLL_wsprintfW]
add esp, 0xc
lea eax, [esi + 8]
push eax
call dword [sym.imp.KERNEL32.DLL_GetDriveTypeW]
cmp eax, 2
jne 0x4560da
cmp dword [ebp - 0x78], 0x10
jne 0x45612b
mov edi, 0x4958e8
cmp eax, 5
jne 0x45612b
mov edi, 0x4958f8
jmp 0x45612b
mov eax, dword [ebp - 0x18]
cmp eax, ebx
jl 0x45612b
cmp dword [ebp - 0x78], 8
jne 0x456107
push eax
push 0x49c49c
push esi
call dword [sym.imp.USER32.DLL_wsprintfW]
mov edi, 0x4958f8
jmp 0x456128
cmp dword [ebp - 0x78], 0x10
jne 0x45611b
and eax, 0xfff
mov esi, eax
mov edi, 0x4958e8
jmp 0x45612b
push eax
push 0x49b3e8
push esi
call dword [sym.imp.USER32.DLL_wsprintfW]
add esp, 0xc
push edi
push 0x20
push dword [ebp + 0xc]
push esi
jmp 0x456508
cmp byte [ebp - 0xf], 0
je 0x456142
cmp dword [ebp - 0x14], ebx
jl 0x456197
mov al, byte [ebp - 0xe]
neg al
sbb eax, eax
and eax, 0x200000
or eax, dword [ebp - 0x14]
or eax, dword [ebp - 0xe8]
push eax
lea eax, [ebp + 0xc]
push eax
call fcn.00446493
pop ecx
pop ecx
jmp 0x456197
cmp dword [ebp - 0x14], ebx
jl 0x456197
cmp byte [ebp - 0x2b], 0
je 0x456175
cmp dword [ebp + 0x58], ebx
jl 0x456197
push dword [ebp - 0x88]
movsx eax, byte [ebp - 0xe]
or eax, dword [ebp - 0x20]
push ebx
push ebx
push eax
push dword [ebp + 0x58]
lea eax, [ebp + 0xc]
push dword [ebp - 0x14]
push eax
call fcn.00446838
add esp, 0x1c
cmp dword [ebp - 0x98], ebx
jle 0x456510
mov ecx, dword [ebp - 0x98]
mov eax, dword [ebp + 0xc]
dec ecx
mov dword [ebp - 0x144], ecx
push ebx
lea ecx, [ebp + 0xc]
push ecx
mov ecx, dword [ebp - 0xa4]
push eax
mov dword [ebp - 0xb0], eax
lea eax, [ebp - 0x144]
push eax
mov dword [ebp + 0xc], ebx
call fcn.0043856d
lea ecx, [ebp - 0xb0]
call fcn.0043092f
jmp 0x456510
mov eax, dword [ebp - 0xdc]
mov ax, word [eax]
movzx esi, ax
cmp esi, 0x61
jl 0x4561fd
cmp esi, 0x7a
jg 0x4561fd
sub esi, 0x20
cmp esi, 0x41
jl 0x456510
cmp esi, 0x5a
jg 0x456510
cmp dword [ebp - 0x78], ebx
jle 0x456292
push 0x488
lea ecx, [ebp - 0x98]
call fcn.00435c56
mov edi, dword [ebp - 0x98]
push 0x288
add edi, 0x200
push ebx
push edi
call fcn.0047fd70
mov eax, esi
shl eax, 0x10
or eax, dword [ebp - 0x78]
push eax
push dword [ebp - 0x98]
push edi
call fcn.0044614d
lea eax, [esi + esi*2 - 0xc3]
lea edi, [edi + eax*8]
add esp, 0x18
cmp dword [edi + 8], ebx
jle 0x456282
push 0x64
lea ecx, [ebp + 0xc]
call fcn.00435da9
push esi
push dword [edi + 4]
push 0x49c48c
push dword [ebp + 0xc]
call dword [sym.imp.USER32.DLL_wsprintfW]
add esp, 0x10
lea ecx, [ebp - 0x98]
call fcn.0043092f
jmp 0x456510
mov ecx, dword [ebp + 0xc]
mov word [ecx], ax
mov eax, dword [ebp + 0xc]
cmp word [eax], bx
je 0x456510
push dword [ebp - 0x88]
mov eax, dword [ebp - 0x20]
push ebx
and eax, 0xfffffffd
push ebx
or eax, 0xc
push eax
push dword [ebp + 0x58]
lea eax, [ebp + 0xc]
push dword [ebp - 0x14]
push eax
call fcn.00446838
add esp, 0x1c
jmp 0x456510
push dword [ebp + 0x58]
lea eax, [ebp + 0xc]
push dword [ebp - 0x18]
push eax
call fcn.00403fc0
add esp, 0xc
jmp 0x456510
call dword [sym.imp.KERNEL32.DLL_GetLastError]
mov esi, eax
jmp 0x4563e7
lea ecx, [ebp + 0x60]
call fcn.0043092f
lea ecx, [ebp + 0x68]
call fcn.0043408a
lea ecx, [ebp + 0x6c]
call fcn.00402b27
mov eax, 0x4ad290
cmp eax, ebx
jmp 0x453aa2
lea ecx, [ebp - 0x1c]
call fcn.0043092f
jmp 0x456521
lea ecx, [ebp - 0x1c]
jmp 0x455c08
lea ecx, [ebp - 0x1c]
jmp 0x456375
lea ecx, [ebp + 0x60]
call fcn.0043092f
lea ecx, [ebp + 0x68]
call fcn.0043408a
lea ecx, [ebp + 0x6c]
call fcn.00402b27
mov eax, 0x4ad290
cmp eax, ebx
je 0x453a22
push eax
jmp 0x453a1c
lea ecx, [ebp - 4]
call fcn.0043092f
lea ecx, [ebp + 4]
jmp 0x455c08
lea ecx, [ebp - 4]
call fcn.0043092f
lea ecx, [ebp + 4]
call fcn.0043092f
lea ecx, [ebp + 0x60]
call fcn.0043092f
lea ecx, [ebp + 0x68]
call fcn.0043408a
lea ecx, [ebp + 0x6c]
call fcn.00402b27
mov eax, 0x4ad290
test eax, eax
je 0x4563a2
push eax
call dword [sym.imp.KERNEL32.DLL_LeaveCriticalSection]
mov esi, 0x80070057
jmp 0x45654b
lea ecx, [ebp + 4]
call fcn.0043092f
lea ecx, [ebp + 0x60]
call fcn.0043092f
lea ecx, [ebp + 0x68]
call fcn.0043408a
lea ecx, [ebp + 0x6c]
call fcn.00402b27
mov eax, 0x4ad290
cmp eax, ebx
je 0x453997
push eax
jmp 0x453991
lea ecx, [ebp + 4]
call fcn.0043092f
lea ecx, [ebp + 0x60]
call fcn.0043092f
lea ecx, [ebp + 0x68]
call fcn.0043408a
lea ecx, [ebp + 0x6c]
call fcn.00402b27
mov eax, 0x4ad290
cmp eax, ebx
jmp 0x4559ba
lea ecx, [ebp + 4]
call fcn.0043092f
lea ecx, [ebp + 0x60]
call fcn.0043092f
lea ecx, [ebp + 0x68]
call fcn.0043408a
lea ecx, [ebp + 0x6c]
call fcn.00402b27
mov eax, 0x4ad290
cmp eax, edi
jmp 0x456399
lea ecx, [ebp + 4]
call fcn.0043092f
lea ecx, [ebp + 0x60]
call fcn.0043092f
lea ecx, [ebp + 0x68]
call fcn.0043408a
lea ecx, [ebp + 0x6c]
call fcn.00402b27
mov eax, 0x4ad290
test eax, eax
jmp 0x456540
push 0x1000
lea ecx, [ebp + 0xc]
call fcn.00435da9
cmp dword [ebp - 0x18], ebx
jl 0x4564ea
push 0x488
lea ecx, [ebp + 0x28]
call fcn.00435c56
mov edi, dword [ebp + 0x28]
push 0x288
lea esi, [edi + 0x200]
push ebx
push esi
call fcn.0047fd70
push dword [ebp - 0x78]
push edi
push esi
call fcn.0044614d
add esp, 0x18
xor edi, edi
lea eax, [esi + 4]
mov ecx, dword [ebp - 0x18]
cmp dword [eax], ecx
je 0x4564bb
inc edi
add eax, 0x18
cmp edi, 0x1a
jle 0x4564a9
jmp 0x4564e2
push 0x64
lea ecx, [ebp + 0xc]
call fcn.00435da9
lea eax, [edi + edi*2]
lea eax, [esi + eax*8]
push dword [eax + 0x10]
push dword [eax + 4]
push 0x49c47c
push dword [ebp + 0xc]
call dword [sym.imp.USER32.DLL_wsprintfW]
add esp, 0x10
lea ecx, [ebp + 0x28]
jmp 0x456288
cmp byte [ebp - 0xf], 0
jne 0x456510
cmp byte [ebp + 0x4e], 4
mov eax, 0x4958f8
je 0x456500
mov eax, 0x4958e8
push eax
push ebx
push dword [ebp + 0xc]
push dword [ebp - 0x18]
call fcn.0043a346
add esp, 0x10
push dword [ebp + 0xc]
mov ecx, dword [ebp - 0xa4]
push dword [ebp - 0x80]
call fcn.00435749
lea ecx, [ebp + 0x60]
call fcn.0043092f
lea ecx, [ebp + 0x68]
call fcn.0043408a
lea ecx, [ebp + 0x6c]
call fcn.00402b27
mov eax, 0x4ad290
cmp eax, ebx
je 0x456549
push eax
call dword [sym.imp.KERNEL32.DLL_LeaveCriticalSection]
xor esi, esi
lea ecx, [ebp - 0x8c]
call fcn.0043092f
lea ecx, [ebp - 0x80]
call fcn.0043092f
lea ecx, [ebp - 0xdc]
call fcn.0043092f
lea ecx, [ebp - 0x194]
call fcn.0043092f
lea ecx, [ebp + 0xc]
call fcn.0043092f
pop edi
mov eax, esi
pop esi
pop ebx
add ebp, 0x70
leave
ret 8