Function at 0x2402890
Capabilities:
Read file on windows
Resolve function by parsing pe exports
Write file on windows

Disassembly:
push 0xffffffffffffffff
mov eax, dword fs:[0]
push 0x24bec13
push eax
mov eax, 0x3068
mov dword fs:[0], esp
call fcn.024adb70
push ebx
push ebp
push esi
push edi
xor ebx, ebx
mov esi, edx
mov edi, ecx
mov dword [esp + 0x6c], esi
mov dword [esp + 0x28], edi
mov dword [esp + 0x10], ebx
mov dword [esp + 0x14], ebx
mov eax, dword [esi]
cmp eax, ebx
mov dword [esp + 0x3080], ebx
mov dword [esp + 0x5c], ebx
je 0x24028ef
mov ecx, dword [eax]
push eax
mov dword [esi + 4], ecx
call fcn.024adc89
mov eax, dword [esi + 4]
add esp, 4
cmp eax, ebx
jne 0x24028da
lea edx, [esp + 0x10]
push edx
lea eax, [esp + 0x60]
push eax
mov edx, 0x24da154
mov ecx, 0x24da930
mov dword [esi], ebx
mov dword [esi + 8], ebx
mov dword [esi + 4], ebx
mov dword [esi + 0xc], ebx
call fcn.0247cf10
test eax, eax
je 0x240371f
cmp dword [esp + 0x5c], ebx
jne 0x24029c3
lea ecx, [esp + 0x70]
call fcn.0245db00
push 8
lea ecx, [esp + 0x74]
mov byte [esp + 0x3084], 1
call fcn.0245de20
test eax, eax
jne 0x240295a
lea ecx, [esp + 0x70]
mov byte [esp + 0x3080], bl
call fcn.0245dcd0
jmp 0x240371f
cmp dword [esp + 0x1418], ebx
je 0x24029b3
cmp dword [esp + 0x1414], ebx
je 0x24029b3
lea ecx, [esp + 0x1414]
call fcn.0247f9b0
test eax, eax
je 0x2402945
lea ecx, [esp + 0x1414]
test ecx, ecx
je 0x24029b3
mov edx, dword [esp + 0x1414]
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x14]
mov dword [esp + 0x10], edx
mov edx, dword [esp + 0x1418]
mov dword [esp + 0x14], edx
mov dword [esp + 0x1414], eax
mov dword [esp + 0x1418], ecx
lea ecx, [esp + 0x70]
mov byte [esp + 0x3080], bl
call fcn.0245dcd0
lea ecx, [esp + 0x10]
call fcn.0247f830
test eax, eax
jne 0x2402ab6
lea ecx, [esp + 0x10]
call fcn.02403780
test eax, eax
jne 0x2402ab6
mov dword [esp + 0x44], ebx
mov dword [esp + 0x48], ebx
lea edx, [esp + 0x44]
xor ecx, ecx
mov byte [esp + 0x3080], 2
call fcn.02480df0
test eax, eax
jne 0x2402a19
mov byte [esp + 0x3080], bl
lea ecx, [esp + 0x44]
call fcn.024017d0
jmp 0x240371f
mov esi, dword [esp + 0x48]
push esi
call fcn.024adc6c
add esp, 4
cmp eax, ebx
jle 0x2402a3b
lea ecx, [esi + eax*2]
cmp word [ecx], 0x5c
je 0x2402a3b
dec eax
sub ecx, 2
cmp eax, ebx
jg 0x2402a2d
cmp word [esi + eax*2], 0x5c
jne 0x2402a43
inc eax
mov edx, esi
lea ecx, [esp + 0x10]
mov word [esi + eax*2], bx
call fcn.0247f900
test eax, eax
je 0x2402a04
mov edx, 0x24da13c
lea ecx, [esp + 0x10]
call fcn.0247f890
test eax, eax
mov byte [esp + 0x3080], bl
lea ecx, [esp + 0x44]
je 0x2402a0f
call fcn.024017d0
lea ecx, [esp + 0x10]
mov esi, 0x24e26a0
call fcn.0247f830
test eax, eax
je 0x2402a8e
mov esi, dword [esp + 0x14]
lea eax, [esp + 0x10]
push eax
push ebx
mov edx, esi
mov ecx, edi
call fcn.02403910
test eax, eax
je 0x240371f
lea ecx, [esp + 0x10]
call fcn.0247f850
test eax, eax
je 0x240371f
mov edi, dword [sym.imp.user32.dll_MessageBoxW]
mov ebp, 1
mov ecx, dword [esp + 0x14]
call fcn.02405590
cmp ebp, ebx
je 0x2402ad8
cmp eax, ebx
jne 0x2402b18
cmp dword [esp + 0x5c], ebx
je 0x2402b18
lea ecx, [esp + 0x10]
mov esi, 0x24e26a0
call fcn.0247f830
test eax, eax
je 0x2402aee
mov esi, dword [esp + 0x14]
lea ecx, [esp + 0x10]
push ecx
mov ecx, dword [esp + 0x2c]
push ebx
mov edx, esi
call fcn.02403910
test eax, eax
je 0x240371f
lea ecx, [esp + 0x10]
call fcn.0247f850
test eax, eax
je 0x240371f
lea ecx, [esp + 0x10]
xor ebp, ebp
call fcn.0247f830
test eax, eax
je 0x2402ac1
mov ecx, dword [esp + 0x14]
call fcn.02405590
mov dword [esp + 0x18], ebx
mov dword [esp + 0x1c], ebx
mov dword [esp + 0x20], ebx
mov dword [esp + 0x24], ebx
cmp eax, ebx
mov byte [esp + 0x3080], 3
je 0x2402d51
mov ecx, dword [esp + 0x14]
lea edx, [esp + 0x38]
mov dword [esp + 0x38], ebx
call fcn.024055d0
test eax, eax
je 0x2402c3f
cmp dword [esp + 0x38], ebx
je 0x2402bcb
mov edx, dword [esp + 0x14]
cmp edx, ebx
mov esi, edx
jne 0x2402b88
mov dword [0x24e2600], 0xb
jmp 0x2402c58
mov ecx, 0x24e2604
call fcn.0247f900
test eax, eax
jne 0x2402ba5
mov dword [0x24e2600], 0xc
jmp 0x2402c58
push ebx
push ebx
push 3
push esi
mov ecx, 0x24e25d8
mov dword [0x24e260c], 3
call fcn.02406850
cmp eax, ebx
jne 0x2402e7e
jmp 0x2402c58
mov esi, dword [esp + 0x28]
push 0x2034
push 0xa02f
push 0xa111
push esi
call fcn.0241c630
cmp eax, 6
je 0x2402c18
mov eax, dword [esp + 0x18]
cmp eax, ebx
mov byte [esp + 0x3080], bl
je 0x2402ac1
mov edx, dword [eax]
push eax
mov dword [esp + 0x20], edx
call fcn.024adc89
mov eax, dword [esp + 0x20]
add esp, 4
cmp eax, ebx
jne 0x2402bfc
jmp 0x2402ac1
mov ecx, dword [esp + 0x14]
lea edx, [esp + 0x18]
call fcn.024052e0
test eax, eax
jne 0x2402d51
push 0x2030
push 0xa02f
push 0xa09b
push esi
jmp 0x2402c53
mov eax, dword [esp + 0x28]
push 0x2030
push 0xa02f
push 0xa09b
push eax
call fcn.0241c630
mov dword [esp + 0x4c], ebx
mov dword [esp + 0x50], ebx
mov dword [esp + 0x44], ebx
mov dword [esp + 0x48], ebx
lea ecx, [esp + 0x44]
push ecx
mov ecx, dword [0x24e27c8]
mov edx, 0xa02f
mov byte [esp + 0x3084], 5
call fcn.02481110
test eax, eax
je 0x2402ead
mov ecx, dword [0x24e27c8]
lea edx, [esp + 0x4c]
push edx
mov edx, 0xa099
call fcn.02481110
test eax, eax
je 0x2402efe
mov edx, dword [esp + 0x14]
lea ecx, [esp + 0x4c]
call fcn.0247f890
test eax, eax
je 0x2402f4f
mov eax, dword [esp + 0x48]
mov ecx, dword [esp + 0x50]
mov edx, dword [esp + 0x28]
push 0x2034
push eax
push ecx
push edx
call edi
cmp eax, 6
mov byte [esp + 0x3080], 4
lea ecx, [esp + 0x44]
je 0x2402d2b
call fcn.024017d0
lea ecx, [esp + 0x4c]
mov byte [esp + 0x3080], 3
call fcn.024017d0
mov eax, dword [esp + 0x18]
cmp eax, ebx
mov byte [esp + 0x3080], bl
je 0x2402ac1
mov ecx, dword [eax]
push eax
mov dword [esp + 0x20], ecx
call fcn.024adc89
mov eax, dword [esp + 0x20]
add esp, 4
cmp eax, ebx
jne 0x2402d0f
jmp 0x2402ac1
call fcn.024017d0
mov eax, dword [esp + 0x50]
cmp eax, ebx
mov byte [esp + 0x3080], 3
mov dword [esp + 0x4c], ebx
je 0x2402d51
push eax
call fcn.024ad03a
add esp, 4
mov dword [esp + 0x50], ebx
mov edx, dword [esp + 0x14]
cmp edx, ebx
mov esi, edx
jne 0x2402d67
mov dword [0x24e2600], 0xb
jmp 0x2402da0
mov ecx, 0x24e2604
call fcn.0247f900
test eax, eax
jne 0x2402d81
mov dword [0x24e2600], 0xc
jmp 0x2402da0
push 3
push esi
mov ecx, 0x24e25d8
mov dword [0x24e260c], 3
call fcn.02406770
cmp eax, ebx
jne 0x24030c3
mov dword [esp + 0x3c], ebx
mov dword [esp + 0x40], ebx
mov dword [esp + 0x30], ebx
mov dword [esp + 0x34], ebx
mov ecx, dword [0x24e27c8]
lea edx, [esp + 0x30]
push edx
mov edx, 0xa02f
mov byte [esp + 0x3084], 7
call fcn.02481110
test eax, eax
je 0x2402fa0
mov ecx, dword [0x24e27c8]
lea eax, [esp + 0x3c]
push eax
mov edx, 0xa08f
call fcn.02481110
test eax, eax
je 0x2403001
mov edx, dword [esp + 0x14]
lea ecx, [esp + 0x3c]
call fcn.0247f890
test eax, eax
je 0x2403062
mov ecx, dword [esp + 0x34]
mov edx, dword [esp + 0x40]
mov eax, dword [esp + 0x28]
push 0x2030
push ecx
push edx
push eax
call edi
mov eax, dword [esp + 0x34]
cmp eax, ebx
mov dword [esp + 0x30], ebx
je 0x2402e36
push eax
call fcn.024ad03a
add esp, 4
mov dword [esp + 0x34], ebx
mov eax, dword [esp + 0x40]
cmp eax, ebx
mov dword [esp + 0x3c], ebx
je 0x2402e4f
push eax
call fcn.024ad03a
add esp, 4
mov dword [esp + 0x40], ebx
mov eax, dword [esp + 0x18]
cmp eax, ebx
mov byte [esp + 0x3080], bl
je 0x2402ac1
mov ecx, dword [eax]
push eax
mov dword [esp + 0x20], ecx
call fcn.024adc89
mov eax, dword [esp + 0x20]
add esp, 4
cmp eax, ebx
jne 0x2402e62
jmp 0x2402ac1
mov eax, dword [esp + 0x18]
cmp eax, ebx
mov byte [esp + 0x3080], bl
je 0x24032f2
mov edx, dword [eax]
push eax
mov dword [esp + 0x20], edx
call fcn.024adc89
mov eax, dword [esp + 0x20]
add esp, 4
cmp eax, ebx
jne 0x2402e91
jmp 0x24032f2
lea ecx, [esp + 0x44]
mov byte [esp + 0x3080], 4
call fcn.024017d0
lea ecx, [esp + 0x4c]
mov byte [esp + 0x3080], 3
call fcn.024017d0
mov eax, dword [esp + 0x18]
cmp eax, ebx
mov byte [esp + 0x3080], bl
je 0x240371f
mov ecx, dword [eax]
push eax
mov dword [esp + 0x20], ecx
call fcn.024adc89
mov eax, dword [esp + 0x20]
add esp, 4
cmp eax, ebx
jne 0x2402ee2
jmp 0x240371f
lea ecx, [esp + 0x44]
mov byte [esp + 0x3080], 4
call fcn.024017d0
lea ecx, [esp + 0x4c]
mov byte [esp + 0x3080], 3
call fcn.024017d0
mov eax, dword [esp + 0x18]
cmp eax, ebx
mov byte [esp + 0x3080], bl
je 0x240371f
mov edx, dword [eax]
push eax
mov dword [esp + 0x20], edx
call fcn.024adc89
mov eax, dword [esp + 0x20]
add esp, 4
cmp eax, ebx
jne 0x2402f33
jmp 0x240371f
lea ecx, [esp + 0x44]
mov byte [esp + 0x3080], 4
call fcn.024017d0
lea ecx, [esp + 0x4c]
mov byte [esp + 0x3080], 3
call fcn.024017d0
mov eax, dword [esp + 0x18]
cmp eax, ebx
mov byte [esp + 0x3080], bl
je 0x240371f
mov ecx, dword [eax]
push eax
mov dword [esp + 0x20], ecx
call fcn.024adc89
mov eax, dword [esp + 0x20]
add esp, 4
cmp eax, ebx
jne 0x2402f84
jmp 0x240371f
mov eax, dword [esp + 0x34]
cmp eax, ebx
mov dword [esp + 0x30], ebx
je 0x2402fb9
push eax
call fcn.024ad03a
add esp, 4
mov dword [esp + 0x34], ebx
mov eax, dword [esp + 0x40]
cmp eax, ebx
mov dword [esp + 0x3c], ebx
je 0x2402fd2
push eax
call fcn.024ad03a
add esp, 4
mov dword [esp + 0x40], ebx
mov eax, dword [esp + 0x18]
cmp eax, ebx
mov byte [esp + 0x3080], bl
je 0x24032ac
mov edx, dword [eax]
push eax
mov dword [esp + 0x20], edx
call fcn.024adc89
mov eax, dword [esp + 0x20]
add esp, 4
cmp eax, ebx
jne 0x2402fe5
jmp 0x24032ac
mov eax, dword [esp + 0x34]
cmp eax, ebx
mov dword [esp + 0x30], ebx
je 0x240301a
push eax
call fcn.024ad03a
add esp, 4
mov dword [esp + 0x34], ebx
mov eax, dword [esp + 0x40]
cmp eax, ebx
mov dword [esp + 0x3c], ebx
je 0x2403033
push eax
call fcn.024ad03a
add esp, 4
mov dword [esp + 0x40], ebx
mov eax, dword [esp + 0x18]
cmp eax, ebx
mov byte [esp + 0x3080], bl
je 0x24032ac
mov ecx, dword [eax]
push eax
mov dword [esp + 0x20], ecx
call fcn.024adc89
mov eax, dword [esp + 0x20]
add esp, 4
cmp eax, ebx
jne 0x2403046
jmp 0x24032ac
mov eax, dword [esp + 0x34]
cmp eax, ebx
mov dword [esp + 0x30], ebx
je 0x240307b
push eax
call fcn.024ad03a
add esp, 4
mov dword [esp + 0x34], ebx
mov eax, dword [esp + 0x40]
cmp eax, ebx
mov dword [esp + 0x3c], ebx
je 0x2403094
push eax
call fcn.024ad03a
add esp, 4
mov dword [esp + 0x40], ebx
mov eax, dword [esp + 0x18]
cmp eax, ebx
mov byte [esp + 0x3080], bl
je 0x24032ac
mov edx, dword [eax]
push eax
mov dword [esp + 0x20], edx
call fcn.024adc89
mov eax, dword [esp + 0x20]
add esp, 4
cmp eax, ebx
jne 0x24030a7
jmp 0x24032ac
cmp dword [esp + 0x24], ebx
jne 0x240314d
lea ecx, [esp + 0x18]
call fcn.0245ff80
cmp dword [esp + 0x24], ebx
jne 0x24030ef
lea ecx, [esp + 0x18]
call fcn.02460350
cmp dword [esp + 0x24], ebx
je 0x24032cc
mov eax, dword [esp + 0x28]
push 0x2024
push 0xa091
push 0xa090
push eax
call fcn.0241c630
cmp eax, 6
je 0x2403143
mov eax, dword [esp + 0x18]
cmp eax, ebx
je 0x240312c
mov ecx, dword [eax]
push eax
mov dword [esp + 0x20], ecx
call fcn.024adc89
mov eax, dword [esp + 0x20]
add esp, 4
cmp eax, ebx
jne 0x2403115
xor eax, eax
mov dword [esp + 0x18], eax
mov dword [esp + 0x20], ebx
mov dword [esp + 0x1c], ebx
mov dword [esp + 0x24], ebx
jmp 0x24032d0
cmp dword [esp + 0x24], ebx
je 0x24032cc
mov eax, dword [esp + 0x18]
cmp eax, ebx
mov dword [esp + 0x1c], eax
je 0x24032d0
lea esi, [eax + 4]
cmp esi, ebx
je 0x24032d0
mov edi, 0xdea
or ebp, 0xffffffff
lea edx, [esp + 0x30]
push edx
lea eax, [esp + 0x3c]
push eax
mov ecx, 0x24e25d8
mov dword [esp + 0x40], ebx
call fcn.02407030
test eax, eax
je 0x2403229
mov edx, dword [esp + 0x30]
mov eax, dword [0x24e25d8]
mov ecx, dword [esp + 0x38]
push ebx
push ebx
push edx
push eax
mov dword [0x24e25f0], ecx
call dword [sym.imp.kernel32.dll_SetFilePointer]
cmp eax, ebp
je 0x2403213
mov edx, dword [0x24e25d8]
push ebx
lea ecx, [esp + 0x58]
push ecx
push edi
push esi
push edx
mov dword [esp + 0x68], ebx
call dword [sym.imp.kernel32.dll_WriteFile]
test eax, eax
je 0x240321f
cmp dword [esp + 0x54], edi
jne 0x240321f
mov eax, dword [esp + 0x38]
push 1
push eax
mov ecx, 0x24e25d8
call fcn.02406a00
test eax, eax
je 0x2403229
mov eax, dword [esp + 0x1c]
cmp eax, ebx
je 0x24032cc
mov eax, dword [eax]
cmp eax, ebx
mov dword [esp + 0x1c], eax
je 0x24032cc
lea esi, [eax + 4]
cmp esi, ebx
je 0x24032cc
jmp 0x2403170
mov dword [0x24e2600], 0xa
jmp 0x2403229
mov dword [0x24e2600], 4
mov eax, dword [0x24e25d8]
cmp eax, ebp
mov ecx, dword [0x24e25e0]
mov edx, dword [0x24e25e4]
mov dword [0x24e2610], ecx
mov dword [0x24e2614], edx
je 0x2403251
push eax
call dword [sym.imp.kernel32.dll_CloseHandle]
xor eax, eax
mov dword [0x24e25d8], ebp
mov dword [0x24e25f8], ebx
mov dword [0x24e25fc], ebx
mov ecx, 6
mov edi, 0x24e25dc
rep stosd dword es:[edi], eax
stosb byte es:[edi], al
xor eax, eax
mov ecx, 0x20
mov edi, 0x24e2620
mov dword [0x24e261c], ebp
rep stosd dword es:[edi], eax
mov eax, dword [esp + 0x18]
cmp eax, ebx
mov byte [esp + 0x3080], bl
je 0x24032ac
mov ecx, dword [eax]
push eax
mov dword [esp + 0x20], ecx
call fcn.024adc89
mov eax, dword [esp + 0x20]
add esp, 4
cmp eax, ebx
jne 0x2403295
mov eax, dword [esp + 0x14]
cmp eax, ebx
mov dword [esp + 0x10], ebx
je 0x2403663
push eax
call fcn.024ad03a
add esp, 4
xor eax, eax
jmp 0x240375a
mov eax, dword [esp + 0x18]
cmp eax, ebx
mov byte [esp + 0x3080], bl
je 0x24032f2
mov edx, dword [eax]
push eax
mov dword [esp + 0x20], edx
call fcn.024adc89
mov eax, dword [esp + 0x20]
add esp, 4
cmp eax, ebx
jne 0x24032db
cmp dword [esp + 0x5c], ebx
jne 0x2403386
lea ecx, [esp + 0x70]
call fcn.0245db00
mov esi, dword [esp + 0x14]
push esi
mov byte [esp + 0x3084], 8
call fcn.024adc6c
mov edi, eax
add esp, 4
shl edi, 1
cmp esi, ebx
je 0x2403376
cmp edi, ebx
je 0x2403376
push edi
lea ecx, [esp + 0x1418]
call fcn.02401bb0
test eax, eax
je 0x2403376
mov ecx, edi
mov edi, dword [esp + 0x1418]
mov eax, ecx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
push 8
lea ecx, [esp + 0x74]
call fcn.0245de90
test eax, eax
jne 0x2403376
mov ecx, dword [esp + 0x28]
push 0x2030
push 0xa02f
push 0xa0e9
push ecx
call fcn.0241c630
lea ecx, [esp + 0x70]
mov byte [esp + 0x3080], bl
call fcn.0245dcd0
mov ecx, 0x24e25d8
call fcn.02406fe0
mov ebp, eax
lea edi, [ebp - 1]
xor esi, esi
cmp ebp, ebx
mov dword [esp + 0x30], edi
jle 0x240352d
lea edx, [esp + 0x54]
push edx
lea eax, [esp + 0x68]
push eax
lea ecx, [esp + 0x36]
push ecx
push esi
mov ecx, 0x24e25d8
mov dword [esp + 0x64], ebx
mov byte [esp + 0x3e], bl
mov dword [esp + 0x74], ebx
call fcn.02406ba0
test eax, eax
je 0x2403597
cmp dword [esp + 0x54], ebx
jne 0x2403597
cmp byte [esp + 0x2e], bl
jne 0x24034fc
cmp edi, esi
jle 0x240352d
lea edx, [esp + 0x38]
push edx
lea eax, [esp + 0x6c]
push eax
lea ecx, [esp + 0x37]
push ecx
push edi
mov ecx, 0x24e25d8
mov dword [esp + 0x48], ebx
mov byte [esp + 0x3f], bl
mov dword [esp + 0x78], ebx
call fcn.02406ba0
test eax, eax
je 0x2403597
cmp dword [esp + 0x38], ebx
jne 0x2403597
cmp byte [esp + 0x2f], 1
je 0x2403437
dec edi
cmp edi, esi
jle 0x240352d
jmp 0x24033ed
mov edx, dword [esp + 0x68]
mov eax, dword [0x24e25d8]
push ebx
push ebx
push edx
push eax
call dword [sym.imp.kernel32.dll_SetFilePointer]
cmp eax, 0xffffffff
je 0x2403515
mov eax, dword [0x24e25d8]
push ebx
lea ecx, [esp + 0x2c]
push ecx
push 0xdea
lea edx, [esp + 0x2298]
push edx
push eax
mov dword [esp + 0x3c], ebx
call dword [sym.imp.kernel32.dll_ReadFile]
test eax, eax
je 0x2403506
cmp dword [esp + 0x28], 0xdea
jne 0x2403506
mov ecx, dword [esp + 0x64]
mov edx, dword [0x24e25d8]
push ebx
push ebx
push ecx
push edx
call dword [sym.imp.kernel32.dll_SetFilePointer]
cmp eax, 0xffffffff
je 0x2403515
mov edx, dword [0x24e25d8]
push ebx
lea eax, [esp + 0x2c]
push eax
push 0xdea
lea ecx, [esp + 0x2298]
push ecx
push edx
mov dword [esp + 0x3c], ebx
call dword [sym.imp.kernel32.dll_WriteFile]
test eax, eax
je 0x2403521
cmp dword [esp + 0x28], 0xdea
jne 0x2403521
push 1
push esi
mov ecx, 0x24e25d8
call fcn.02406a00
test eax, eax
je 0x2403597
push ebx
push edi
mov ecx, 0x24e25d8
call fcn.02406a00
test eax, eax
je 0x2403597
inc esi
cmp esi, ebp
jge 0x240352d
jmp 0x24033a3
mov dword [0x24e2600], 5
jmp 0x2403597
mov dword [0x24e2600], 0xa
jmp 0x2403597
mov dword [0x24e2600], 4
jmp 0x2403597
mov esi, dword [esp + 0x30]
xor edi, edi
cmp esi, ebx
jl 0x24035c7
lea eax, [esp + 0x30]
push eax
lea ecx, [esp + 0x40]
push ecx
lea edx, [esp + 0x35]
push edx
push esi
mov ecx, 0x24e25d8
mov dword [esp + 0x40], ebx
mov byte [esp + 0x3d], bl
mov dword [esp + 0x4c], ebx
call fcn.02406ba0
test eax, eax
je 0x2403597
cmp dword [esp + 0x30], ebx
jne 0x24035bb
cmp byte [esp + 0x2d], 1
je 0x2403576
inc edi
dec esi
jns 0x240353b
cmp edi, ebx
je 0x24035c7
push edi
mov ecx, 0x24e25d8
call fcn.02406d10
test eax, eax
je 0x2403597
mov ecx, 0x24e25d8
call fcn.02406f60
test eax, eax
jne 0x24035c7
mov eax, dword [0x24e25e0]
mov ecx, dword [0x24e25e4]
mov dword [0x24e2610], eax
mov eax, dword [0x24e25d8]
or esi, 0xffffffff
cmp eax, esi
mov dword [0x24e2614], ecx
je 0x240361e
jmp 0x2403617
mov dword [0x24e2600], 3
jmp 0x2403597
lea edx, [esp + 0x58]
push edx
lea eax, [esp + 0x64]
push eax
lea ecx, [esp + 0x14a8]
push ecx
mov ecx, 0x24e25d8
mov dword [esp + 0x64], ebx
mov dword [esp + 0x6c], ebx
mov dword [0x24e25f8], ebx
call fcn.02405cd0
test eax, eax
jne 0x240366a
mov eax, dword [0x24e25e4]
mov edx, dword [0x24e25e0]
mov dword [0x24e2614], eax
mov eax, dword [0x24e25d8]
or esi, 0xffffffff
cmp eax, esi
mov dword [0x24e2610], edx
je 0x240361e
push eax
call dword [sym.imp.kernel32.dll_CloseHandle]
mov dword [0x24e25d8], esi
mov dword [0x24e25f8], ebx
mov dword [0x24e25fc], ebx
xor eax, eax
mov ecx, 6
mov edi, 0x24e25dc
rep stosd dword es:[edi], eax
stosb byte es:[edi], al
xor eax, eax
mov dword [0x24e261c], esi
mov ecx, 0x20
mov edi, 0x24e2620
rep stosd dword es:[edi], eax
lea ecx, [esp + 0x10]
mov dword [esp + 0x3080], esi
call fcn.024017d0
xor eax, eax
jmp 0x240375a
cmp dword [esp + 0x58], ebx
jne 0x2403737
mov ebp, dword [esp + 0x6c]
cmp dword [ebp + 8], ebx
mov ecx, dword [esp + 0x60]
mov dword [esp + 0x227e], ecx
mov byte [esp + 0x227d], bl
jne 0x24036a0
lea edx, [esp + 0x14a0]
push edx
mov ecx, ebp
call fcn.02407490
jmp 0x24036e6
push 0xdf0
call fcn.024adc5e
add esp, 4
cmp eax, ebx
je 0x2403715
lea ecx, [esp + 0x14a0]
test ecx, ecx
mov dword [eax], ebx
je 0x24036d1
lea edi, [eax + 4]
mov ecx, 0x37a
lea esi, [esp + 0x14a0]
rep movsd dword es:[edi], dword [esi]
movsw word es:[edi], word [esi]
mov edx, dword [ebp + 8]
mov dword [edx], eax
mov ecx, dword [ebp + 0xc]
inc ecx
mov dword [ebp + 8], eax
mov dword [ebp + 4], ebx
mov dword [ebp + 0xc], ecx
add eax, 4
cmp eax, ebx
je 0x2403715
lea eax, [esp + 0x58]
push eax
lea ecx, [esp + 0x64]
push ecx
lea edx, [esp + 0x14a8]
push edx
mov ecx, 0x24e25d8
call fcn.02405cd0
test eax, eax
je 0x2403715
cmp dword [esp + 0x58], ebx
jne 0x2403737
jmp 0x2403678
mov ecx, 0x24e25d8
call fcn.02405c70
lea ecx, [esp + 0x10]
mov dword [esp + 0x3080], 0xffffffff
call fcn.024017d0
xor eax, eax
jmp 0x240375a
mov ecx, 0x24e25d8
call fcn.02405c70
lea ecx, [esp + 0x10]
mov dword [esp + 0x3080], 0xffffffff
call fcn.024017d0
mov eax, 1
mov ecx, dword [esp + 0x3078]
pop edi
pop esi
pop ebp
pop ebx
mov dword fs:[0], ecx
add esp, 0x3074
ret