Function at 0x43c420
Capabilities:
Generate random numbers using a mersenne twister

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x4c
mov eax, dword [0x4aa034]
push ebx
xor ebx, ebx
push esi
mov esi, ecx
push edi
mov dword [esp + 0x38], ebx
mov dword [esp + 0x3c], eax
mov dword [0x4aa034], ebx
mov dword [esp + 0x1c], 1
mov dword [esp + 0x2c], 0xffffffff
mov byte [esp + 0xe], 0xa
mov byte [0x4aa03c], bl
mov byte [0x4aa033], bl
mov byte [0x4aa032], bl
mov dword [0x4aa038], ebx
mov byte [esp + 0x13], bl
mov byte [esp + 0x10], bl
mov byte [esp + 0x11], bl
mov byte [esp + 0x14], bl
mov byte [esp + 0xf], bl
mov byte [esp + 0x12], bl
cmp byte [esi], bl
je 0x43c610
movsx ecx, byte [esi]
push ecx
call fcn.00487bc5
add eax, 0xffffffbd
add esp, 4
cmp eax, 0x19
ja case.0x43c4af.69
movzx edx, byte [eax + 0x43cfb8]
jmp dword [edx*4 + 0x43cf90]
movzx edi, byte [esi + 1]
test edi, 0xffffff80
jne 0x43c4d4
push 2
push edi
call fcn.004868be
add esp, 8
cmp eax, ebx
je 0x43c4d4
and edi, 0xffffffdf
mov eax, edi
cmp al, 0x4c
jne 0x43c4e7
inc esi
mov byte [0x4aa03c], 2
jmp case.0x43c4af.69
mov byte [0x4aa03c], 1
jmp case.0x43c4af.69
cmp byte [esi + 1], 0
je case.0x43c4af.69
mov al, byte [esi + 1]
inc esi
test al, al
je case.0x43c4af.69
mov byte [esp + 0xe], al
jmp case.0x43c4af.69
mov al, byte [esi + 1]
inc esi
cmp al, 0x20
je case.0x43c4af.70
cmp al, 9
je case.0x43c4af.70
mov edi, 0x49b100
mov eax, esi
call fcn.00409490
mov edi, eax
cmp edi, ebx
jne 0x43c541
mov eax, esi
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x43c535
sub eax, edx
lea edi, [esi + eax]
push ebx
mov eax, edi
sub eax, esi
push eax
push esi
mov ecx, 0x4ad290
call fcn.0041f1f0
mov ecx, eax
mov dword [0x4aa034], ecx
cmp ecx, ebx
je 0x43cedc
cmp byte [ecx + 0x3d], 0
jne 0x43cedc
mov eax, dword [ecx + 0x10]
cmp eax, 2
jl 0x43cedc
cmp eax, 3
jg 0x43cedc
mov eax, dword [ecx + 0xc]
cmp word [eax + 4], 0
jne 0x43cedc
cmp word [eax + 0x14], 0
jne 0x43cedc
lea esi, [edi - 1]
xor ebx, ebx
jmp case.0x43c4af.69
mov byte [0x4aa033], 1
jmp case.0x43c4af.69
lea ecx, [esi + 1]
push ecx
call fcn.00486906
add esp, 4
cmp eax, 1
jge 0x43c5c0
mov eax, 1
dec eax
mov dword [0x4aa038], eax
jmp case.0x43c4af.69
push 6
push str.Random
push esi
call fcn.00485e00
add esp, 0xc
test eax, eax
jne 0x43c5e6
mov byte [esp + 0xf], 1
add esi, 5
jmp case.0x43c4af.69
mov byte [0x4aa032], 1
jmp case.0x43c4af.69
mov byte [esp + 0x12], 1
mov dword [esp + 0x2c], ebx
jmp case.0x43c4af.69
mov byte [esp + 0x13], 1
jmp case.0x43c4af.69
mov byte [esp + 0x14], 1
inc esi
cmp byte [esi], 0
jne 0x43c490
mov edx, dword [ebp + 0xc]
mov cl, byte [edx]
test cl, cl
je 0x43cedc
mov ebx, dword [0x4ab178]
mov al, byte [ebx + 0x17]
mov dword [esp + 0x18], ebx
test al, al
jne 0x43c634
mov eax, dword [ebx + 0xc]
mov al, byte [eax + 0x17]
cmp al, 2
ja 0x43cedc
mov edi, 1
mov eax, edx
cmp cl, byte [esp + 0xe]
jne 0x43c64a
inc edi
mov cl, byte [eax + 1]
inc eax
test cl, cl
jne 0x43c643
mov esi, eax
mov ecx, edx
sub esi, ecx
cmp byte [esp + 0x13], 0
mov dword [esp + 0x28], esi
jne 0x43c673
cmp eax, ecx
jbe 0x43c673
mov cl, byte [eax - 1]
cmp cl, byte [esp + 0xe]
jne 0x43c673
dec edi
jmp 0x43c699
cmp byte [esp + 0xe], 0xa
jne 0x43c69e
push 0xa
push edx
call fcn.00486371
add esp, 8
test eax, eax
je 0x43c69e
cmp eax, dword [ebp + 0xc]
jbe 0x43c69e
cmp byte [eax - 1], 0xd
jne 0x43c69e
mov byte [esp + 0x11], 1
mov byte [esp + 0x10], 1
cmp edi, 1
jne 0x43c6ba
mov eax, dword [ebp + 0xc]
push edi
push 0
push esi
push eax
push ebx
call fcn.00475240
mov dword [esp + 0x1c], eax
jmp 0x43cedc
cmp dword [0x4aa034], 0
jne 0x43c6ca
cmp byte [esp + 0x11], 0
je 0x43c733
lea ecx, [esi + 3]
push ecx
call fcn.00485539
mov ebx, eax
add esp, 4
mov dword [esp + 0x38], ebx
test ebx, ebx
jne 0x43c6fc
mov ecx, dword [ebp + 8]
push 0x499869
push eax
push str.Out_of_memory.
call fcn.0042d690
mov dword [esp + 0x1c], eax
jmp 0x43cedc
mov eax, dword [ebp + 0xc]
lea edx, [esi + 1]
push edx
push eax
push ebx
call fcn.0048dc80
add esp, 0xc
cmp byte [esp + 0x11], 0
mov dword [ebp + 0xc], ebx
je 0x43c733
mov cx, word [0x49e9e8]
mov word [esi + ebx], cx
mov dl, byte [0x49e9ea]
mov byte [esi + ebx + 2], dl
add esi, 2
mov dword [esp + 0x28], esi
xor eax, eax
cmp byte [esp + 0xf], al
setne al
inc edi
inc eax
add eax, eax
add eax, eax
imul edi, eax
push edi
mov dword [esp + 0x24], eax
call fcn.00485539
mov ebx, eax
add esp, 4
mov dword [esp + 0x34], ebx
test ebx, ebx
jne 0x43c778
mov ecx, dword [ebp + 8]
push 0x499869
push eax
push str.Out_of_memory.
call fcn.0042d690
mov dword [esp + 0x1c], eax
jmp 0x43cedc
mov esi, dword [ebp + 0xc]
mov dword [ebx], esi
cmp byte [esi], 0
mov edi, ebx
mov dword [esp + 0x1c], 0
mov edx, 1
je 0x43c80b
mov al, byte [esi]
cmp al, byte [esp + 0xe]
jne 0x43c804
add dword [esp + 0x1c], edx
cmp byte [esp + 0xf], 0
mov byte [esi], 0
je 0x43c7fb
sub dword [0x4a73c4], edx
jne 0x43c7bd
call fcn.00412890
mov edx, 1
mov ecx, dword [0x4aa170]
mov eax, dword [ecx]
add ecx, 4
mov dword [0x4aa170], ecx
mov ecx, eax
shr ecx, 0xb
xor eax, ecx
mov ecx, eax
and ecx, 0xff3a58ad
shl ecx, 7
xor eax, ecx
mov ecx, eax
and ecx, 0xffffdf8c
shl ecx, 0xf
xor eax, ecx
mov ecx, eax
shr ecx, 0x12
xor ecx, eax
shr ecx, 1
mov dword [edi + 4], ecx
add edi, dword [esp + 0x20]
lea eax, [esi + 1]
mov dword [edi], eax
add esi, edx
cmp byte [esi], 0
jne 0x43c795
cmp byte [esp + 0x10], 0
jne 0x43c868
add dword [esp + 0x1c], edx
cmp byte [esp + 0xf], 0
je 0x43c868
sub dword [0x4a73c4], edx
jne 0x43c82a
call fcn.00412890
mov ecx, dword [0x4aa170]
mov eax, dword [ecx]
add ecx, 4
mov dword [0x4aa170], ecx
mov ecx, eax
shr ecx, 0xb
xor eax, ecx
mov edx, eax
and edx, 0xff3a58ad
shl edx, 7
xor eax, edx
mov ecx, eax
and ecx, 0xffffdf8c
shl ecx, 0xf
xor eax, ecx
mov edx, eax
shr edx, 0x12
xor edx, eax
shr edx, 1
mov dword [edi + 4], edx
cmp dword [0x4aa034], 0
je 0x43c882
mov eax, dword [esp + 0x20]
mov ecx, dword [esp + 0x1c]
push 0x43c280
push eax
push ecx
jmp 0x43c8b6
cmp byte [esp + 0xf], 0
je 0x43c89a
mov edx, dword [esp + 0x20]
mov eax, dword [esp + 0x1c]
push 0x43c270
push edx
push eax
jmp 0x43c8b6
cmp byte [esp + 0x14], 0
mov eax, 0x43c200
jne 0x43c8ab
mov eax, 0x43c0d0
mov ecx, dword [esp + 0x20]
mov edx, dword [esp + 0x1c]
push eax
push ecx
push edx
push ebx
call fcn.00486570
mov edi, dword [esp + 0x38]
mov esi, dword [esp + 0x28]
mov al, byte [esi + 0x17]
add esp, 0x10
mov ebx, edi
mov dword [esp + 0x28], ebx
test al, al
jne 0x43c8e6
mov eax, dword [esi + 0xc]
push 1
push 0
push edi
push 0
push eax
call fcn.00475240
jmp 0x43c950
mov byte [esp + 0xf], 1
mov cl, 1
cmp edi, 0xffffffff
jne 0x43c8fc
xor cl, cl
xor ebx, ebx
mov dword [esp + 0x28], ebx
jmp 0x43c901
mov byte [esp + 0xf], 0
lea edi, [ebx + 1]
cmp al, 2
jne 0x43c92f
cmp byte [esp + 0xf], 0
je 0x43c91d
push 0x499869
mov eax, ebx
call fcn.004042e0
jmp 0x43c950
mov esi, 0x4ad8f0
call fcn.00404360
neg eax
sbb eax, eax
neg eax
jmp 0x43c950
cmp edi, dword [0x4a788c]
jbe 0x43c966
cmp edi, dword [esi + 0x10]
jbe 0x43c966
push 0x499869
push 0x4a0b9c
mov ecx, 0x4ad290
call fcn.0042d940
cmp eax, 1
je 0x43cb6b
mov dword [esp + 0x1c], 0
jmp 0x43cedc
cmp edi, 2
jae 0x43c984
xor edx, edx
test cl, cl
setne dl
xor al, al
mov ecx, esi
add edx, 3
push edx
call fcn.004757e0
jmp 0x43cb6f
mov al, byte [esi + 0x15]
test al, 2
je 0x43c99a
and al, 0x3d
mov byte [esi + 0x15], al
mov eax, dword [esi]
mov ecx, dword [eax]
mov edx, dword [ecx + 8]
push eax
call edx
mov edx, dword [esi + 0x10]
and byte [esi + 0x15], 0x82
mov dword [esp + 0x30], edx
cmp edi, edx
jbe 0x43c9d4
mov cl, byte [esi + 0x14]
cmp cl, 1
jbe 0x43ca07
cmp cl, 2
je 0x43ca3f
mov esi, dword [esp + 0x3c]
mov eax, dword [esp + 0x3c]
mov ecx, dword [esp + 0x18]
and byte [ecx + 0x15], 0x7f
mov dword [ecx + 0x10], esi
mov esi, dword [esp + 0x18]
mov dword [ecx + 8], eax
cmp byte [esp + 0xf], 0
je 0x43cb60
mov eax, dword [esi + 8]
cmp eax, 0x499869
je 0x43c9f8
push ebx
push 0x499869
push eax
call fcn.00485f60
add esp, 0xc
mov eax, dword [esi + 8]
mov byte [ebx + eax], 0
mov dword [esi + 0xc], ebx
jmp 0x43cb6f
cmp edi, 0x40
ja 0x43ca3f
cmp edi, 4
ja 0x43ca18
mov esi, 4
jmp 0x43ca26
mov eax, 8
cmp eax, edi
sbb esi, esi
and esi, 0x38
add esi, eax
mov eax, esi
call fcn.0046f950
test eax, eax
je 0x43c959
mov ecx, dword [esp + 0x18]
mov byte [ecx + 0x14], 1
jmp 0x43c9c6
cmp edi, 0x10
jae 0x43ca4e
mov esi, 0x10
jmp 0x43cad6
cmp edi, 0x104
jae 0x43ca60
mov esi, 0x104
jmp 0x43cad6
cmp edi, 0x28000
jae 0x43caa4
mov dword [esp + 0x30], edi
fild dword [esp + 0x30]
test edi, edi
jns 0x43ca7a
fadd qword [0x4a1bf0]
fmul qword [0x4a1bf8]
fnstcw word [esp + 0x14]
movzx eax, word [esp + 0x14]
or eax, 0xc00
mov dword [esp + 0x30], eax
fldcw word [esp + 0x30]
fistp qword [esp + 0x50]
mov esi, dword [esp + 0x50]
fldcw word [esp + 0x14]
jmp 0x43cad6
cmp edi, 0x190000
jae 0x43cab4
lea esi, [edi + 0x4000]
jmp 0x43cad6
cmp edi, 0x640000
jae 0x43cad0
mov eax, 0x51eb851f
mul edi
mov esi, edx
mov edx, dword [esp + 0x30]
shr esi, 5
add esi, edi
jmp 0x43cad6
lea esi, [edi + 0x10000]
mov eax, dword [0x4a788c]
cmp esi, eax
jbe 0x43cae1
mov esi, eax
cmp cl, 2
jne 0x43cb20
test edx, edx
je 0x43cb20
mov ecx, dword [esp + 0x18]
mov edx, dword [ecx + 8]
push edx
mov bl, 1
call fcn.00485398
add esp, 4
xor edi, edi
cmp esi, edi
jl 0x43cb24
push esi
call fcn.00485539
add esp, 4
cmp eax, edi
je 0x43cb24
mov ecx, dword [esp + 0x18]
mov ebx, dword [esp + 0x28]
mov byte [ecx + 0x14], 2
jmp 0x43c9c6
xor bl, bl
jmp 0x43cafc
mov eax, dword [esp + 0x18]
test bl, bl
je 0x43cb48
push 0x499869
mov dword [eax + 0x10], edi
mov dword [eax + 8], 0x4acb37
mov dword [eax + 0xc], edi
push str.Out_of_memory.
jmp 0x43c946
mov edx, dword [eax + 8]
push 0x499869
mov byte [edx], 0
mov dword [eax + 0xc], edi
push str.Out_of_memory.
jmp 0x43c946
mov ecx, dword [esi + 8]
mov byte [ecx], 0
mov dword [esi + 0xc], ebx
jmp 0x43cb6f
mov esi, dword [esp + 0x18]
mov edx, dword [esp + 0x1c]
mov edi, dword [esp + 0x34]
xor ebx, ebx
dec edx
mov dword [esp + 0x30], edx
mov dword [esp + 0x28], ebx
mov dword [esp + 0x24], edi
cmp byte [esi + 0x17], bl
jne 0x43cb94
mov eax, dword [esp + 0x18]
mov esi, dword [eax + 0xc]
jmp 0x43cb98
mov esi, dword [esp + 0x18]
test byte [esi + 0x15], 8
je 0x43cba5
mov eax, esi
call fcn.00401150
mov al, byte [esi + 0x17]
cmp al, 1
jne 0x43cbbe
test byte [esi + 0x15], 4
je 0x43cbb9
mov eax, esi
call fcn.0042dec0
mov esi, dword [esi + 8]
jmp 0x43cc12
cmp al, 2
jne 0x43cc0d
mov eax, dword [0x4ad8fc]
test eax, eax
jne 0x43cc09
mov esi, dword [sym.imp.USER32.dll_IsClipboardFormatAvailable]
push 1
call esi
test eax, eax
jne 0x43cbf3
push 0xf
call esi
test eax, eax
je 0x43cbea
mov eax, 0x499824
mov esi, eax
jmp 0x43cc12
mov eax, 0x499869
mov esi, eax
jmp 0x43cc12
xor ecx, ecx
call fcn.00404110
cmp eax, 0xffffffff
mov eax, 0x499869
je 0x43cc09
mov eax, dword [0x4ad8f8]
mov esi, eax
jmp 0x43cc12
mov esi, 0x4acb37
mov dword [esp + 0x14], ebx
cmp dword [esp + 0x1c], ebx
jbe 0x43ccfb
cmp byte [esp + 0x12], 0
je 0x43cd61
test ebx, ebx
je 0x43cd61
cmp byte [0x4aa033], 0
je 0x43cd26
cmp dword [0x4aa038], 0
jne 0x43cd26
mov ecx, dword [esp + 0x24]
mov edi, dword [ecx]
mov eax, edi
call fcn.0040cec0
test al, al
je 0x43cc79
push 0x10
push 0
push edi
call fcn.004872bd
mov dword [esp + 0x4c], eax
mov dword [esp + 0x50], edx
fild qword [esp + 0x4c]
add esp, 0xc
jmp 0x43cc82
push edi
call fcn.004873bf
add esp, 4
mov eax, ebx
fstp qword [esp + 0x50]
call fcn.0040cec0
test al, al
je 0x43ccac
push 0x10
push 0
push ebx
call fcn.004872bd
mov dword [esp + 0x54], eax
mov dword [esp + 0x58], edx
fild qword [esp + 0x54]
add esp, 0xc
jmp 0x43ccb5
push ebx
call fcn.004873bf
add esp, 4
fld qword [esp + 0x50]
fucompp
fnstsw ax
test ah, 0x44
jp 0x43cd61
mov edi, dword [esp + 0x24]
mov edx, dword [esp + 0x14]
inc dword [esp + 0x28]
cmp edx, dword [esp + 0x30]
jne 0x43cce0
cmp byte [esp + 0x10], 0
jne 0x43cce0
dec esi
mov eax, dword [esp + 0x14]
add edi, dword [esp + 0x20]
inc eax
mov dword [esp + 0x14], eax
mov dword [esp + 0x24], edi
cmp eax, dword [esp + 0x1c]
jb 0x43cc20
mov eax, dword [esp + 0x34]
push eax
call fcn.00485398
mov edi, dword [esp + 0x1c]
add esp, 4
cmp byte [esp + 0x11], 0
je 0x43cdc1
mov byte [esi - 2], 0
cmp byte [edi + 0x17], 0
jne 0x43cd99
mov esi, dword [edi + 0xc]
jmp 0x43cd9b
mov al, byte [0x4aa03c]
push ebx
test al, al
jne 0x43cd3a
mov eax, dword [edi]
push eax
call fcn.00485381
jmp 0x43cd51
cmp al, 2
jne 0x43cd49
mov edx, dword [edi]
push edx
call dword [sym.imp.KERNEL32.dll_lstrcmpiA]
jmp 0x43cd54
mov eax, dword [edi]
push eax
call fcn.004854d1
add esp, 8
test eax, eax
setne al
test al, al
je 0x43ccca
mov edi, dword [esp + 0x24]
mov ecx, dword [edi]
mov al, byte [ecx]
test al, al
je 0x43cd7a
lea ecx, [ecx]
inc ecx
mov byte [esi], al
mov al, byte [ecx]
inc esi
test al, al
jne 0x43cd70
mov eax, dword [esp + 0x14]
cmp eax, dword [esp + 0x30]
jb 0x43cd8b
cmp byte [esp + 0x10], 0
je 0x43cd92
mov cl, byte [esp + 0xe]
mov byte [esi], cl
inc esi
mov ebx, dword [edi]
jmp 0x43cce0
mov esi, edi
cmp byte [esi + 0x17], 1
jne 0x43cdb7
test byte [esi + 0x15], 8
je 0x43cdae
mov eax, esi
call fcn.00401150
add dword [esi + 0xc], 0xfffffffe
lea eax, [esi + 0xc]
jmp 0x43cdc4
mov eax, 0x4adaa8
add dword [eax], 0xfffffffe
jmp 0x43cdc4
mov byte [esi], 0
cmp byte [esp + 0x12], 0
je 0x43cea2
cmp dword [esp + 0x28], 0
je 0x43cea2
cmp byte [edi + 0x17], 0
jne 0x43cde5
mov esi, dword [edi + 0xc]
jmp 0x43cde7
mov esi, edi
test byte [esi + 0x15], 8
je 0x43cdf4
mov eax, esi
call fcn.00401150
mov al, byte [esi + 0x17]
cmp al, 1
jne 0x43ce0d
test byte [esi + 0x15], 4
je 0x43ce08
mov eax, esi
call fcn.0042dec0
mov eax, dword [esi + 8]
jmp 0x43ce5b
cmp al, 2
jne 0x43ce56
mov eax, dword [0x4ad8fc]
test eax, eax
jne 0x43ce5b
mov esi, dword [sym.imp.USER32.dll_IsClipboardFormatAvailable]
push 1
call esi
test eax, eax
jne 0x43ce3e
push 0xf
call esi
test eax, eax
je 0x43ce37
mov eax, 0x499824
jmp 0x43ce5b
mov eax, 0x499869
jmp 0x43ce5b
xor ecx, ecx
call fcn.00404110
cmp eax, 0xffffffff
mov eax, 0x499869
je 0x43ce5b
mov eax, dword [0x4ad8f8]
jmp 0x43ce5b
mov eax, 0x4acb37
lea edx, [eax + 1]
mov edi, edi
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x43ce60
mov esi, dword [esp + 0x18]
sub eax, edx
mov edi, eax
cmp byte [esi + 0x17], cl
jne 0x43ce77
mov esi, dword [esi + 0xc]
cmp byte [esi + 0x17], 1
jne 0x43ce8f
test byte [esi + 0x15], 8
je 0x43ce8a
mov eax, esi
call fcn.00401150
lea eax, [esi + 0xc]
jmp 0x43ce94
mov eax, 0x4adaa8
mov ecx, dword [esp + 0x28]
mov dword [eax], edi
mov edi, dword [esp + 0x18]
mov dword [esp + 0x2c], ecx
cmp byte [edi + 0x17], 0
jne 0x43cead
mov eax, dword [edi + 0xc]
jmp 0x43ceaf
mov eax, edi
cmp byte [eax + 0x17], 2
jne 0x43ced0
cmp dword [0x4ad8fc], 0
je 0x43ced0
push 1
mov ecx, 0x4ad8f0
call fcn.004043d0
mov dword [esp + 0x1c], eax
jmp 0x43cedc
and byte [eax + 0x15], 0x86
mov dword [esp + 0x1c], 1
mov edi, dword [esp + 0x2c]
cmp edi, 0xffffffff
je 0x43cf51
mov esi, dword [0x4aba2c]
cmp byte [esi + 0x17], 0
jne 0x43cef4
mov esi, dword [esi + 0xc]
mov al, byte [esi + 0x15]
test al, 2
je 0x43cf0a
and al, 0x3d
mov byte [esi + 0x15], al
mov eax, dword [esi]
mov edx, dword [eax]
push eax
mov eax, dword [edx + 8]
call eax
mov al, byte [esi + 0x15]
and al, 0x9b
or al, 0x18
mov dword [esi], edi
mov dword [esi + 4], 0
mov byte [esi + 0x15], al
jns 0x43cf2c
mov eax, esi
call fcn.00401150
and byte [esi + 0x15], 0x8f
jmp 0x43cf51
cmp dword [0x4ab38c], 0
je 0x43cf39
test al, 0x10
jne 0x43cf46
cmp dword [0x4ab390], 0
je 0x43cf51
test al, 0x20
je 0x43cf51
test al, 8
je 0x43cf51
mov eax, esi
call fcn.00401150
mov eax, dword [esp + 0x38]
test eax, eax
je 0x43cf79
push eax
call fcn.00485398
mov ecx, dword [esp + 0x40]
mov eax, dword [esp + 0x20]
add esp, 4
mov dword [0x4aa034], ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 8
mov edx, dword [esp + 0x3c]
mov eax, dword [esp + 0x1c]
pop edi
pop esi
mov dword [0x4aa034], edx
pop ebx
mov esp, ebp
pop ebp
ret 8