Function at 0x40ee50
Capabilities:
Encode data using xor

Disassembly:
sub esp, 0x38
mov eax, dword [0x4275cc]
push ebx
push ebp
xor ebp, ebp
or ebx, 0xffffffff
push esi
cmp eax, ebp
push edi
mov dword [esp + 0x28], ebp
mov dword [esp + 0x1c], ebx
mov dword [esp + 0x18], ebx
je 0x40efbf
mov eax, dword [0x4275c0]
mov edi, dword [eax]
add eax, 4
cmp edi, ebp
mov dword [0x4275c0], eax
je 0x40ef39
push 2
push 5
call fcn.004036a0
add esp, 8
cmp eax, ebp
je 0x40eeb1
cmp byte [eax], 0
je 0x40eeb1
push ebp
push edi
call fcn.00403b40
push eax
call fcn.00401e80
add esp, 0xc
mov eax, dword [0x4275bc]
mov esi, dword [0x4275b8]
mov dword [esp + 0x38], eax
mov dword [esp + 0x3c], ebp
fild qword [esp + 0x38]
mov dword [esp + 0x38], esi
mov dword [esp + 0x3c], ebp
fild qword [esp + 0x38]
fmul qword [0x420518]
fdiv st(1)
call fcn.00419a74
mov edx, dword [edi + 0xa]
mov dword [esp + 0x3c], ebp
add esi, edx
mov ebx, eax
mov dword [esp + 0x38], esi
mov dword [0x4275b8], esi
fild qword [esp + 0x38]
fmul qword [0x420518]
fdiv st(1)
call fcn.00419a74
push eax
push ebx
push edi
fstp st(0)
call fcn.0040ea20
add esp, 0xc
cmp eax, 0xffffffff
jne 0x40ef23
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0x38
ret
push eax
call fcn.004012c0
add esp, 4
mov eax, 1
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x38
ret
mov eax, dword [0x42766c]
mov esi, dword [sym.imp.USER32.dll_GetDlgItem]
cmp eax, ebp
mov dword [0x4276a4], ebp
mov dword [0x4275cc], ebp
je 0x40ef78
push 1
push 5
call fcn.004036a0
mov ecx, dword [0x42766c]
add esp, 8
push eax
push 0x417
push ecx
call esi
push eax
call fcn.00407bf0
add esp, 8
cmp dword [0x4275f4], ebp
je 0x40efa4
push 3
push 5
call fcn.004036a0
mov edx, dword [0x4275f4]
add esp, 8
push eax
push 0x3e9
push edx
call esi
push eax
call fcn.00407bf0
add esp, 8
cmp dword [0x427284], ebp
jne 0x40efb6
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0x38
ret
push ebp
call fcn.00401e00
add esp, 4
mov eax, dword [0x4271f8]
mov dword [esp + 0x34], ebp
mov dword [esp + 0x10], ebx
mov byte [eax], 0
mov esi, dword [0x427288]
mov ecx, dword [0x427210]
cmp esi, ebp
je 0x40eff1
lea eax, [ecx + ecx*4 + 5]
xor edx, edx
lea eax, [eax + eax*4]
shl eax, 2
div esi
mov dword [esp + 0x14], eax
inc ecx
cmp ecx, esi
mov dword [0x427210], ecx
jae 0x40fac0
mov eax, dword [0x42720c]
push eax
mov ebp, eax
call fcn.004037b0
xor ebx, ebx
mov dword [0x42720c], eax
mov bx, word [ebp + 2]
push ebp
mov dword [esp + 0x2c], ebx
mov word [ebp + 2], 0
call fcn.0040d560
mov edi, dword [0x4271fc]
mov dword [esp + 0x38], eax
add esp, 8
cmp byte [edi], 0
je 0x40f1de
test bl, 2
je 0x40f106
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov edx, ecx
mov esi, edi
mov edi, dword [0x4271f4]
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
call fcn.004079c0
test eax, eax
je 0x40f0a4
mov esi, dword [0x427210]
mov ecx, dword [0x427288]
cmp esi, ecx
mov eax, ebp
jge 0x40f0a4
mov edi, 0x100
mov edx, dword [eax + 0x16]
push eax
or edx, edi
mov dword [eax + 0x16], edx
call fcn.004037b0
mov ecx, dword [0x427288]
add esp, 4
inc esi
cmp esi, ecx
jl 0x40f088
mov eax, dword [0x427590]
test byte [eax], 0x10
je 0x40f100
mov ecx, dword [0x4271fc]
push 0
push ecx
call fcn.00401040
mov esi, eax
add esp, 8
cmp esi, 0xffffffff
je 0x40f0f8
push 0xfffffffffffffff8
push esi
call fcn.004011a0
lea edx, [esp + 0x48]
push 8
push edx
push esi
call fcn.004010c0
push esi
call fcn.004012c0
add esp, 0x18
cmp word [esp + 0x40], 0x7f7f
jne 0x40f0f8
test byte [esp + 0x42], 2
jne 0x40f1de
mov eax, dword [0x4271f4]
mov byte [eax], 0x30
mov edi, dword [0x4271fc]
mov eax, dword [0x427210]
xor edx, edx
lea eax, [eax + eax*4 + 5]
lea eax, [eax + eax*4]
shl eax, 2
div dword [0x427288]
mov dword [esp + 0x20], eax
mov eax, dword [ebp + 0x16]
test ah, 1
jne 0x40fa69
test dword [0x427640], eax
je 0x40fa69
test ah, 2
jne 0x40f1fc
test al, 0x40
mov ebx, 1
je 0x40f16c
push 0
push edi
call fcn.00401040
add esp, 8
cmp eax, 0xffffffff
je 0x40f166
push eax
call fcn.004012c0
add esp, 4
jmp 0x40f1c5
mov edi, dword [0x4271fc]
mov eax, dword [esp + 0x30]
test eax, eax
je 0x40f1c7
push 0
push edi
mov dword [esp + 0x34], 0
call fcn.00401040
mov esi, eax
add esp, 8
cmp esi, 0xffffffff
je 0x40f1ba
push esi
call fcn.004011c0
mov ecx, dword [ebp + 0xe]
add esp, 4
cmp eax, ecx
jne 0x40f1b1
lea ecx, [esp + 0x38]
lea edx, [esp + 0x2c]
push ecx
push edx
push esi
call fcn.00405210
add esp, 0xc
push esi
call fcn.004012c0
add esp, 4
mov eax, dword [esp + 0x2c]
mov ecx, dword [ebp + 0x12]
cmp eax, ecx
jne 0x40f1c7
xor ebx, ebx
test ebx, ebx
mov dword [0x4276a4], 0
je 0x40f20a
mov eax, dword [0x427594]
test eax, eax
jne 0x40f215
mov eax, dword [0x427210]
mov ecx, dword [0x427288]
inc eax
cmp eax, ecx
mov dword [0x427210], eax
jb 0x40f000
jmp 0x40fac0
push edi
call fcn.00402320
add esp, 4
jmp 0x40fa69
mov word [ebp + 2], 0x1f5
jmp 0x40f99a
push 2
push 5
call fcn.004036a0
add esp, 8
test eax, eax
je 0x40f239
cmp byte [eax], 0
je 0x40f239
mov ecx, dword [0x4271fc]
push ecx
call fcn.00401e80
add esp, 4
mov edx, dword [0x4271fc]
push edx
call fcn.00402320
mov edi, dword [0x4271fc]
or ecx, 0xffffffff
xor eax, eax
push str..__A
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov eax, ecx
mov esi, edi
mov edi, dword [0x4271f8]
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov ecx, dword [0x4271f8]
push ecx
call fcn.00401fe0
mov edx, dword [0x4271f8]
push 0
push edx
call fcn.00401040
add esp, 0x14
cmp eax, 0xffffffff
je 0x40f2d3
push eax
call fcn.004012c0
mov esi, dword [0x4271f8]
or ecx, 0xffffffff
mov edi, esi
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
mov edi, esi
push eax
mov dl, byte [ecx + esi - 1]
or ecx, 0xffffffff
inc dl
repne scasb al, byte es:[edi]
not ecx
dec ecx
mov byte [ecx + esi - 1], dl
mov eax, dword [0x4271f8]
push eax
call fcn.00401040
add esp, 0xc
cmp eax, 0xffffffff
jne 0x40f293
mov eax, dword [ebp + 0x16]
test al, 0x20
je 0x40f306
push 0
push ebp
call fcn.00403b40
mov ecx, dword [0x4275d0]
mov edx, dword [0x4271f8]
push eax
push ecx
push edx
call fcn.0040ed40
add esp, 0x14
test eax, eax
je 0x40fac0
jmp 0x40f8cc
test eax, 0x200000
je 0x40f33b
mov esi, dword [esp + 0x20]
mov eax, dword [esp + 0x14]
sub esi, eax
shr esi, 1
add esi, eax
push esi
push eax
push ebp
call fcn.0040ea20
add esp, 0xc
cmp eax, 0xffffffff
mov dword [esp + 0x1c], eax
je 0x40fac0
mov ebx, esi
mov dword [esp + 0x14], ebx
jmp 0x40f33f
mov ebx, dword [esp + 0x14]
mov eax, dword [0x4271f8]
push eax
call fcn.00401090
mov edi, eax
add esp, 4
cmp edi, 0xffffffff
mov dword [esp + 0x10], edi
jne 0x40f373
mov ecx, dword [0x4271f8]
mov dword [0x4276a4], 0x11
push ecx
call fcn.0040a610
jmp 0x40fa8f
mov al, byte [esp + 0x24]
test al, 1
je 0x40f67f
mov eax, dword [ebp + 0x20]
xor edx, edx
mov dx, word [ebp + 0x1e]
xor esi, esi
mov edi, dword [edx*4 + 0x427550]
add edi, 4
test eax, eax
jle 0x40f3ab
push edi
call fcn.004037b0
add esp, 4
mov edi, eax
mov eax, dword [ebp + 0x20]
inc esi
cmp esi, eax
jl 0x40f398
mov eax, dword [edi + 0x16]
test al, 0x20
je 0x40f3f0
mov eax, dword [esp + 0x10]
push eax
call fcn.004012c0
push 0
push ebp
mov dword [esp + 0x1c], 0xffffffff
call fcn.00403b40
mov ecx, dword [0x4275d0]
mov edx, dword [0x4271f8]
push eax
push ecx
push edx
call fcn.0040ed40
add esp, 0x18
test eax, eax
je 0x40fa92
jmp 0x40f59b
test eax, 0x200000
je 0x40f421
mov esi, dword [esp + 0x20]
sub esi, ebx
shr esi, 1
add esi, ebx
push esi
push ebx
push edi
call fcn.0040ea20
add esp, 0xc
cmp eax, 0xffffffff
mov dword [esp + 0x18], eax
je 0x40fa92
mov ebx, esi
mov dword [esp + 0x14], ebx
jmp 0x40f43a
mov eax, dword [edi + 6]
push eax
call fcn.0040b630
add esp, 4
mov dword [0x4276a4], eax
test eax, eax
jne 0x40fa92
mov edx, dword [0x427264]
xor ecx, ecx
mov cx, word [ebp + 0x1e]
mov eax, dword [ecx*4 + 0x427510]
xor ecx, ecx
cmp edx, ecx
mov esi, dword [eax + 8]
mov ax, word [eax + 2]
mov dword [0x42724c], ecx
mov dword [0x427248], ecx
mov byte [0x427224], 0x39
je 0x40f4dd
cmp ax, cx
je 0x40f4dd
cmp esi, 2
je 0x40f4dd
xor ebx, ebx
mov ecx, 5
test esi, esi
mov dword [0x427248], ecx
jne 0x40f4ab
xor ecx, ecx
mov ebx, 1
mov cl, byte [edx]
xor ecx, 0x6a
inc edx
cmp ecx, 0x1f
mov dword [0x427248], ecx
jle 0x40f4ab
mov ecx, 0x1f
mov dword [0x427248], ecx
xor eax, eax
test ecx, ecx
jle 0x40f4d2
mov esi, edx
sub esi, 0x427228
mov dl, bl
add dl, al
xor dl, byte [esi + eax + 0x427228]
xor dl, 0x6a
mov byte [eax + 0x427228], dl
inc eax
cmp eax, ecx
jl 0x40f4b9
mov ebx, dword [esp + 0x14]
mov byte [ecx + 0x427228], 0
mov eax, dword [esp + 0x18]
cmp eax, 0xffffffff
jne 0x40f4eb
mov eax, dword [0x422040]
lea ecx, [esp + 0x38]
lea edx, [esp + 0x2c]
push ecx
mov ecx, dword [edi + 0xa]
push edx
mov edx, dword [esp + 0x18]
push ecx
push eax
push edx
call fcn.00403210
mov esi, eax
mov eax, dword [0x427634]
add esp, 0x14
test esi, esi
je 0x40f546
cmp eax, 2
je 0x40fa7e
push 0
push edi
call fcn.00403b40
add esp, 8
push eax
push 0
push edi
call fcn.00403b40
add esp, 8
push eax
push esi
call fcn.0040b820
add esp, 0xc
mov dword [0x4276a4], eax
jmp 0x40fa7e
cmp eax, 2
je 0x40fa7e
mov eax, dword [esp + 0x18]
or esi, 0xffffffff
cmp eax, esi
je 0x40f567
push eax
call fcn.004012c0
add esp, 4
mov dword [esp + 0x18], esi
mov eax, dword [esp + 0x10]
push eax
call fcn.004012c0
mov ecx, dword [esp + 0x30]
mov eax, dword [edi + 0xe]
add esp, 4
cmp ecx, eax
mov dword [esp + 0x10], esi
jne 0x40f58e
mov edx, dword [esp + 0x38]
mov eax, dword [edi + 0x12]
cmp edx, eax
je 0x40f59b
call fcn.0040da50
test eax, eax
je 0x40fa7e
mov eax, dword [0x427590]
mov edx, dword [0x427264]
xor ecx, ecx
mov esi, dword [eax + 8]
mov ax, word [eax + 2]
cmp edx, ecx
mov dword [0x42724c], ecx
mov dword [0x427248], ecx
mov byte [0x427224], 0x39
je 0x40f636
cmp ax, cx
je 0x40f636
cmp esi, 2
je 0x40f636
xor ebx, ebx
mov ecx, 5
test esi, esi
mov dword [0x427248], ecx
jne 0x40f604
xor ecx, ecx
mov ebx, 1
mov cl, byte [edx]
xor ecx, 0x6a
inc edx
cmp ecx, 0x1f
mov dword [0x427248], ecx
jle 0x40f604
mov ecx, 0x1f
mov dword [0x427248], ecx
xor eax, eax
test ecx, ecx
jle 0x40f62b
mov esi, edx
sub esi, 0x427228
mov dl, bl
add dl, al
xor dl, byte [esi + eax + 0x427228]
xor dl, 0x6a
mov byte [eax + 0x427228], dl
inc eax
cmp eax, ecx
jl 0x40f612
mov ebx, dword [esp + 0x14]
mov byte [ecx + 0x427228], 0
mov edi, dword [esp + 0x1c]
cmp edi, 0xffffffff
je 0x40f64d
mov esi, dword [0x422040]
mov dword [0x422040], edi
jmp 0x40f651
mov esi, dword [esp + 0x38]
mov eax, dword [esp + 0x20]
mov ecx, dword [0x4271f8]
push eax
push ebx
push ecx
push ebp
call fcn.0040dad0
add esp, 0x10
cmp edi, 0xffffffff
je 0x40f672
mov dword [0x422040], esi
test eax, eax
je 0x40fa7e
jmp 0x40f8cc
test al, 2
je 0x40f742
mov ecx, dword [0x42759c]
xor ebx, ebx
cmp ecx, ebx
je 0x40f8cc
mov eax, dword [0x427598]
cmp eax, ebx
je 0x40f8cc
push eax
push ecx
push edi
call fcn.00401100
add esp, 0xc
cmp eax, ebx
mov dword [0x4276a4], eax
jne 0x40fa92
mov edx, dword [ebp + 6]
push edx
call fcn.0040b630
add esp, 4
cmp eax, ebx
mov dword [0x4276a4], eax
jne 0x40fa92
mov ecx, dword [0x422040]
mov dword [0x42724c], ebx
mov dword [0x427248], ebx
mov byte [0x427224], 0x39
mov eax, dword [ebp + 0xa]
push ebx
push ebx
push eax
push ecx
push edi
call fcn.00403210
mov esi, eax
mov eax, dword [0x427634]
add esp, 0x14
cmp esi, ebx
je 0x40f723
cmp eax, 2
je 0x40fa92
push ebx
push ebp
call fcn.00403b40
add esp, 8
push eax
push ebx
jmp 0x40f851
cmp eax, 2
je 0x40fa92
push edi
call fcn.004012c0
add esp, 4
mov dword [esp + 0x10], 0xffffffff
jmp 0x40f8cc
cmp dword [esp + 0x1c], 0xffffffff
jne 0x40f762
mov edx, dword [ebp + 6]
push edx
call fcn.0040b630
add esp, 4
mov dword [0x4276a4], eax
test eax, eax
jne 0x40faa6
mov edx, dword [0x427264]
xor eax, eax
mov ax, word [ebp + 0x1e]
xor ebx, ebx
cmp edx, ebx
mov eax, dword [eax*4 + 0x427510]
mov edi, dword [eax + 8]
mov ax, word [eax + 2]
mov dword [0x42724c], ebx
mov dword [0x427248], ebx
mov byte [0x427224], 0x39
je 0x40f805
cmp ax, bx
je 0x40f805
cmp edi, 2
je 0x40f805
xor ecx, ecx
mov esi, 5
cmp edi, ebx
mov dword [0x427248], esi
jne 0x40f7d5
xor eax, eax
mov ecx, 1
mov al, byte [edx]
mov esi, eax
xor esi, 0x6a
inc edx
cmp esi, 0x1f
mov dword [0x427248], esi
jle 0x40f7d5
mov esi, 0x1f
mov dword [0x427248], esi
xor eax, eax
cmp esi, ebx
jle 0x40f7fe
mov edi, edx
sub edi, 0x427228
mov bl, byte [edi + eax + 0x427228]
mov dl, cl
add dl, al
xor bl, dl
xor bl, 0x6a
mov byte [eax + 0x427228], bl
inc eax
cmp eax, esi
jl 0x40f7e3
mov byte [esi + 0x427228], 0
mov eax, dword [esp + 0x1c]
cmp eax, 0xffffffff
jne 0x40f813
mov eax, dword [0x422040]
mov edi, dword [esp + 0x10]
lea ecx, [esp + 0x2c]
push ecx
mov ecx, dword [ebp + 0xa]
lea edx, [esp + 0x3c]
push edx
push ecx
push eax
push edi
call fcn.00403210
mov esi, eax
mov eax, dword [0x427634]
add esp, 0x14
test esi, esi
je 0x40f86e
cmp eax, 2
je 0x40fa92
push 0
push ebp
call fcn.00403b40
add esp, 8
push eax
push 0
push ebp
call fcn.00403b40
add esp, 8
push eax
push esi
call fcn.0040b820
add esp, 0xc
mov dword [0x4276a4], eax
jmp 0x40fa92
cmp eax, 2
je 0x40fa92
mov eax, dword [ebp + 0x16]
test al, 8
je 0x40f898
test al, 6
lea eax, [ebp + 0x38]
jne 0x40f888
lea eax, [ebp + 0x24]
lea edx, [eax + 0x10]
lea ecx, [eax + 8]
push edx
push ecx
push eax
push edi
call dword [sym.imp.KERNEL32.dll_SetFileTime]
push edi
call fcn.004012c0
mov edx, dword [esp + 0x3c]
mov eax, dword [ebp + 0xe]
add esp, 4
cmp edx, eax
mov dword [esp + 0x10], 0xffffffff
jne 0x40f8bf
mov eax, dword [esp + 0x2c]
mov ecx, dword [ebp + 0x12]
cmp eax, ecx
je 0x40f8cc
call fcn.0040da50
test eax, eax
je 0x40fa92
cmp dword [ebp + 0x1a], 3
jne 0x40f90a
mov ecx, dword [0x4271fc]
push 0
push ecx
call fcn.00401040
add esp, 8
cmp eax, 0xffffffff
je 0x40f90a
push eax
call fcn.004012c0
mov edx, dword [0x4271fc]
push edx
call fcn.00402a90
mov eax, dword [0x4271fc]
push eax
call fcn.004012d0
add esp, 0xc
jmp 0x40f90e
mov eax, dword [esp + 0x30]
test eax, eax
je 0x40f93a
mov ecx, dword [0x4271f8]
mov edx, dword [0x4271fc]
push ecx
push edx
call fcn.00411380
mov dword [0x42769c], 1
add esp, 8
mov word [ebp + 2], 0x1f4
jmp 0x40f949
mov eax, dword [0x4271f8]
push eax
push ebp
call fcn.0040fb00
add esp, 8
mov ax, word [ebp + 2]
cmp ax, 0x1b
jne 0x40f971
mov ecx, dword [0x4271fc]
mov dword [0x4276a4], 0x16
push ecx
call fcn.0040a610
add esp, 4
jmp 0x40fa7e
test byte [esp + 0x24], 4
je 0x40f99a
cmp ax, 0x1f4
push 0x100
jne 0x40f98c
mov edx, dword [0x4271f8]
push edx
jmp 0x40f992
mov eax, dword [0x4271fc]
push eax
call fcn.00418d90
add esp, 8
mov eax, dword [0x4276a4]
test eax, eax
jne 0x40fa7e
mov ecx, dword [0x4271f8]
mov al, byte [esp + 0x24]
test al, 2
mov byte [ecx], 0
je 0x40f9be
mov word [ebp + 2], 0
mov eax, dword [ebp + 0x1a]
test eax, eax
je 0x40f9ee
mov eax, dword [ebp + 0x16]
test ah, 4
je 0x40f9ee
mov ax, word [ebp + 2]
cmp ax, 0x17
je 0x40f9e9
cmp ax, 0x19
je 0x40f9e9
cmp ax, 0x1f5
je 0x40f9e9
cmp ax, 0x1f4
jne 0x40f9ee
call fcn.0040e5f0
cmp dword [ebp + 0x1a], 3
jne 0x40fa13
mov ax, word [ebp + 2]
cmp ax, 0x17
je 0x40fa04
cmp ax, 0x19
jne 0x40fa13
mov edx, dword [0x4271fc]
push edx
call fcn.004027a0
add esp, 4
mov eax, dword [ebp + 0x16]
test ah, 0x10
je 0x40fa4b
mov eax, dword [0x4275e8]
test eax, eax
je 0x40fa2c
cmp word [ebp + 2], 0x1f5
je 0x40fa42
mov ax, word [ebp + 2]
cmp ax, 0x17
je 0x40fa42
cmp ax, 0x19
je 0x40fa42
cmp ax, 0x1f4
jne 0x40fa4b
push ebp
call fcn.0040cec0
add esp, 4
mov eax, dword [ebp + 0x16]
test ah, 8
je 0x40fa59
mov dword [0x427220], ebp
test byte [ebp + 0x16], 0x10
je 0x40fa69
mov dword [0x427600], 1
mov eax, dword [esp + 0x20]
push eax
call fcn.00401e00
add esp, 4
mov dword [esp + 0x28], 1
mov eax, dword [esp + 0x18]
cmp eax, 0xffffffff
je 0x40fa92
mov ecx, eax
push ecx
call fcn.004012c0
add esp, 4
mov eax, dword [esp + 0x1c]
cmp eax, 0xffffffff
je 0x40faa6
mov edx, eax
push edx
call fcn.004012c0
add esp, 4
mov eax, dword [esp + 0x10]
cmp eax, 0xffffffff
je 0x40fab8
push eax
call fcn.004012c0
add esp, 4
mov eax, dword [esp + 0x28]
test eax, eax
jne 0x40fad3
mov eax, dword [0x4271f8]
cmp byte [eax], 0
je 0x40fad3
push eax
call fcn.004194a0
add esp, 4
mov eax, dword [esp + 0x34]
test eax, eax
je 0x40fae8
lea eax, [esp + 0x34]
push eax
call fcn.00402160
add esp, 4
mov eax, dword [esp + 0x28]
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x38
ret