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

Disassembly:
sub esp, 0x6c
mov eax, dword [esp + 0x74]
push ebx
mov ebx, dword [eax + 8]
mov ecx, dword [ebx + 0x2b4]
mov eax, dword [eax + 4]
push ebp
push esi
xor esi, esi
push ecx
mov dword [esp + 0x18], esi
mov dword [esp + 0x34], ebx
mov dword [esp + 0x24], eax
mov dword [esp + 0x10], esi
call fcn.0226b115
mov ebp, eax
add esp, 4
cmp ebp, esi
mov dword [esp + 0x1c], ebp
jne 0x2255427
pop esi
pop ebp
mov eax, 0x446
pop ebx
add esp, 0x6c
ret
mov ecx, dword [ebx + 0x2b4]
mov esi, dword [esp + 0x88]
push edi
mov edx, ecx
shr ecx, 2
mov edi, ebp
rep movsd dword es:[edi], dword [esi]
xor eax, eax
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov esi, dword [esp + 0x80]
mov dword [esp + 0x5c], eax
mov dword [esp + 0x60], eax
mov dword [esp + 0x64], eax
mov dword [esp + 0x68], eax
mov dword [esp + 0x6c], eax
mov dword [esp + 0x70], eax
push 1
mov dword [esp + 0x78], eax
push 0
mov dword [esp + 0x80], eax
mov eax, dword [esi + 0x464]
push 0
push eax
mov dword [esp + 0x6c], 0x40000000
call dword [sym.imp.KERNEL32.dll_SetFilePointer]
mov edi, eax
cmp edi, 0xffffffff
jne 0x225549f
call dword [sym.imp.KERNEL32.dll_GetLastError]
test eax, eax
je 0x225549f
or edi, edi
mov ecx, dword [esp + 0x84]
mov edx, dword [ecx + 0x14]
mov ecx, dword [esi + 0x44c]
xor eax, eax
cmp ecx, eax
mov dword [esp + 0x60], edi
mov dword [esp + 0x64], eax
mov dword [esp + 0x6c], edx
mov dword [esp + 0x70], 0xffffffff
mov dword [esp + 0x68], 1
jle 0x22554f4
mov ecx, dword [esi + 0x45c]
cmp ebx, dword [ecx]
je 0x22554eb
mov edx, dword [esi + 0x44c]
inc eax
add ecx, 4
cmp eax, edx
jl 0x22554d7
jmp 0x22554f4
cmp eax, 0xffffffff
mov dword [esp + 0x70], eax
jne 0x2255510
mov eax, dword [esi + 0x468]
or eax, 0x100
mov edi, 0x49c
mov dword [esi + 0x468], eax
mov dword [esp + 0x18], edi
jmp 0x2255514
mov edi, dword [esp + 0x18]
mov eax, dword [esp + 0x88]
push 0
lea ecx, [esp + 0x34]
push ecx
push 0x20
lea edx, [esp + 0x68]
mov dword [esp + 0x80], eax
mov eax, dword [esi + 0x464]
push edx
push eax
mov dword [esp + 0x44], 0
call dword [sym.imp.KERNEL32.dll_WriteFile]
test eax, eax
je 0x2255550
cmp dword [esp + 0x30], 0x20
je 0x225555b
mov edi, 0x46b
mov dword [esp + 0x18], edi
jmp 0x2255575
test edi, edi
jne 0x2255575
mov eax, dword [esp + 0x84]
mov eax, dword [eax + 0xc]
test eax, eax
je 0x2255575
push edi
push 0x2bd
call eax
xor eax, eax
test edi, edi
mov dword [esp + 0x38], eax
jne 0x2255e25
jmp 0x2255590
mov ebx, dword [esp + 0x34]
lea esp, [esp]
mov ecx, dword [esp + 0x84]
cmp eax, dword [ecx + 0x14]
jge 0x2255e1d
xor edx, edx
mov dword [esp + 0x3c], edx
mov dword [esp + 0x40], edx
mov dword [esp + 0x44], edx
mov dword [esp + 0x48], edx
mov dword [esp + 0x4c], edx
mov dword [esp + 0x50], edx
mov dword [esp + 0x54], edx
lea eax, [eax + eax*2]
mov dword [esp + 0x58], edx
mov edx, dword [ecx + 0x18]
shl eax, 4
mov dword [esp + 0x14], 0
mov edi, dword [eax + edx + 8]
mov dword [esp + 0x2c], eax
lea eax, [esp + 0x44]
push eax
push edi
push ebx
call fcn.0225d9c0
mov eax, dword [edi + 0x80]
add esp, 0xc
sub eax, 2
je 0x2255afe
sub eax, 0x11
je 0x2255880
dec eax
je 0x2255afe
mov eax, dword [esi + 0x464]
push 1
push 0
push 0
push eax
call dword [sym.imp.KERNEL32.dll_SetFilePointer]
mov ebx, eax
cmp ebx, 0xffffffff
jne 0x2255631
call dword [sym.imp.KERNEL32.dll_GetLastError]
test eax, eax
mov dword [esp + 0x1c], ebx
jne 0x2255635
mov dword [esp + 0x1c], ebx
mov eax, dword [edi + 0x88]
mov ecx, dword [esp + 0x64]
lea edx, [ecx + eax*2 + 0x20]
xor ecx, ecx
push ecx
mov dword [esp + 0x4c], ecx
mov dword [esp + 0x34], ecx
lea ecx, [esp + 0x34]
push ecx
mov dword [esp + 0x6c], edx
push 0x20
lea edx, [esp + 0x48]
mov dword [esp + 0x58], eax
mov ebp, eax
mov dword [esp + 0x48], eax
mov eax, dword [esi + 0x464]
push edx
or ebx, 0xffffffff
push eax
mov dword [esp + 0x68], ebx
call dword [sym.imp.KERNEL32.dll_WriteFile]
test eax, eax
je 0x2255686
cmp dword [esp + 0x30], ebx
jne 0x2255693
mov dword [esp + 0x10], 5
jmp 0x2255df4
mov eax, dword [esi + 0x464]
push 1
push 0
push 0
push eax
call dword [sym.imp.KERNEL32.dll_SetFilePointer]
mov ebx, eax
cmp ebx, 0xffffffff
jne 0x22556b9
call dword [sym.imp.KERNEL32.dll_GetLastError]
test eax, eax
je 0x22556b9
or ebx, ebx
mov ecx, dword [esi + 0x464]
push 0
mov dword [esp + 0x44], ebx
mov eax, dword [edi + 0xa8]
mov ebx, dword [esp + 0x24]
lea edx, [esp + 0x34]
push edx
push ebp
add eax, ebx
push eax
push ecx
mov dword [esp + 0x44], 0
call dword [sym.imp.KERNEL32.dll_WriteFile]
test eax, eax
je 0x22556f2
cmp dword [esp + 0x30], 0xffffffff
jne 0x22556ff
mov dword [esp + 0x10], 5
jmp 0x2255df4
mov eax, dword [esi + 0x464]
push 1
push 0
push 0
push eax
call dword [sym.imp.KERNEL32.dll_SetFilePointer]
mov ebx, eax
cmp ebx, 0xffffffff
jne 0x2255725
call dword [sym.imp.KERNEL32.dll_GetLastError]
test eax, eax
je 0x2255725
or ebx, ebx
mov ecx, dword [esp + 0x84]
mov eax, dword [ecx + 0x18]
mov edx, dword [esp + 0x2c]
mov ecx, dword [ecx + 0xc]
push ecx
mov ecx, dword [esp + 0x24]
add eax, edx
mov dword [esp + 0x54], ebx
mov edx, dword [eax + 0xc]
mov eax, dword [eax + 4]
push edx
mov edx, dword [esp + 0x3c]
push eax
push ecx
push edi
push edx
call fcn.022209f0
add esp, 0x18
test eax, eax
mov dword [esp + 0x18], eax
jne 0x2255dec
mov edi, dword [edi + 0xa8]
mov eax, dword [esp + 0x20]
mov ebx, dword [sym.imp.KERNEL32.dll_WriteFile]
push 0
lea ecx, [esp + 0x34]
push ecx
add edi, eax
mov eax, dword [esi + 0x464]
push ebp
push edi
push eax
mov dword [esp + 0x44], 0
call ebx
test eax, eax
je 0x225579b
cmp dword [esp + 0x30], 0xffffffff
jne 0x22557a8
mov dword [esp + 0x10], 5
jmp 0x2255df4
mov eax, dword [esi + 0x464]
mov ebp, dword [sym.imp.KERNEL32.dll_SetFilePointer]
push 1
push 0
push 0
push eax
call ebp
mov edi, eax
cmp edi, 0xffffffff
jne 0x22557d0
call dword [sym.imp.KERNEL32.dll_GetLastError]
test eax, eax
je 0x22557d0
or edi, edi
mov edx, dword [esp + 0x1c]
mov eax, dword [esi + 0x464]
push 0
push 0
push edx
push eax
call ebp
cmp eax, 0xffffffff
jne 0x22557ed
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov eax, dword [esi + 0x464]
push 0
lea ecx, [esp + 0x34]
push ecx
push 0x20
lea edx, [esp + 0x48]
push edx
push eax
mov dword [esp + 0x44], 0
call ebx
test eax, eax
je 0x2255817
cmp dword [esp + 0x30], 0xffffffff
jne 0x2255824
mov dword [esp + 0x10], 5
jmp 0x2255df4
mov ecx, dword [esp + 0x60]
mov eax, dword [esi + 0x464]
push 0
push 0
push ecx
push eax
call ebp
cmp eax, 0xffffffff
jne 0x2255841
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov eax, dword [esi + 0x464]
push 0x20
lea edx, [esp + 0x60]
push edx
push eax
call fcn.02216dc0
add esp, 0xc
cmp eax, 0xffffffff
jne 0x2255869
mov dword [esp + 0x10], 5
jmp 0x2255df4
mov ecx, dword [esi + 0x464]
push 0
push edi
push ecx
call fcn.02209fc0
add esp, 0xc
jmp 0x2255dec
mov edx, dword [edi + 0xa8]
mov edi, dword [edx + ebp]
mov edx, dword [esp + 0x24]
lea eax, [esp + 0x28]
push eax
lea ecx, [esp + 0x18]
push ecx
add ebx, 0x2d4
push edi
push ebx
push edx
mov dword [esp + 0x44], ebx
call fcn.02230970
add esp, 0x14
test eax, eax
mov dword [esp + 0x18], eax
jne 0x2255dec
mov ecx, dword [esp + 0x48]
mov eax, dword [esp + 0x14]
or ecx, 1
xor ebp, ebp
cmp eax, ebp
mov dword [esp + 0x54], edi
mov dword [esp + 0x48], ecx
je 0x22558d8
mov ebp, dword [esp + 0x28]
add ebp, 4
mov eax, dword [esp + 0x64]
mov ebx, dword [sym.imp.KERNEL32.dll_SetFilePointer]
push 1
push 0
lea ecx, [eax + ebp + 0x20]
mov eax, dword [esi + 0x464]
push 0
push eax
mov dword [esp + 0x4c], ebp
mov dword [esp + 0x74], ecx
call ebx
mov edi, eax
cmp edi, 0xffffffff
jne 0x2255912
call dword [sym.imp.KERNEL32.dll_GetLastError]
test eax, eax
mov dword [esp + 0x1c], edi
jne 0x2255916
mov dword [esp + 0x1c], edi
mov eax, dword [esi + 0x464]
push 0
lea edx, [esp + 0x1c]
push edx
push 0x20
lea ecx, [esp + 0x48]
push ecx
push eax
mov dword [esp + 0x2c], 0
call dword [sym.imp.KERNEL32.dll_WriteFile]
test eax, eax
jne 0x2255942
or eax, 0xffffffff
jmp 0x2255946
mov eax, dword [esp + 0x18]
cmp eax, 0xffffffff
mov dword [esp + 0x18], eax
jne 0x225595c
mov dword [esp + 0x10], 5
jmp 0x2255df4
mov eax, dword [esi + 0x464]
push 1
push 0
push 0
push eax
call ebx
mov edi, eax
cmp edi, 0xffffffff
jne 0x225597e
call dword [sym.imp.KERNEL32.dll_GetLastError]
test eax, eax
je 0x225597e
or edi, edi
mov ecx, dword [esp + 0x14]
test ecx, ecx
mov dword [esp + 0x40], edi
je 0x22559b1
mov eax, dword [esi + 0x464]
push 0
lea edx, [esp + 0x1c]
push edx
push ebp
push ecx
push eax
mov dword [esp + 0x2c], 0
call dword [sym.imp.KERNEL32.dll_WriteFile]
test eax, eax
jne 0x22559b1
or eax, 0xffffffff
jmp 0x22559b5
mov eax, dword [esp + 0x18]
cmp eax, 0xffffffff
jne 0x22559c7
mov dword [esp + 0x10], 5
jmp 0x2255df4
mov eax, dword [esp + 0x84]
mov ecx, dword [eax + 0x18]
mov edx, dword [esp + 0x2c]
lea eax, [edx + ecx]
mov edx, dword [eax + 0xc]
mov eax, dword [eax + 4]
lea ecx, [esp + 0x28]
push ecx
push edx
mov edx, dword [esp + 0x38]
push eax
mov eax, dword [esp + 0x30]
lea ecx, [esp + 0x20]
push ecx
push edx
push eax
call fcn.02220e90
add esp, 0x18
test eax, eax
mov dword [esp + 0x18], eax
jne 0x2255dec
mov eax, dword [esp + 0x28]
mov ecx, dword [esp + 0x64]
mov ebp, dword [sym.imp.KERNEL32.dll_SetFilePointer]
push 1
push 0
add ecx, eax
mov ebx, eax
mov dword [esp + 0x54], eax
mov eax, dword [esi + 0x464]
push 0
push eax
mov dword [esp + 0x74], ecx
call ebp
mov edi, eax
cmp edi, 0xffffffff
jne 0x2255a44
call dword [sym.imp.KERNEL32.dll_GetLastError]
test eax, eax
je 0x2255a44
or edi, edi
mov ecx, dword [esp + 0x48]
mov edx, dword [esi + 0x464]
or ecx, 1
mov dword [esp + 0x48], ecx
mov ecx, dword [esp + 0x14]
push ebx
push ecx
push edx
mov dword [esp + 0x5c], edi
call fcn.02216dc0
add esp, 0xc
cmp eax, 0xffffffff
jne 0x2255a7a
mov dword [esp + 0x10], 5
jmp 0x2255df4
mov eax, dword [esi + 0x464]
push eax
call fcn.02220940
mov ecx, dword [esp + 0x20]
add esp, 4
push 0
push 0
mov edi, eax
mov eax, dword [esi + 0x464]
push ecx
push eax
call ebp
cmp eax, 0xffffffff
jne 0x2255aa8
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov eax, dword [esi + 0x464]
push 0x20
lea edx, [esp + 0x40]
push edx
push eax
call fcn.02216dc0
add esp, 0xc
cmp eax, 0xffffffff
jne 0x2255ad0
mov dword [esp + 0x10], 5
jmp 0x2255df4
mov ecx, dword [esp + 0x60]
mov edx, dword [esi + 0x464]
push 0
push ecx
push edx
call fcn.02209fc0
mov ecx, dword [esi + 0x464]
push 0x20
lea eax, [esp + 0x6c]
push eax
push ecx
call fcn.02216dc0
add esp, 0x18
jmp 0x2255dba
mov eax, dword [edi + 0xa8]
mov edi, dword [eax + ebp]
mov edx, dword [esp + 0x24]
lea ecx, [esp + 0x14]
push ecx
add ebx, 0x2d4
push edi
push ebx
push edx
mov dword [esp + 0x40], ebx
call fcn.02230840
add esp, 0x10
test eax, eax
mov dword [esp + 0x18], eax
jne 0x2255dec
mov edx, dword [esp + 0x48]
mov eax, dword [esp + 0x14]
or edx, 1
xor ebp, ebp
cmp eax, ebp
mov dword [esp + 0x54], edi
mov dword [esp + 0x48], edx
je 0x2255b57
push eax
call fcn.0226b228
add esp, 4
lea ebp, [eax + eax + 2]
mov eax, dword [esp + 0x64]
mov ebx, dword [sym.imp.KERNEL32.dll_SetFilePointer]
push 1
push 0
lea ecx, [eax + ebp + 0x20]
mov eax, dword [esi + 0x464]
push 0
push eax
mov dword [esp + 0x4c], ebp
mov dword [esp + 0x74], ecx
call ebx
mov edi, eax
cmp edi, 0xffffffff
jne 0x2255b91
call dword [sym.imp.KERNEL32.dll_GetLastError]
test eax, eax
mov dword [esp + 0x1c], edi
jne 0x2255b95
mov dword [esp + 0x1c], edi
mov eax, dword [esi + 0x464]
push 0
lea edx, [esp + 0x1c]
push edx
push 0x20
lea ecx, [esp + 0x48]
push ecx
push eax
mov dword [esp + 0x2c], 0
call dword [sym.imp.KERNEL32.dll_WriteFile]
test eax, eax
jne 0x2255bc1
or eax, 0xffffffff
jmp 0x2255bc5
mov eax, dword [esp + 0x18]
cmp eax, 0xffffffff
mov dword [esp + 0x18], eax
jne 0x2255bdb
mov dword [esp + 0x10], 5
jmp 0x2255df4
mov eax, dword [esi + 0x464]
push 1
push 0
push 0
push eax
call ebx
mov edi, eax
cmp edi, 0xffffffff
jne 0x2255bfd
call dword [sym.imp.KERNEL32.dll_GetLastError]
test eax, eax
je 0x2255bfd
or edi, edi
mov ecx, dword [esp + 0x14]
test ecx, ecx
mov dword [esp + 0x40], edi
je 0x2255c30
mov eax, dword [esi + 0x464]
push 0
lea edx, [esp + 0x1c]
push edx
push ebp
push ecx
push eax
mov dword [esp + 0x2c], 0
call dword [sym.imp.KERNEL32.dll_WriteFile]
test eax, eax
jne 0x2255c30
or eax, 0xffffffff
jmp 0x2255c34
mov eax, dword [esp + 0x18]
cmp eax, 0xffffffff
jne 0x2255c46
mov dword [esp + 0x10], 5
jmp 0x2255df4
mov eax, dword [esp + 0x84]
mov ecx, dword [eax + 0x18]
mov edx, dword [esp + 0x2c]
lea eax, [edx + ecx]
mov ecx, dword [eax + 0xc]
mov edx, dword [eax + 4]
push ecx
mov ecx, dword [esp + 0x34]
push edx
mov edx, dword [esp + 0x2c]
lea eax, [esp + 0x1c]
push eax
push ecx
push edx
call fcn.02220ef0
add esp, 0x14
test eax, eax
mov dword [esp + 0x18], eax
jne 0x2255dec
mov eax, dword [esp + 0x14]
push eax
call fcn.0226b228
mov ebp, dword [sym.imp.KERNEL32.dll_SetFilePointer]
add esp, 4
lea edi, [eax + eax + 2]
mov eax, dword [esp + 0x64]
push 1
add eax, edi
push 0
mov dword [esp + 0x6c], eax
mov eax, dword [esi + 0x464]
push 0
push eax
mov dword [esp + 0x5c], edi
call ebp
mov ebx, eax
cmp ebx, 0xffffffff
jne 0x2255cc9
call dword [sym.imp.KERNEL32.dll_GetLastError]
test eax, eax
je 0x2255cc9
or ebx, ebx
mov eax, dword [esp + 0x48]
mov edx, dword [esp + 0x14]
push 0
lea ecx, [esp + 0x34]
push ecx
or eax, 1
push edi
mov dword [esp + 0x54], eax
mov eax, dword [esi + 0x464]
push edx
mov dword [esp + 0x60], ebx
mov ebx, dword [sym.imp.KERNEL32.dll_WriteFile]
push eax
mov dword [esp + 0x44], 0
call ebx
test eax, eax
je 0x2255d07
cmp dword [esp + 0x30], 0xffffffff
jne 0x2255d14
mov dword [esp + 0x10], 5
jmp 0x2255df4
mov eax, dword [esi + 0x464]
push 1
push 0
push 0
push eax
call ebp
mov edi, eax
cmp edi, 0xffffffff
jne 0x2255d36
call dword [sym.imp.KERNEL32.dll_GetLastError]
test eax, eax
je 0x2255d36
or edi, edi
mov ecx, dword [esp + 0x1c]
mov eax, dword [esi + 0x464]
push 0
push 0
push ecx
push eax
call ebp
cmp eax, 0xffffffff
jne 0x2255d53
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov eax, dword [esi + 0x464]
push 0
lea edx, [esp + 0x34]
push edx
push 0x20
lea ecx, [esp + 0x48]
push ecx
push eax
mov dword [esp + 0x44], 0
call ebx
test eax, eax
je 0x2255d7d
cmp dword [esp + 0x30], 0xffffffff
jne 0x2255d87
mov dword [esp + 0x10], 5
jmp 0x2255df4
mov edx, dword [esp + 0x60]
mov eax, dword [esi + 0x464]
push 0
push 0
push edx
push eax
call ebp
cmp eax, 0xffffffff
jne 0x2255da4
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov ecx, dword [esi + 0x464]
push 0x20
lea eax, [esp + 0x60]
push eax
push ecx
call fcn.02216dc0
add esp, 0xc
cmp eax, 0xffffffff
jne 0x2255dc9
mov dword [esp + 0x10], 5
jmp 0x2255df4
mov edx, dword [esi + 0x464]
push 0
push edi
push edx
call fcn.02209fc0
mov eax, dword [esp + 0x20]
add esp, 0xc
test eax, eax
je 0x2255dec
push eax
call fcn.0226affd
add esp, 4
mov eax, dword [esp + 0x10]
test eax, eax
je 0x2255e02
push 5
call fcn.022015d0
add esp, 4
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0x38]
mov ecx, dword [esp + 0x18]
mov ebp, dword [esp + 0x20]
inc eax
test ecx, ecx
mov dword [esp + 0x38], eax
je 0x2255585
jmp 0x2255e25
mov eax, dword [esp + 0x18]
test eax, eax
je 0x2255e2f
or dword [esi + 0x468], 0x100
push ebp
call fcn.0226affd
mov eax, dword [esp + 0x1c]
add esp, 4
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x6c
ret