Function at 0x10030980
Capabilities:
Write file on windows

Disassembly:
push ebp
push ebx
push edi
push esi
sub esp, 0x90
mov eax, dword [0x10063040]
xor eax, esp
mov dword [esp + 0x8c], eax
cmp dword [ecx + 0x10], 0
sete byte [esp + 7]
mov dword [esp + 0x68], ecx
lea eax, [ecx + 0x14]
mov dword [esp + 0x60], eax
mov dword [esp + 0x64], edx
lea eax, [edx + 4]
mov dword [esp + 0x5c], eax
mov ecx, 0x78b6e478
mov eax, 0xff915bb5
jmp 0x10030a00
mov eax, dword [esp + 0x64]
mov dword [esp + 0x24], eax
mov eax, dword [esp + 0x24]
mov eax, dword [eax]
mov ecx, dword [esp + 0x5c]
mov dword [esp + 0x28], ecx
mov ecx, dword [esp + 0x28]
cmp eax, dword [ecx]
mov eax, 0x9e487868
mov ecx, 0xaca98de2
cmove eax, ecx
mov ecx, 0xbd8d458d
nop word cs:[eax + eax]
nop dword [eax + eax]
cmp ecx, 0xf21a528e
jle 0x10030a70
cmp ecx, 0x44798f7a
jle 0x10030ae0
cmp ecx, 0x6178062a
jg 0x10030bc3
cmp ecx, 0x4c7b9491
jg 0x10030cf0
cmp ecx, 0x44798f7b
je 0x10030ee7
cmp ecx, 0x44d80c83
je 0x10030f02
cmp ecx, 0x4c52f729
jne 0x10030a00
mov ecx, dword [esp]
cmp ecx, 0x92c43090
mov ecx, 0xa4bf5351
mov edx, 0xe6b0d110
cmove ecx, edx
jmp 0x10030a00
cmp ecx, 0xbbc5f609
jle 0x10030b40
cmp ecx, 0xe6b0d10f
jg 0x10030c0e
cmp ecx, 0xcf0b852d
jg 0x10030d2f
cmp ecx, 0xbbc5f60a
je 0x10030f1d
cmp ecx, 0xbd8d458d
je 0x10030f38
cmp ecx, 0xcb80daf1
jne 0x10030a00
mov ecx, dword [esp]
cmp ecx, 0x97474ddd
mov ecx, 0xa4bf5351
mov edx, 0xa43f7039
cmove ecx, edx
jmp 0x10030a00
cmp ecx, 0x16cd1f52
jg 0x10030c59
cmp ecx, 0xea0b030
jg 0x10030d94
cmp ecx, 0xf21a528f
je 0x10030f42
cmp ecx, 0xf6e1ff52
je 0x10030f5d
cmp ecx, 0xfd13e145
jne 0x10030a00
mov ecx, dword [esp]
cmp ecx, 0x5db63d8e
mov ecx, 0xb63baacd
mov edx, 0xec69cc11
cmovl ecx, edx
jmp 0x10030a00
cmp ecx, 0xa43f7038
jle 0x10030ca4
cmp ecx, 0xad7d3182
jg 0x10030dd2
cmp ecx, 0xa43f7039
je 0x10030f78
cmp ecx, 0xa4bf5351
je 0x10031106
cmp ecx, 0xa79eac5c
jne 0x10030a00
mov eax, dword [esp + 0x18]
mov dword [esp + 0x38], eax
lea eax, [esp + 0x70]
mov dword [esp + 0x3c], eax
mov eax, dword [esp + 0x3c]
mov dword [esp + 0x70], 0
mov eax, dword [esp + 0x24]
mov eax, dword [eax]
mov dword [esp + 0x40], eax
mov eax, dword [esp + 0x28]
mov eax, dword [eax]
mov dword [esp + 0x44], eax
mov eax, dword [esp + 0x40]
cmp eax, dword [esp + 0x44]
mov eax, 0x8fcebd1b
mov ecx, 0x92c43090
jmp 0x100309e9
cmp ecx, 0x736216f8
jg 0x10030e11
cmp ecx, 0x6178062b
je 0x10031110
cmp ecx, 0x6533edf5
je 0x10031149
cmp ecx, 0x6b79ad2d
jne 0x10030a00
mov ecx, dword [esp]
cmp ecx, 0x9d7175fc
mov ecx, 0xa4bf5351
mov edx, 0x6178062b
cmove ecx, edx
jmp 0x10030a00
cmp ecx, 0xedc6b0dc
jg 0x10030e42
cmp ecx, 0xe6b0d110
je 0x1003117f
cmp ecx, 0xe916f403
je 0x1003119c
cmp ecx, 0xec69cc11
jne 0x10030a00
mov ecx, dword [esp]
cmp ecx, 0x5386f2d8
mov ecx, 0x4f528f58
mov edx, 0xedc6b0dd
cmovl ecx, edx
jmp 0x10030a00
cmp ecx, 0x30f704ad
jle 0x10030e81
cmp ecx, 0x30f704ae
je 0x100311b7
cmp ecx, 0x36eddca1
je 0x10031397
cmp ecx, 0x38ce77c9
jne 0x10030a00
mov ecx, dword [esp]
cmp ecx, 0xaca98de2
mov ecx, 0xa4bf5351
mov edx, 0x16cd1f53
cmove ecx, edx
jmp 0x10030a00
cmp ecx, 0x97a97db5
jle 0x10030eb4
cmp ecx, 0x97a97db6
je 0x100313b2
cmp ecx, 0x9891a396
je 0x100313cd
cmp ecx, 0x9a5de301
jne 0x10030a00
push esi
push dword [esp + 0x18]
call fcn.10050538
add esp, 8
mov ecx, 0xbd8d458d
mov eax, 0x5dc01ad6
jmp 0x10030a00
cmp ecx, 0x4c7b9492
je 0x100313e8
cmp ecx, 0x4e59c38e
je 0x10031416
cmp ecx, 0x4f528f58
jne 0x10030a00
mov ecx, dword [esp]
cmp ecx, 0x5386f2d8
mov ecx, 0xa4bf5351
mov edx, 0x8577dea4
cmove ecx, edx
jmp 0x10030a00
cmp ecx, 0xcf0b852e
je 0x10031575
cmp ecx, 0xe22851d9
je 0x10031590
cmp ecx, 0xe46b69ab
jne 0x10030a00
lea ecx, [esp + 0x74]
mov dword [esp + 8], ecx
lea eax, [esp + 0x84]
mov dword [esp + 0x6c], eax
lea eax, [esp + 0x88]
mov dword [esp + 0x48], eax
mov dword [esp + 0x4c], ecx
mov ecx, 0xbd8d458d
mov dword [esp + 0x1c], 0
mov eax, 0x9d7175fc
mov edx, dword [esp + 0x40]
mov dword [esp + 0x20], edx
jmp 0x10030a00
cmp ecx, 0xea0b031
je 0x100309c3
cmp ecx, 0x14dfe4c2
je 0x100315ab
cmp ecx, 0x1633e231
jne 0x10030a00
mov eax, dword [esp + 0x30]
cmp dword [eax], 0x10
mov eax, dword [esp + 0x34]
jae 0x1003168e
mov eax, dword [esp + 0x2c]
jmp 0x10031690
cmp ecx, 0xad7d3183
je 0x100315c6
cmp ecx, 0xb0dcfb75
je 0x100315d0
cmp ecx, 0xb63baacd
jne 0x10030a00
mov ecx, dword [esp]
cmp ecx, 0x5dc01ad6
mov ecx, 0xf6e1ff52
mov edx, 0xe22851d9
cmovl ecx, edx
jmp 0x10030a00
cmp ecx, 0x736216f9
je 0x100315eb
cmp ecx, 0x7f5f94d7
je 0x10031606
cmp ecx, 0x78b6e478
jne 0x10030a00
mov dword [esp], eax
mov ecx, 0x14dfe4c2
jmp 0x10030a00
cmp ecx, 0xedc6b0dd
je 0x10031621
cmp ecx, 0xeec56a10
je 0x1003163c
cmp ecx, 0xeffaf796
jne 0x10030a00
mov ecx, dword [esp]
cmp ecx, 0x9d7175fc
mov ecx, 0x6b79ad2d
mov edx, 0xcb80daf1
cmovl ecx, edx
jmp 0x10030a00
cmp ecx, 0x282f6ed6
je 0x10031657
cmp ecx, 0x2c281a6f
jne 0x1003180d
mov ecx, dword [esp]
cmp ecx, 0x89c00b8d
mov ecx, 0xb0dcfb75
mov edx, 0xeec56a10
cmovl ecx, edx
jmp 0x10030a00
cmp ecx, 0x840b651c
je 0x10031673
cmp ecx, 0x8fae642a
jne 0x1003181b
mov ecx, dword [esp]
cmp ecx, 0x92c43090
mov ecx, 0x4c52f729
mov edx, 0xcf0b852e
cmovl ecx, edx
jmp 0x10030a00
mov ecx, dword [esp]
cmp ecx, 0x8cc592ab
mov ecx, 0xa4bf5351
mov edx, 0x1633e231
cmove ecx, edx
jmp 0x10030a00
mov ecx, dword [esp]
cmp ecx, 0xaca98de2
mov ecx, 0x38ce77c9
mov edx, 0x36eddca1
cmovl ecx, edx
jmp 0x10030a00
mov ecx, dword [esp]
cmp ecx, 0xbb05dd8d
mov ecx, 0x9891a396
mov edx, 0x44d80c83
cmovl ecx, edx
jmp 0x10030a00
mov ecx, 0x78b6e478
jmp 0x10030a00
mov ecx, dword [esp]
cmp ecx, 0xbb05dd8d
mov ecx, 0xa4bf5351
mov edx, 0xea0b031
cmove ecx, edx
jmp 0x10030a00
mov ecx, dword [esp]
cmp ecx, 0x5dc01ad6
mov ecx, 0xa4bf5351
mov edx, 0x6533edf5
cmove ecx, edx
jmp 0x10030a00
mov eax, dword [esp + 0x4c]
mov eax, dword [eax]
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0xc]
mov ecx, eax
not ecx
mov edx, ecx
or edx, 0xfffffffe
mov esi, eax
xor esi, 1
add esi, edx
mov edx, ecx
or edx, 1
add edx, esi
add edx, eax
mov esi, eax
or esi, 1
sub edx, esi
add edx, 2
mov esi, edx
or esi, 0xb0e547f0
or edx, 0x4f1ab80f
lea ebx, [esi + edx]
add edx, esi
add edx, 0xb0e547f1
mov esi, edx
xor esi, 0xb0e547ef
lea esi, [esi + ebx*2]
add esi, 0x61ca8fe2
mov ebx, edx
xor ebx, 0x4f1ab810
add ebx, esi
not edx
mov ebp, 0x1f9761e3
sub ebp, ebx
sub ebp, edx
lea esi, [edx + ebx]
add esi, 0xe0689e1c
and ebp, eax
mov edx, esi
sub edx, ebp
lea ebx, [edx + eax*2]
mov edx, esi
xor edx, eax
add edx, ebx
or esi, eax
sub edx, esi
mov ebx, edx
and ebx, 0x6eb219f5
add ebx, edx
not edx
or edx, 0x914de60a
lea esi, [ebx + edx]
add edx, ebx
add edx, 0x6eb219f7
mov ebx, ecx
and ebx, 0x93275558
or ecx, 0x6cd8aaa7
add ecx, eax
add ecx, 1
mov eax, ecx
and eax, 0xfffffffe
or eax, ebx
or ebx, ecx
xor ebx, 0x93275558
xor eax, 0x6cd8aaa6
add eax, ebx
mov ecx, edx
and ecx, 0xb19be51f
add ecx, esi
add ecx, 0x6eb219f7
or edx, 0x4e641ae0
sub ecx, edx
lea edx, [eax + ecx]
add eax, ecx
add eax, 1
mov ecx, eax
and ecx, 0xb19be51f
add ecx, edx
add ecx, 1
or eax, 0x4e641ae0
sub ecx, eax
lea eax, [ecx - 0x3dd8c4df]
mov edx, 0x6337ca42
sub edx, ecx
and edx, 2
lea ecx, [edx + ecx*2]
add ecx, 0x844e7642
or eax, 2
sub ecx, eax
lea eax, [ecx + 2]
mov edx, eax
not edx
and edx, 0xdaa0fa9f
add ecx, edx
add ecx, 2
or eax, 0x255f0560
lea edx, [ecx + eax]
add eax, ecx
add eax, 0x65b8b714
mov ecx, eax
or ecx, 0x8b17bc74
add ecx, edx
mov edx, eax
not edx
xor eax, 0x74e8438b
add eax, ecx
or edx, 0x74e8438b
lea esi, [edx + eax]
add esi, 0xdaa0faa2
cmp esi, 0x1000
mov eax, 0x5db63d8e
mov ecx, 0x1eed0a62
cmovae eax, ecx
mov ecx, 0xbd8d458d
mov edx, dword [esp + 0x10]
mov dword [esp + 0x14], edx
jmp 0x10030a00
mov ecx, 0xad7d3183
jmp 0x10030a00
mov eax, dword [esp + 0x20]
mov dword [esp + 0x50], eax
mov eax, dword [esp + 8]
mov edx, dword [esp + 0x50]
lea ecx, [esp + 0x74]
call fcn.1004ae00
mov eax, dword [esp + 0x6c]
mov eax, dword [eax]
mov ecx, dword [esp + 0x48]
cmp dword [ecx], 0x10
mov ecx, dword [esp + 0x4c]
jae 0x100316c9
mov ecx, dword [esp + 8]
jmp 0x100316cb
mov eax, dword [esp + 8]
mov eax, dword [esp + 0x50]
add eax, 0x18
mov dword [esp + 0x20], eax
cmp eax, dword [esp + 0x44]
mov eax, 0x9d7175fc
mov ecx, 0x92c43090
cmove eax, ecx
mov ecx, dword [esp + 0x54]
mov ecx, 0xbd8d458d
mov edx, dword [esp + 0x54]
mov dword [esp + 0x1c], edx
jmp 0x10030a00
push dword [esp + 0x38]
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov eax, dword [esp + 0x3c]
mov ecx, 0xbd8d458d
mov eax, 0xaca98de2
jmp 0x10030a00
mov ecx, dword [esp]
cmp ecx, 0x97474ddd
mov ecx, 0xeffaf796
mov edx, 0x8fae642a
cmovl ecx, edx
jmp 0x10030a00
mov eax, dword [esp + 0x10]
mov eax, dword [eax - 4]
mov dword [esp + 0x58], eax
mov eax, dword [esp + 0x10]
mov ecx, eax
and ecx, 3
mov edx, eax
or edx, 0xfffffffc
add edx, ecx
lea ecx, [eax + eax]
mov ebx, eax
sub ebx, ecx
mov ebp, eax
or ebp, 3
add ebp, edx
lea edx, [ebx + ebp]
add ebx, ebp
add ebx, 1
mov ebp, ebx
and ebp, 0x4260f6d9
add edx, ebp
add edx, 1
not ebx
or ebx, 0xbd9f0926
lea ebp, [edx + ebx]
lea edi, [ebx + edx]
add edi, 0x4260f6db
sub ecx, edi
mov edx, eax
not edx
mov ebx, edi
or ebx, edx
add ebx, ecx
lea ecx, [ebx + ebp*2]
add ecx, 0x84c1edb6
and edi, eax
not edi
lea ebx, [ecx + edi]
add ecx, edi
add ecx, 0xbd9f0928
or ecx, 0xe286a40d
add ecx, ebx
add ecx, 0xbd9f0928
mov edi, 0x260f6d7
sub edi, ebx
or edi, 0xe286a40d
add edi, ecx
lea ecx, [eax + edx*2]
add ecx, edi
and eax, 0xfffffffc
mov edx, eax
not edx
add eax, eax
lea eax, [eax + edx*2]
add eax, 2
or eax, edx
mov edx, 0xe286a40f
sub edx, ecx
or edx, eax
add eax, edx
sub edx, eax
lea eax, [ecx + edx]
add eax, 0x1d795bf1
imul ecx, eax, 0x82e4ed43
imul eax, eax, 0xfa36257a
add eax, ecx
imul eax, eax, 0xee63f895
mov edx, dword [esp + 0x58]
mov ecx, edx
neg ecx
mov edi, eax
and edi, 0x771d81f7
add edi, edi
mov ebx, eax
sub ebx, edi
mov edi, eax
xor edi, 0x88e27e08
add edi, ebx
mov ebx, 0x7fffffff
sub ebx, eax
or eax, 0x771d81f7
add eax, edi
or ebx, 0x88e27e08
sub eax, ebx
add eax, 0x771d81f8
mov edi, eax
not edi
and edi, ecx
add edi, edx
add edi, edx
mov edx, eax
sub edx, edi
and eax, ecx
mov ecx, eax
not ecx
add ecx, edx
add ecx, 1
add edx, 1
or ecx, 0x88e27e08
mov edi, edx
sub edi, eax
add edi, ecx
sub eax, edx
or eax, 0x88e27e08
add eax, edi
imul eax, eax, 0xf2024e41
mov ecx, eax
and ecx, 0x9b75fc1b
or eax, 0x9b75fc1b
lea edx, [eax + ecx]
add eax, ecx
add eax, 1
mov ecx, eax
not ecx
mov edi, eax
xor edi, 0x6a62686c
add edx, edi
add edx, 1
and ecx, 0x959d9793
add ecx, edx
and eax, 0x6a62686c
lea edx, [ecx + eax]
add eax, ecx
add eax, 0x6a62686d
mov ecx, eax
and ecx, 0x9b75fc1b
add ecx, edx
add ecx, 0x6a62686d
mov edx, eax
not edx
add edx, ecx
and eax, 0x648a03e4
add eax, edx
imul eax, eax, 0x8644c1c1
lea ecx, [eax + 0x7e835edd]
mov edx, ecx
and edx, 0xa99a256b
add eax, edx
add eax, 0x7e835edd
or ecx, 0x5665da94
sub eax, ecx
add eax, 0xee18eaf0
cmp eax, 0x20
mov eax, 0x5386f2d8
mov ecx, 0x89c00b8d
cmovb eax, ecx
mov ecx, 0xbd8d458d
jmp 0x10030a00
mov ecx, dword [esp]
cmp ecx, 0x9e487868
mov ecx, 0xa4bf5351
mov edx, 0x4c7b9492
cmove ecx, edx
jmp 0x10030a00
mov ecx, dword [esp]
cmp ecx, 0x8fcebd1b
mov ecx, 0xe916f403
mov edx, 0x2c281a6f
cmovl ecx, edx
jmp 0x10030a00
mov ecx, dword [esp]
cmp ecx, 0xff915bb5
mov ecx, 0x7f5f94d7
mov edx, 0xf21a528f
cmovl ecx, edx
jmp 0x10030a00
mov ecx, dword [esp + 0x68]
mov dword [esp + 0x2c], ecx
mov eax, dword [esp + 0x60]
mov dword [esp + 0x30], eax
mov eax, dword [esp + 0x30]
cmp dword [eax], 0x10
mov dword [esp + 0x34], ecx
mov eax, dword [esp + 0x34]
jae 0x100317cd
mov eax, dword [esp + 0x2c]
jmp 0x100317cf
mov eax, dword [esp + 0xc]
mov ecx, eax
and ecx, 0xffffffdb
mov esi, eax
and esi, 0xbdcfb559
mov edx, esi
xor edx, 0xbdcfb559
add edx, ecx
add edx, esi
mov ecx, edx
not ecx
mov esi, edx
and esi, 0x42304aa6
add esi, edx
and ecx, 0xbdcfb559
add ecx, esi
xor edx, 0x42304aa6
add edx, ecx
mov ecx, 0xbdcfb558
sub ecx, edx
lea ebx, [eax + eax]
mov edx, ebx
sub edx, eax
mov ebp, eax
not ebp
lea esi, [edx + ebp*2]
lea edi, [edx + ebp*2]
add edi, 2
lea edx, [ecx + esi]
add edx, 2
mov esi, ecx
or esi, edi
add esi, edx
mov edx, ecx
xor edx, edi
sub edx, esi
and ecx, edi
mov esi, eax
and esi, 0x24
xor ebx, 0x49
or eax, 0xffffffdb
add eax, ebx
add eax, ebp
lea ebx, [esi + eax]
add ebx, 1
add eax, esi
lea edi, [esi + eax]
add edi, 1
mov eax, esi
xor eax, ebx
not eax
add eax, edi
mov edi, ebx
not edi
or edi, esi
mov ebp, esi
not ebp
or ebp, ebx
add ebp, edi
sub ebp, eax
and esi, ebx
lea eax, [esi + ebp]
add eax, 1
lea esi, [edx + ecx]
add ecx, edx
add ecx, 0x5d91b0bb
or ecx, eax
add ecx, esi
add ecx, 0x5d91b0bb
mov edx, 0xa26e4f44
sub edx, esi
or edx, eax
lea eax, [ecx + edx]
add ecx, edx
add ecx, 1
mov edx, ecx
xor edx, 0x5d91b072
lea eax, [edx + eax*2]
add eax, 2
mov edx, ecx
xor edx, 0xa26e4f8d
add edx, eax
not ecx
add ecx, edx
imul ecx, ecx, 0x70eae4f5
lea eax, [ecx + 0x5a50c53e]
mov edx, 0x5af3ac1
sub edx, ecx
and edx, 0xb3f802b
neg edx
add ecx, edx
add ecx, 0x5a50c53e
mov edx, eax
xor edx, 0xb3f802b
add edx, ecx
or eax, 0xb3f802b
sub edx, eax
lea eax, [edx + 0x167f0056]
mov ecx, eax
and ecx, 0xa0d2ba9c
add ecx, edx
add ecx, 0x167f0056
not eax
or eax, 0x5f2d4563
add eax, ecx
imul esi, eax, 0x8b3a75d
add esi, 0xd80640c7
mov eax, dword [esp + 0x58]
mov dword [esp + 0x14], eax
mov ecx, 0xbd8d458d
mov eax, 0x5db63d8e
jmp 0x10030a00
mov ecx, dword [esp]
cmp ecx, 0x8fcebd1b
mov ecx, 0xa4bf5351
mov edx, 0xe46b69ab
cmove ecx, edx
jmp 0x10030a00
mov ecx, dword [esp]
cmp ecx, 0x5db63d8e
mov ecx, 0xa4bf5351
mov edx, 0x9a5de301
cmove ecx, edx
jmp 0x10030a00
mov ecx, dword [esp]
cmp ecx, 0x9e487868
mov ecx, 0x736216f9
mov edx, 0x97a97db6
cmovl ecx, edx
jmp 0x10030a00
mov ecx, 0xbd8d458d
jmp 0x10030a00
mov ecx, dword [esp]
cmp ecx, 0x8cc592ab
mov ecx, 0x44798f7b
mov edx, 0x840b651c
cmovl ecx, edx
jmp 0x10030a00
mov ecx, dword [esp]
cmp ecx, 0x1eed0a62
mov ecx, 0xfd13e145
mov edx, 0xbbc5f60a
cmovl ecx, edx
jmp 0x10030a00
mov ecx, dword [esp]
cmp ecx, 0xff915bb5
mov ecx, 0xa4bf5351
mov edx, 0x282f6ed6
cmove ecx, edx
jmp 0x10030a00
mov ecx, dword [esp]
cmp ecx, 0x1eed0a62
mov ecx, 0xa4bf5351
mov edx, 0x30f704ae
cmove ecx, edx
jmp 0x10030a00
mov ecx, dword [esp]
cmp ecx, 0x84ceea4c
mov ecx, 0xa4bf5351
mov edx, 0xa79eac5c
cmove ecx, edx
jmp 0x10030a00
cmp byte [esp + 7], 0
mov eax, 0xbb05dd8d
mov ecx, 0xaca98de2
cmovne eax, ecx
mov ecx, 0xbd8d458d
jmp 0x10030a00
mov ecx, dword [esp]
cmp ecx, 0x89c00b8d
mov ecx, 0xa4bf5351
mov edx, 0x4e59c38e
cmove ecx, edx
jmp 0x10030a00
mov eax, dword [eax]
sub esp, 0x1c
movaps xmm0, xmmword [0x1005f950]
movups xmmword [esp + 4], xmm0
mov dword [esp], eax
mov dword [esp + 0x18], 0
mov dword [esp + 0x14], 0x80
call dword [sym.imp.KERNEL32.dll_CreateFileA]
mov dword [esp + 0x18], eax
cmp eax, 0xffffffff
mov eax, 0x84ceea4c
jmp 0x100309e4
mov ecx, dword [ecx]
push 0
lea edx, [esp + 0x74]
push edx
push eax
push ecx
push dword [esp + 0x48]
call dword [sym.imp.KERNEL32.dll_WriteFile]
mov eax, dword [esp + 0x70]
mov edx, eax
mov edi, dword [esp + 0x1c]
and edx, edi
lea ecx, [edx - 1]
mov ebx, ecx
and ebx, 0x16c3522
sub ebx, edx
and ecx, 0xfe93cadd
add ecx, ebx
sub ecx, edx
lea edx, [ecx + 1]
mov ebx, edx
or ebx, 0xa7f890a2
add ebx, ecx
mov ecx, edx
xor ecx, 0x58076f5d
add ecx, ebx
or edx, 0x58076f5d
sub ecx, edx
lea edx, [ecx - 0x4ff12143]
mov ebx, edx
and ebx, eax
add ecx, ebx
add ecx, 0xb00edebd
not edx
and edx, eax
mov ebp, 0x58076f5d
sub ebp, ecx
sub ebp, edx
add edx, ecx
add edx, 0xa7f890a2
mov ecx, edi
neg ecx
and ebp, ecx
and ecx, edx
add ecx, ebp
sub edx, ecx
mov ecx, eax
not ecx
lea ebx, [eax + ecx*2]
lea ebp, [edx + 0x7584e2c1]
mov eax, ebp
and eax, ebx
not ebx
add eax, edx
add eax, 0x7584e2c1
lea eax, [eax + ebx*2]
or ebx, ebp
sub eax, ebx
lea edx, [eax - 0x7584e2c1]
or ecx, edi
mov ebx, ecx
not ebx
neg ecx
or edx, ecx
add edx, ebx
mov ebx, 0x7584e2c0
sub ebx, eax
and ebx, ecx
lea ecx, [eax + ebx]
add ecx, 0x8a7b1d3f
sub ecx, edx
add eax, ecx
add eax, 0x8a7b1d3e
mov dword [esp + 0x54], eax
mov eax, dword [esp + 0x48]
mov eax, dword [eax]
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0xc]
cmp eax, 0x10
mov eax, 0x5dc01ad6
mov ecx, 0x97474ddd
cmovae eax, ecx
mov ecx, 0xbd8d458d
jmp 0x10030a00
mov eax, dword [eax]
sub esp, 0x1c
movaps xmm0, xmmword [0x1005f960]
movups xmmword [esp + 4], xmm0
mov dword [esp], eax
mov dword [esp + 0x18], 0
mov dword [esp + 0x14], 0x80
call dword [sym.imp.KERNEL32.dll_CreateFileA]
mov dword [esp + 0x18], eax
cmp eax, 0xffffffff
mov eax, 0x84ceea4c
mov ecx, 0x8cc592ab
jmp 0x100309e9
cmp ecx, 0x16cd1f53
jne 0x10030a00
jmp 0x1003182c
cmp ecx, 0x8577dea4
jne 0x10030a00
call fcn.100524ed
mov ecx, dword [esp + 0x8c]
xor ecx, esp
call fcn.10050a3a
add esp, 0x90
pop esi
pop edi
pop ebx
pop ebp
ret