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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x4c
mov eax, dword [0x4a8b24]
push ebx
xor ebx, ebx
push esi
mov esi, ecx
push edi
mov dword [esp + 0x38], ebx
mov dword [esp + 0x3c], eax
mov dword [0x4a8b24], ebx
mov dword [esp + 0x1c], 1
mov dword [esp + 0x2c], 0xffffffff
mov byte [esp + 0xe], 0xa
mov byte [0x4a8b2c], bl
mov byte [0x4a8b23], bl
mov byte [0x4a8b22], bl
mov dword [0x4a8b28], 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 0x43d3c0
movsx ecx, byte [esi]
push ecx
call fcn.00487905
add eax, 0xffffffbd
add esp, 4
cmp eax, 0x19
ja case.0x43d25f.69
movzx edx, byte [eax + 0x43dd68]
jmp dword [edx*4 + 0x43dd40]
movzx edi, byte [esi + 1]
test edi, 0xffffff80
jne 0x43d284
push 2
push edi
call fcn.004865fe
add esp, 8
cmp eax, ebx
je 0x43d284
and edi, 0xffffffdf
mov eax, edi
cmp al, 0x4c
jne 0x43d297
inc esi
mov byte [0x4a8b2c], 2
jmp case.0x43d25f.69
mov byte [0x4a8b2c], 1
jmp case.0x43d25f.69
cmp byte [esi + 1], 0
je case.0x43d25f.69
mov al, byte [esi + 1]
inc esi
test al, al
je case.0x43d25f.69
mov byte [esp + 0xe], al
jmp case.0x43d25f.69
mov al, byte [esi + 1]
inc esi
cmp al, 0x20
je case.0x43d25f.70
cmp al, 9
je case.0x43d25f.70
mov edi, 0x499ff4
mov eax, esi
call fcn.00409440
mov edi, eax
cmp edi, ebx
jne 0x43d2f1
mov eax, esi
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x43d2e5
sub eax, edx
lea edi, [esi + eax]
push ebx
mov eax, edi
sub eax, esi
push eax
push esi
mov ecx, 0x4abd80
call fcn.0041f120
mov ecx, eax
mov dword [0x4a8b24], ecx
cmp ecx, ebx
je 0x43dc8c
cmp byte [ecx + 0x3d], 0
jne 0x43dc8c
mov eax, dword [ecx + 0x10]
cmp eax, 2
jl 0x43dc8c
cmp eax, 3
jg 0x43dc8c
mov eax, dword [ecx + 0xc]
cmp word [eax + 4], 0
jne 0x43dc8c
cmp word [eax + 0x14], 0
jne 0x43dc8c
lea esi, [edi - 1]
xor ebx, ebx
jmp case.0x43d25f.69
mov byte [0x4a8b23], 1
jmp case.0x43d25f.69
lea ecx, [esi + 1]
push ecx
call fcn.00486646
add esp, 4
cmp eax, 1
jge 0x43d370
mov eax, 1
dec eax
mov dword [0x4a8b28], eax
jmp case.0x43d25f.69
push 6
push 0x499524
push esi
call fcn.00485b40
add esp, 0xc
test eax, eax
jne 0x43d396
mov byte [esp + 0xf], 1
add esi, 5
jmp case.0x43d25f.69
mov byte [0x4a8b22], 1
jmp case.0x43d25f.69
mov byte [esp + 0x12], 1
mov dword [esp + 0x2c], ebx
jmp case.0x43d25f.69
mov byte [esp + 0x13], 1
jmp case.0x43d25f.69
mov byte [esp + 0x14], 1
inc esi
cmp byte [esi], 0
jne 0x43d240
mov edx, dword [ebp + 0xc]
mov cl, byte [edx]
test cl, cl
je 0x43dc8c
mov ebx, dword [0x4a9c68]
mov al, byte [ebx + 0x17]
mov dword [esp + 0x18], ebx
test al, al
jne 0x43d3e4
mov eax, dword [ebx + 0xc]
mov al, byte [eax + 0x17]
cmp al, 2
ja 0x43dc8c
mov edi, 1
mov eax, edx
cmp cl, byte [esp + 0xe]
jne 0x43d3fa
inc edi
mov cl, byte [eax + 1]
inc eax
test cl, cl
jne 0x43d3f3
mov esi, eax
mov ecx, edx
sub esi, ecx
cmp byte [esp + 0x13], 0
mov dword [esp + 0x28], esi
jne 0x43d423
cmp eax, ecx
jbe 0x43d423
mov cl, byte [eax - 1]
cmp cl, byte [esp + 0xe]
jne 0x43d423
dec edi
jmp 0x43d449
cmp byte [esp + 0xe], 0xa
jne 0x43d44e
push 0xa
push edx
call fcn.004860b1
add esp, 8
test eax, eax
je 0x43d44e
cmp eax, dword [ebp + 0xc]
jbe 0x43d44e
cmp byte [eax - 1], 0xd
jne 0x43d44e
mov byte [esp + 0x11], 1
mov byte [esp + 0x10], 1
cmp edi, 1
jne 0x43d46a
mov eax, dword [ebp + 0xc]
push edi
push 0
push esi
push eax
push ebx
call fcn.00474fa0
mov dword [esp + 0x1c], eax
jmp 0x43dc8c
cmp dword [0x4a8b24], 0
jne 0x43d47a
cmp byte [esp + 0x11], 0
je 0x43d4e3
lea ecx, [esi + 3]
push ecx
call fcn.00485279
mov ebx, eax
add esp, 4
mov dword [esp + 0x38], ebx
test ebx, ebx
jne 0x43d4ac
mov ecx, dword [ebp + 8]
push 0x498831
push eax
push 0x499f48
call fcn.0042e5b0
mov dword [esp + 0x1c], eax
jmp 0x43dc8c
mov eax, dword [ebp + 0xc]
lea edx, [esi + 1]
push edx
push eax
push ebx
call fcn.0048da10
add esp, 0xc
cmp byte [esp + 0x11], 0
mov dword [ebp + 0xc], ebx
je 0x43d4e3
mov cx, word [0x49d764]
mov word [esi + ebx], cx
mov dl, byte [0x49d766]
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.00485279
mov ebx, eax
add esp, 4
mov dword [esp + 0x34], ebx
test ebx, ebx
jne 0x43d528
mov ecx, dword [ebp + 8]
push 0x498831
push eax
push 0x499f48
call fcn.0042e5b0
mov dword [esp + 0x1c], eax
jmp 0x43dc8c
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 0x43d5bb
mov al, byte [esi]
cmp al, byte [esp + 0xe]
jne 0x43d5b4
add dword [esp + 0x1c], edx
cmp byte [esp + 0xf], 0
mov byte [esi], 0
je 0x43d5ab
sub dword [0x4a6394], edx
jne 0x43d56d
call fcn.004126c0
mov edx, 1
mov ecx, dword [0x4a8c64]
mov eax, dword [ecx]
add ecx, 4
mov dword [0x4a8c64], 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 0x43d545
cmp byte [esp + 0x10], 0
jne 0x43d618
add dword [esp + 0x1c], edx
cmp byte [esp + 0xf], 0
je 0x43d618
sub dword [0x4a6394], edx
jne 0x43d5da
call fcn.004126c0
mov ecx, dword [0x4a8c64]
mov eax, dword [ecx]
add ecx, 4
mov dword [0x4a8c64], 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 [0x4a8b24], 0
je 0x43d632
mov eax, dword [esp + 0x20]
mov ecx, dword [esp + 0x1c]
push 0x43d030
push eax
push ecx
jmp 0x43d666
cmp byte [esp + 0xf], 0
je 0x43d64a
mov edx, dword [esp + 0x20]
mov eax, dword [esp + 0x1c]
push 0x43d020
push edx
push eax
jmp 0x43d666
cmp byte [esp + 0x14], 0
mov eax, 0x43cfb0
jne 0x43d65b
mov eax, 0x43ce80
mov ecx, dword [esp + 0x20]
mov edx, dword [esp + 0x1c]
push eax
push ecx
push edx
push ebx
call fcn.004862b0
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 0x43d696
mov eax, dword [esi + 0xc]
push 1
push 0
push edi
push 0
push eax
call fcn.00474fa0
jmp 0x43d700
mov byte [esp + 0xf], 1
mov cl, 1
cmp edi, 0xffffffff
jne 0x43d6ac
xor cl, cl
xor ebx, ebx
mov dword [esp + 0x28], ebx
jmp 0x43d6b1
mov byte [esp + 0xf], 0
lea edi, [ebx + 1]
cmp al, 2
jne 0x43d6df
cmp byte [esp + 0xf], 0
je 0x43d6cd
push 0x498831
mov eax, ebx
call fcn.00404330
jmp 0x43d700
mov esi, 0x4ac3e0
call fcn.004043b0
neg eax
sbb eax, eax
neg eax
jmp 0x43d700
cmp edi, dword [0x4a63ac]
jbe 0x43d716
cmp edi, dword [esi + 0x10]
jbe 0x43d716
push 0x498831
push 0x49f8d8
mov ecx, 0x4abd80
call fcn.0042e860
cmp eax, 1
je 0x43d91b
mov dword [esp + 0x1c], 0
jmp 0x43dc8c
cmp edi, 2
jae 0x43d734
xor edx, edx
test cl, cl
setne dl
xor al, al
mov ecx, esi
add edx, 3
push edx
call fcn.00475540
jmp 0x43d91f
mov al, byte [esi + 0x15]
test al, 2
je 0x43d74a
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 0x43d784
mov cl, byte [esi + 0x14]
cmp cl, 1
jbe 0x43d7b7
cmp cl, 2
je 0x43d7ef
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 0x43d910
mov eax, dword [esi + 8]
cmp eax, 0x498831
je 0x43d7a8
push ebx
push 0x498831
push eax
call fcn.00485ca0
add esp, 0xc
mov eax, dword [esi + 8]
mov byte [ebx + eax], 0
mov dword [esi + 0xc], ebx
jmp 0x43d91f
cmp edi, 0x40
ja 0x43d7ef
cmp edi, 4
ja 0x43d7c8
mov esi, 4
jmp 0x43d7d6
mov eax, 8
cmp eax, edi
sbb esi, esi
and esi, 0x38
add esi, eax
mov eax, esi
call fcn.0046f800
test eax, eax
je 0x43d709
mov ecx, dword [esp + 0x18]
mov byte [ecx + 0x14], 1
jmp 0x43d776
cmp edi, 0x10
jae 0x43d7fe
mov esi, 0x10
jmp 0x43d886
cmp edi, 0x104
jae 0x43d810
mov esi, 0x104
jmp 0x43d886
cmp edi, 0x28000
jae 0x43d854
mov dword [esp + 0x30], edi
fild dword [esp + 0x30]
test edi, edi
jns 0x43d82a
fadd qword [0x4a08a8]
fmul qword [0x4a08b0]
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 0x43d886
cmp edi, 0x190000
jae 0x43d864
lea esi, [edi + 0x4000]
jmp 0x43d886
cmp edi, 0x640000
jae 0x43d880
mov eax, 0x51eb851f
mul edi
mov esi, edx
mov edx, dword [esp + 0x30]
shr esi, 5
add esi, edi
jmp 0x43d886
lea esi, [edi + 0x10000]
mov eax, dword [0x4a63ac]
cmp esi, eax
jbe 0x43d891
mov esi, eax
cmp cl, 2
jne 0x43d8d0
test edx, edx
je 0x43d8d0
mov ecx, dword [esp + 0x18]
mov edx, dword [ecx + 8]
push edx
mov bl, 1
call fcn.004850d8
add esp, 4
xor edi, edi
cmp esi, edi
jl 0x43d8d4
push esi
call fcn.00485279
add esp, 4
cmp eax, edi
je 0x43d8d4
mov ecx, dword [esp + 0x18]
mov ebx, dword [esp + 0x28]
mov byte [ecx + 0x14], 2
jmp 0x43d776
xor bl, bl
jmp 0x43d8ac
mov eax, dword [esp + 0x18]
test bl, bl
je 0x43d8f8
push 0x498831
mov dword [eax + 0x10], edi
mov dword [eax + 8], 0x4ab626
mov dword [eax + 0xc], edi
push 0x499f48
jmp 0x43d6f6
mov edx, dword [eax + 8]
push 0x498831
mov byte [edx], 0
mov dword [eax + 0xc], edi
push 0x499f48
jmp 0x43d6f6
mov ecx, dword [esi + 8]
mov byte [ecx], 0
mov dword [esi + 0xc], ebx
jmp 0x43d91f
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 0x43d944
mov eax, dword [esp + 0x18]
mov esi, dword [eax + 0xc]
jmp 0x43d948
mov esi, dword [esp + 0x18]
test byte [esi + 0x15], 8
je 0x43d955
mov eax, esi
call fcn.00401150
mov al, byte [esi + 0x17]
cmp al, 1
jne 0x43d96e
test byte [esi + 0x15], 4
je 0x43d969
mov eax, esi
call fcn.0042ede0
mov esi, dword [esi + 8]
jmp 0x43d9c2
cmp al, 2
jne 0x43d9bd
mov eax, dword [0x4ac3ec]
test eax, eax
jne 0x43d9b9
mov esi, dword [sym.imp.USER32.dll_IsClipboardFormatAvailable]
push 1
call esi
test eax, eax
jne 0x43d9a3
push 0xf
call esi
test eax, eax
je 0x43d99a
mov eax, 0x4987ec
mov esi, eax
jmp 0x43d9c2
mov eax, 0x498831
mov esi, eax
jmp 0x43d9c2
xor ecx, ecx
call fcn.00404160
cmp eax, 0xffffffff
mov eax, 0x498831
je 0x43d9b9
mov eax, dword [0x4ac3e8]
mov esi, eax
jmp 0x43d9c2
mov esi, 0x4ab626
mov dword [esp + 0x14], ebx
cmp dword [esp + 0x1c], ebx
jbe 0x43daab
cmp byte [esp + 0x12], 0
je 0x43db11
test ebx, ebx
je 0x43db11
cmp byte [0x4a8b23], 0
je 0x43dad6
cmp dword [0x4a8b28], 0
jne 0x43dad6
mov ecx, dword [esp + 0x24]
mov edi, dword [ecx]
mov eax, edi
call fcn.0040ceb0
test al, al
je 0x43da29
push 0x10
push 0
push edi
call fcn.00486ebb
mov dword [esp + 0x4c], eax
mov dword [esp + 0x50], edx
fild qword [esp + 0x4c]
add esp, 0xc
jmp 0x43da32
push edi
call fcn.00486fbd
add esp, 4
mov eax, ebx
fstp qword [esp + 0x50]
call fcn.0040ceb0
test al, al
je 0x43da5c
push 0x10
push 0
push ebx
call fcn.00486ebb
mov dword [esp + 0x54], eax
mov dword [esp + 0x58], edx
fild qword [esp + 0x54]
add esp, 0xc
jmp 0x43da65
push ebx
call fcn.00486fbd
add esp, 4
fld qword [esp + 0x50]
fucompp
fnstsw ax
test ah, 0x44
jp 0x43db11
mov edi, dword [esp + 0x24]
mov edx, dword [esp + 0x14]
inc dword [esp + 0x28]
cmp edx, dword [esp + 0x30]
jne 0x43da90
cmp byte [esp + 0x10], 0
jne 0x43da90
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 0x43d9d0
mov eax, dword [esp + 0x34]
push eax
call fcn.004850d8
mov edi, dword [esp + 0x1c]
add esp, 4
cmp byte [esp + 0x11], 0
je 0x43db71
mov byte [esi - 2], 0
cmp byte [edi + 0x17], 0
jne 0x43db49
mov esi, dword [edi + 0xc]
jmp 0x43db4b
mov al, byte [0x4a8b2c]
push ebx
test al, al
jne 0x43daea
mov eax, dword [edi]
push eax
call fcn.004850c1
jmp 0x43db01
cmp al, 2
jne 0x43daf9
mov edx, dword [edi]
push edx
call dword [sym.imp.KERNEL32.dll_lstrcmpiA]
jmp 0x43db04
mov eax, dword [edi]
push eax
call fcn.00485211
add esp, 8
test eax, eax
setne al
test al, al
je 0x43da7a
mov edi, dword [esp + 0x24]
mov ecx, dword [edi]
mov al, byte [ecx]
test al, al
je 0x43db2a
lea ecx, [ecx]
inc ecx
mov byte [esi], al
mov al, byte [ecx]
inc esi
test al, al
jne 0x43db20
mov eax, dword [esp + 0x14]
cmp eax, dword [esp + 0x30]
jb 0x43db3b
cmp byte [esp + 0x10], 0
je 0x43db42
mov cl, byte [esp + 0xe]
mov byte [esi], cl
inc esi
mov ebx, dword [edi]
jmp 0x43da90
mov esi, edi
cmp byte [esi + 0x17], 1
jne 0x43db67
test byte [esi + 0x15], 8
je 0x43db5e
mov eax, esi
call fcn.00401150
add dword [esi + 0xc], 0xfffffffe
lea eax, [esi + 0xc]
jmp 0x43db74
mov eax, 0x4ac590
add dword [eax], 0xfffffffe
jmp 0x43db74
mov byte [esi], 0
cmp byte [esp + 0x12], 0
je 0x43dc52
cmp dword [esp + 0x28], 0
je 0x43dc52
cmp byte [edi + 0x17], 0
jne 0x43db95
mov esi, dword [edi + 0xc]
jmp 0x43db97
mov esi, edi
test byte [esi + 0x15], 8
je 0x43dba4
mov eax, esi
call fcn.00401150
mov al, byte [esi + 0x17]
cmp al, 1
jne 0x43dbbd
test byte [esi + 0x15], 4
je 0x43dbb8
mov eax, esi
call fcn.0042ede0
mov eax, dword [esi + 8]
jmp 0x43dc0b
cmp al, 2
jne 0x43dc06
mov eax, dword [0x4ac3ec]
test eax, eax
jne 0x43dc0b
mov esi, dword [sym.imp.USER32.dll_IsClipboardFormatAvailable]
push 1
call esi
test eax, eax
jne 0x43dbee
push 0xf
call esi
test eax, eax
je 0x43dbe7
mov eax, 0x4987ec
jmp 0x43dc0b
mov eax, 0x498831
jmp 0x43dc0b
xor ecx, ecx
call fcn.00404160
cmp eax, 0xffffffff
mov eax, 0x498831
je 0x43dc0b
mov eax, dword [0x4ac3e8]
jmp 0x43dc0b
mov eax, 0x4ab626
lea edx, [eax + 1]
mov edi, edi
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x43dc10
mov esi, dword [esp + 0x18]
sub eax, edx
mov edi, eax
cmp byte [esi + 0x17], cl
jne 0x43dc27
mov esi, dword [esi + 0xc]
cmp byte [esi + 0x17], 1
jne 0x43dc3f
test byte [esi + 0x15], 8
je 0x43dc3a
mov eax, esi
call fcn.00401150
lea eax, [esi + 0xc]
jmp 0x43dc44
mov eax, 0x4ac590
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 0x43dc5d
mov eax, dword [edi + 0xc]
jmp 0x43dc5f
mov eax, edi
cmp byte [eax + 0x17], 2
jne 0x43dc80
cmp dword [0x4ac3ec], 0
je 0x43dc80
push 1
mov ecx, 0x4ac3e0
call fcn.00404420
mov dword [esp + 0x1c], eax
jmp 0x43dc8c
and byte [eax + 0x15], 0x86
mov dword [esp + 0x1c], 1
mov edi, dword [esp + 0x2c]
cmp edi, 0xffffffff
je 0x43dd01
mov esi, dword [0x4aa51c]
cmp byte [esi + 0x17], 0
jne 0x43dca4
mov esi, dword [esi + 0xc]
mov al, byte [esi + 0x15]
test al, 2
je 0x43dcba
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 0x43dcdc
mov eax, esi
call fcn.00401150
and byte [esi + 0x15], 0x8f
jmp 0x43dd01
cmp dword [0x4a9e7c], 0
je 0x43dce9
test al, 0x10
jne 0x43dcf6
cmp dword [0x4a9e80], 0
je 0x43dd01
test al, 0x20
je 0x43dd01
test al, 8
je 0x43dd01
mov eax, esi
call fcn.00401150
mov eax, dword [esp + 0x38]
test eax, eax
je 0x43dd29
push eax
call fcn.004850d8
mov ecx, dword [esp + 0x40]
mov eax, dword [esp + 0x20]
add esp, 4
mov dword [0x4a8b24], 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 [0x4a8b24], edx
pop ebx
mov esp, ebp
pop ebp
ret 8