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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x4c
mov eax, dword [0x4a9034]
push ebx
xor ebx, ebx
push esi
mov esi, ecx
push edi
mov dword [esp + 0x38], ebx
mov dword [esp + 0x3c], eax
mov dword [0x4a9034], ebx
mov dword [esp + 0x1c], 1
mov dword [esp + 0x2c], 0xffffffff
mov byte [esp + 0xe], 0xa
mov byte [0x4a903c], bl
mov byte [0x4a9033], bl
mov byte [0x4a9032], bl
mov dword [0x4a9038], 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 0x43c1c0
movsx ecx, byte [esi]
push ecx
call fcn.00487625
add eax, 0xffffffbd
add esp, 4
cmp eax, 0x19
ja case.0x43c05f.69
movzx edx, byte [eax + 0x43cb68]
jmp dword [edx*4 + 0x43cb40]
movzx edi, byte [esi + 1]
test edi, 0xffffff80
jne 0x43c084
push 2
push edi
call fcn.0048631e
add esp, 8
cmp eax, ebx
je 0x43c084
and edi, 0xffffffdf
mov eax, edi
cmp al, 0x4c
jne 0x43c097
inc esi
mov byte [0x4a903c], 2
jmp case.0x43c05f.69
mov byte [0x4a903c], 1
jmp case.0x43c05f.69
cmp byte [esi + 1], 0
je case.0x43c05f.69
mov al, byte [esi + 1]
inc esi
test al, al
je case.0x43c05f.69
mov byte [esp + 0xe], al
jmp case.0x43c05f.69
mov al, byte [esi + 1]
inc esi
cmp al, 0x20
je case.0x43c05f.70
cmp al, 9
je case.0x43c05f.70
mov edi, 0x49a0d8
mov eax, esi
call fcn.004093c0
mov edi, eax
cmp edi, ebx
jne 0x43c0f1
mov eax, esi
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x43c0e5
sub eax, edx
lea edi, [esi + eax]
push ebx
mov eax, edi
sub eax, esi
push eax
push esi
mov ecx, 0x4ac290
call fcn.0041f140
mov ecx, eax
mov dword [0x4a9034], ecx
cmp ecx, ebx
je 0x43ca8c
cmp byte [ecx + 0x3d], 0
jne 0x43ca8c
mov eax, dword [ecx + 0x10]
cmp eax, 2
jl 0x43ca8c
cmp eax, 3
jg 0x43ca8c
mov eax, dword [ecx + 0xc]
cmp word [eax + 4], 0
jne 0x43ca8c
cmp word [eax + 0x14], 0
jne 0x43ca8c
lea esi, [edi - 1]
xor ebx, ebx
jmp case.0x43c05f.69
mov byte [0x4a9033], 1
jmp case.0x43c05f.69
lea ecx, [esi + 1]
push ecx
call fcn.00486366
add esp, 4
cmp eax, 1
jge 0x43c170
mov eax, 1
dec eax
mov dword [0x4a9038], eax
jmp case.0x43c05f.69
push 6
push str.Random
push esi
call fcn.00485860
add esp, 0xc
test eax, eax
jne 0x43c196
mov byte [esp + 0xf], 1
add esi, 5
jmp case.0x43c05f.69
mov byte [0x4a9032], 1
jmp case.0x43c05f.69
mov byte [esp + 0x12], 1
mov dword [esp + 0x2c], ebx
jmp case.0x43c05f.69
mov byte [esp + 0x13], 1
jmp case.0x43c05f.69
mov byte [esp + 0x14], 1
inc esi
cmp byte [esi], 0
jne 0x43c040
mov edx, dword [ebp + 0xc]
mov cl, byte [edx]
test cl, cl
je 0x43ca8c
mov ebx, dword [0x4aa178]
mov al, byte [ebx + 0x17]
mov dword [esp + 0x18], ebx
test al, al
jne 0x43c1e4
mov eax, dword [ebx + 0xc]
mov al, byte [eax + 0x17]
cmp al, 2
ja 0x43ca8c
mov edi, 1
mov eax, edx
cmp cl, byte [esp + 0xe]
jne 0x43c1fa
inc edi
mov cl, byte [eax + 1]
inc eax
test cl, cl
jne 0x43c1f3
mov esi, eax
mov ecx, edx
sub esi, ecx
cmp byte [esp + 0x13], 0
mov dword [esp + 0x28], esi
jne 0x43c223
cmp eax, ecx
jbe 0x43c223
mov cl, byte [eax - 1]
cmp cl, byte [esp + 0xe]
jne 0x43c223
dec edi
jmp 0x43c249
cmp byte [esp + 0xe], 0xa
jne 0x43c24e
push 0xa
push edx
call fcn.00485dd1
add esp, 8
test eax, eax
je 0x43c24e
cmp eax, dword [ebp + 0xc]
jbe 0x43c24e
cmp byte [eax - 1], 0xd
jne 0x43c24e
mov byte [esp + 0x11], 1
mov byte [esp + 0x10], 1
cmp edi, 1
jne 0x43c26a
mov eax, dword [ebp + 0xc]
push edi
push 0
push esi
push eax
push ebx
call fcn.00474cc0
mov dword [esp + 0x1c], eax
jmp 0x43ca8c
cmp dword [0x4a9034], 0
jne 0x43c27a
cmp byte [esp + 0x11], 0
je 0x43c2e3
lea ecx, [esi + 3]
push ecx
call fcn.00484f99
mov ebx, eax
add esp, 4
mov dword [esp + 0x38], ebx
test ebx, ebx
jne 0x43c2ac
mov ecx, dword [ebp + 8]
push 0x498861
push eax
push str.Out_of_memory.
call fcn.0042d4a0
mov dword [esp + 0x1c], eax
jmp 0x43ca8c
mov eax, dword [ebp + 0xc]
lea edx, [esi + 1]
push edx
push eax
push ebx
call fcn.0048d6e0
add esp, 0xc
cmp byte [esp + 0x11], 0
mov dword [ebp + 0xc], ebx
je 0x43c2e3
mov cx, word [0x49d9a4]
mov word [esi + ebx], cx
mov dl, byte [0x49d9a6]
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.00484f99
mov ebx, eax
add esp, 4
mov dword [esp + 0x34], ebx
test ebx, ebx
jne 0x43c328
mov ecx, dword [ebp + 8]
push 0x498861
push eax
push str.Out_of_memory.
call fcn.0042d4a0
mov dword [esp + 0x1c], eax
jmp 0x43ca8c
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 0x43c3bb
mov al, byte [esi]
cmp al, byte [esp + 0xe]
jne 0x43c3b4
add dword [esp + 0x1c], edx
cmp byte [esp + 0xf], 0
mov byte [esi], 0
je 0x43c3ab
sub dword [0x4a63c4], edx
jne 0x43c36d
call fcn.00412690
mov edx, 1
mov ecx, dword [0x4a9174]
mov eax, dword [ecx]
add ecx, 4
mov dword [0x4a9174], 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 0x43c345
cmp byte [esp + 0x10], 0
jne 0x43c418
add dword [esp + 0x1c], edx
cmp byte [esp + 0xf], 0
je 0x43c418
sub dword [0x4a63c4], edx
jne 0x43c3da
call fcn.00412690
mov ecx, dword [0x4a9174]
mov eax, dword [ecx]
add ecx, 4
mov dword [0x4a9174], 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 [0x4a9034], 0
je 0x43c432
mov eax, dword [esp + 0x20]
mov ecx, dword [esp + 0x1c]
push 0x43be30
push eax
push ecx
jmp 0x43c466
cmp byte [esp + 0xf], 0
je 0x43c44a
mov edx, dword [esp + 0x20]
mov eax, dword [esp + 0x1c]
push 0x43be20
push edx
push eax
jmp 0x43c466
cmp byte [esp + 0x14], 0
mov eax, 0x43bdb0
jne 0x43c45b
mov eax, 0x43bc80
mov ecx, dword [esp + 0x20]
mov edx, dword [esp + 0x1c]
push eax
push ecx
push edx
push ebx
call fcn.00485fd0
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 0x43c496
mov eax, dword [esi + 0xc]
push 1
push 0
push edi
push 0
push eax
call fcn.00474cc0
jmp 0x43c500
mov byte [esp + 0xf], 1
mov cl, 1
cmp edi, 0xffffffff
jne 0x43c4ac
xor cl, cl
xor ebx, ebx
mov dword [esp + 0x28], ebx
jmp 0x43c4b1
mov byte [esp + 0xf], 0
lea edi, [ebx + 1]
cmp al, 2
jne 0x43c4df
cmp byte [esp + 0xf], 0
je 0x43c4cd
push 0x498861
mov eax, ebx
call fcn.00404290
jmp 0x43c500
mov esi, 0x4ac8f0
call fcn.00404310
neg eax
sbb eax, eax
neg eax
jmp 0x43c500
cmp edi, dword [0x4a688c]
jbe 0x43c516
cmp edi, dword [esi + 0x10]
jbe 0x43c516
push 0x498861
push 0x49faf4
mov ecx, 0x4ac290
call fcn.0042d750
cmp eax, 1
je 0x43c71b
mov dword [esp + 0x1c], 0
jmp 0x43ca8c
cmp edi, 2
jae 0x43c534
xor edx, edx
test cl, cl
setne dl
xor al, al
mov ecx, esi
add edx, 3
push edx
call fcn.00475260
jmp 0x43c71f
mov al, byte [esi + 0x15]
test al, 2
je 0x43c54a
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 0x43c584
mov cl, byte [esi + 0x14]
cmp cl, 1
jbe 0x43c5b7
cmp cl, 2
je 0x43c5ef
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 0x43c710
mov eax, dword [esi + 8]
cmp eax, 0x498861
je 0x43c5a8
push ebx
push 0x498861
push eax
call fcn.004859c0
add esp, 0xc
mov eax, dword [esi + 8]
mov byte [ebx + eax], 0
mov dword [esi + 0xc], ebx
jmp 0x43c71f
cmp edi, 0x40
ja 0x43c5ef
cmp edi, 4
ja 0x43c5c8
mov esi, 4
jmp 0x43c5d6
mov eax, 8
cmp eax, edi
sbb esi, esi
and esi, 0x38
add esi, eax
mov eax, esi
call fcn.0046f460
test eax, eax
je 0x43c509
mov ecx, dword [esp + 0x18]
mov byte [ecx + 0x14], 1
jmp 0x43c576
cmp edi, 0x10
jae 0x43c5fe
mov esi, 0x10
jmp 0x43c686
cmp edi, 0x104
jae 0x43c610
mov esi, 0x104
jmp 0x43c686
cmp edi, 0x28000
jae 0x43c654
mov dword [esp + 0x30], edi
fild dword [esp + 0x30]
test edi, edi
jns 0x43c62a
fadd qword [0x4a0b48]
fmul qword [0x4a0b50]
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 0x43c686
cmp edi, 0x190000
jae 0x43c664
lea esi, [edi + 0x4000]
jmp 0x43c686
cmp edi, 0x640000
jae 0x43c680
mov eax, 0x51eb851f
mul edi
mov esi, edx
mov edx, dword [esp + 0x30]
shr esi, 5
add esi, edi
jmp 0x43c686
lea esi, [edi + 0x10000]
mov eax, dword [0x4a688c]
cmp esi, eax
jbe 0x43c691
mov esi, eax
cmp cl, 2
jne 0x43c6d0
test edx, edx
je 0x43c6d0
mov ecx, dword [esp + 0x18]
mov edx, dword [ecx + 8]
push edx
mov bl, 1
call fcn.00484df8
add esp, 4
xor edi, edi
cmp esi, edi
jl 0x43c6d4
push esi
call fcn.00484f99
add esp, 4
cmp eax, edi
je 0x43c6d4
mov ecx, dword [esp + 0x18]
mov ebx, dword [esp + 0x28]
mov byte [ecx + 0x14], 2
jmp 0x43c576
xor bl, bl
jmp 0x43c6ac
mov eax, dword [esp + 0x18]
test bl, bl
je 0x43c6f8
push 0x498861
mov dword [eax + 0x10], edi
mov dword [eax + 8], 0x4abb35
mov dword [eax + 0xc], edi
push str.Out_of_memory.
jmp 0x43c4f6
mov edx, dword [eax + 8]
push 0x498861
mov byte [edx], 0
mov dword [eax + 0xc], edi
push str.Out_of_memory.
jmp 0x43c4f6
mov ecx, dword [esi + 8]
mov byte [ecx], 0
mov dword [esi + 0xc], ebx
jmp 0x43c71f
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 0x43c744
mov eax, dword [esp + 0x18]
mov esi, dword [eax + 0xc]
jmp 0x43c748
mov esi, dword [esp + 0x18]
test byte [esi + 0x15], 8
je 0x43c755
mov eax, esi
call fcn.00401150
mov al, byte [esi + 0x17]
cmp al, 1
jne 0x43c76e
test byte [esi + 0x15], 4
je 0x43c769
mov eax, esi
call fcn.0042dcd0
mov esi, dword [esi + 8]
jmp 0x43c7c2
cmp al, 2
jne 0x43c7bd
mov eax, dword [0x4ac8fc]
test eax, eax
jne 0x43c7b9
mov esi, dword [sym.imp.USER32.dll_IsClipboardFormatAvailable]
push 1
call esi
test eax, eax
jne 0x43c7a3
push 0xf
call esi
test eax, eax
je 0x43c79a
mov eax, 0x49881c
mov esi, eax
jmp 0x43c7c2
mov eax, 0x498861
mov esi, eax
jmp 0x43c7c2
xor ecx, ecx
call fcn.004040c0
cmp eax, 0xffffffff
mov eax, 0x498861
je 0x43c7b9
mov eax, dword [0x4ac8f8]
mov esi, eax
jmp 0x43c7c2
mov esi, 0x4abb35
mov dword [esp + 0x14], ebx
cmp dword [esp + 0x1c], ebx
jbe 0x43c8ab
cmp byte [esp + 0x12], 0
je 0x43c911
test ebx, ebx
je 0x43c911
cmp byte [0x4a9033], 0
je 0x43c8d6
cmp dword [0x4a9038], 0
jne 0x43c8d6
mov ecx, dword [esp + 0x24]
mov edi, dword [ecx]
mov eax, edi
call fcn.0040ce10
test al, al
je 0x43c829
push 0x10
push 0
push edi
call fcn.00486bdb
mov dword [esp + 0x4c], eax
mov dword [esp + 0x50], edx
fild qword [esp + 0x4c]
add esp, 0xc
jmp 0x43c832
push edi
call fcn.00486cdd
add esp, 4
mov eax, ebx
fstp qword [esp + 0x50]
call fcn.0040ce10
test al, al
je 0x43c85c
push 0x10
push 0
push ebx
call fcn.00486bdb
mov dword [esp + 0x54], eax
mov dword [esp + 0x58], edx
fild qword [esp + 0x54]
add esp, 0xc
jmp 0x43c865
push ebx
call fcn.00486cdd
add esp, 4
fld qword [esp + 0x50]
fucompp
fnstsw ax
test ah, 0x44
jp 0x43c911
mov edi, dword [esp + 0x24]
mov edx, dword [esp + 0x14]
inc dword [esp + 0x28]
cmp edx, dword [esp + 0x30]
jne 0x43c890
cmp byte [esp + 0x10], 0
jne 0x43c890
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 0x43c7d0
mov eax, dword [esp + 0x34]
push eax
call fcn.00484df8
mov edi, dword [esp + 0x1c]
add esp, 4
cmp byte [esp + 0x11], 0
je 0x43c971
mov byte [esi - 2], 0
cmp byte [edi + 0x17], 0
jne 0x43c949
mov esi, dword [edi + 0xc]
jmp 0x43c94b
mov al, byte [0x4a903c]
push ebx
test al, al
jne 0x43c8ea
mov eax, dword [edi]
push eax
call fcn.00484de1
jmp 0x43c901
cmp al, 2
jne 0x43c8f9
mov edx, dword [edi]
push edx
call dword [sym.imp.KERNEL32.dll_lstrcmpiA]
jmp 0x43c904
mov eax, dword [edi]
push eax
call fcn.00484f31
add esp, 8
test eax, eax
setne al
test al, al
je 0x43c87a
mov edi, dword [esp + 0x24]
mov ecx, dword [edi]
mov al, byte [ecx]
test al, al
je 0x43c92a
lea ecx, [ecx]
inc ecx
mov byte [esi], al
mov al, byte [ecx]
inc esi
test al, al
jne 0x43c920
mov eax, dword [esp + 0x14]
cmp eax, dword [esp + 0x30]
jb 0x43c93b
cmp byte [esp + 0x10], 0
je 0x43c942
mov cl, byte [esp + 0xe]
mov byte [esi], cl
inc esi
mov ebx, dword [edi]
jmp 0x43c890
mov esi, edi
cmp byte [esi + 0x17], 1
jne 0x43c967
test byte [esi + 0x15], 8
je 0x43c95e
mov eax, esi
call fcn.00401150
add dword [esi + 0xc], 0xfffffffe
lea eax, [esi + 0xc]
jmp 0x43c974
mov eax, 0x4acaa0
add dword [eax], 0xfffffffe
jmp 0x43c974
mov byte [esi], 0
cmp byte [esp + 0x12], 0
je 0x43ca52
cmp dword [esp + 0x28], 0
je 0x43ca52
cmp byte [edi + 0x17], 0
jne 0x43c995
mov esi, dword [edi + 0xc]
jmp 0x43c997
mov esi, edi
test byte [esi + 0x15], 8
je 0x43c9a4
mov eax, esi
call fcn.00401150
mov al, byte [esi + 0x17]
cmp al, 1
jne 0x43c9bd
test byte [esi + 0x15], 4
je 0x43c9b8
mov eax, esi
call fcn.0042dcd0
mov eax, dword [esi + 8]
jmp 0x43ca0b
cmp al, 2
jne 0x43ca06
mov eax, dword [0x4ac8fc]
test eax, eax
jne 0x43ca0b
mov esi, dword [sym.imp.USER32.dll_IsClipboardFormatAvailable]
push 1
call esi
test eax, eax
jne 0x43c9ee
push 0xf
call esi
test eax, eax
je 0x43c9e7
mov eax, 0x49881c
jmp 0x43ca0b
mov eax, 0x498861
jmp 0x43ca0b
xor ecx, ecx
call fcn.004040c0
cmp eax, 0xffffffff
mov eax, 0x498861
je 0x43ca0b
mov eax, dword [0x4ac8f8]
jmp 0x43ca0b
mov eax, 0x4abb35
lea edx, [eax + 1]
mov edi, edi
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x43ca10
mov esi, dword [esp + 0x18]
sub eax, edx
mov edi, eax
cmp byte [esi + 0x17], cl
jne 0x43ca27
mov esi, dword [esi + 0xc]
cmp byte [esi + 0x17], 1
jne 0x43ca3f
test byte [esi + 0x15], 8
je 0x43ca3a
mov eax, esi
call fcn.00401150
lea eax, [esi + 0xc]
jmp 0x43ca44
mov eax, 0x4acaa0
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 0x43ca5d
mov eax, dword [edi + 0xc]
jmp 0x43ca5f
mov eax, edi
cmp byte [eax + 0x17], 2
jne 0x43ca80
cmp dword [0x4ac8fc], 0
je 0x43ca80
push 1
mov ecx, 0x4ac8f0
call fcn.00404380
mov dword [esp + 0x1c], eax
jmp 0x43ca8c
and byte [eax + 0x15], 0x86
mov dword [esp + 0x1c], 1
mov edi, dword [esp + 0x2c]
cmp edi, 0xffffffff
je 0x43cb01
mov esi, dword [0x4aaa2c]
cmp byte [esi + 0x17], 0
jne 0x43caa4
mov esi, dword [esi + 0xc]
mov al, byte [esi + 0x15]
test al, 2
je 0x43caba
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 0x43cadc
mov eax, esi
call fcn.00401150
and byte [esi + 0x15], 0x8f
jmp 0x43cb01
cmp dword [0x4aa38c], 0
je 0x43cae9
test al, 0x10
jne 0x43caf6
cmp dword [0x4aa390], 0
je 0x43cb01
test al, 0x20
je 0x43cb01
test al, 8
je 0x43cb01
mov eax, esi
call fcn.00401150
mov eax, dword [esp + 0x38]
test eax, eax
je 0x43cb29
push eax
call fcn.00484df8
mov ecx, dword [esp + 0x40]
mov eax, dword [esp + 0x20]
add esp, 4
mov dword [0x4a9034], 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 [0x4a9034], edx
pop ebx
mov esp, ebp
pop ebp
ret 8