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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x4c
mov eax, dword [0x4a9b24]
push ebx
xor ebx, ebx
push esi
mov esi, ecx
push edi
mov dword [esp + 0x38], ebx
mov dword [esp + 0x3c], eax
mov dword [0x4a9b24], ebx
mov dword [esp + 0x1c], 1
mov dword [esp + 0x2c], 0xffffffff
mov byte [esp + 0xe], 0xa
mov byte [0x4a9b2c], bl
mov byte [0x4a9b23], bl
mov byte [0x4a9b22], bl
mov dword [0x4a9b28], 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 0x43d870
movsx ecx, byte [esi]
push ecx
call fcn.00487cb5
add eax, 0xffffffbd
add esp, 4
cmp eax, 0x19
ja case.0x43d70f.69
movzx edx, byte [eax + 0x43e218]
jmp dword [edx*4 + 0x43e1f0]
movzx edi, byte [esi + 1]
test edi, 0xffffff80
jne 0x43d734
push 2
push edi
call fcn.004869ae
add esp, 8
cmp eax, ebx
je 0x43d734
and edi, 0xffffffdf
mov eax, edi
cmp al, 0x4c
jne 0x43d747
inc esi
mov byte [0x4a9b2c], 2
jmp case.0x43d70f.69
mov byte [0x4a9b2c], 1
jmp case.0x43d70f.69
cmp byte [esi + 1], 0
je case.0x43d70f.69
mov al, byte [esi + 1]
inc esi
test al, al
je case.0x43d70f.69
mov byte [esp + 0xe], al
jmp case.0x43d70f.69
mov al, byte [esi + 1]
inc esi
cmp al, 0x20
je case.0x43d70f.70
cmp al, 9
je case.0x43d70f.70
mov edi, 0x49aff4
mov eax, esi
call fcn.004093a0
mov edi, eax
cmp edi, ebx
jne 0x43d7a1
mov eax, esi
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x43d795
sub eax, edx
lea edi, [esi + eax]
push ebx
mov eax, edi
sub eax, esi
push eax
push esi
mov ecx, 0x4acd80
call fcn.0041f1d0
mov ecx, eax
mov dword [0x4a9b24], ecx
cmp ecx, ebx
je 0x43e13c
cmp byte [ecx + 0x3d], 0
jne 0x43e13c
mov eax, dword [ecx + 0x10]
cmp eax, 2
jl 0x43e13c
cmp eax, 3
jg 0x43e13c
mov eax, dword [ecx + 0xc]
cmp word [eax + 4], 0
jne 0x43e13c
cmp word [eax + 0x14], 0
jne 0x43e13c
lea esi, [edi - 1]
xor ebx, ebx
jmp case.0x43d70f.69
mov byte [0x4a9b23], 1
jmp case.0x43d70f.69
lea ecx, [esi + 1]
push ecx
call fcn.004869f6
add esp, 4
cmp eax, 1
jge 0x43d820
mov eax, 1
dec eax
mov dword [0x4a9b28], eax
jmp case.0x43d70f.69
push 6
push str.Random
push esi
call fcn.00485ef0
add esp, 0xc
test eax, eax
jne 0x43d846
mov byte [esp + 0xf], 1
add esi, 5
jmp case.0x43d70f.69
mov byte [0x4a9b22], 1
jmp case.0x43d70f.69
mov byte [esp + 0x12], 1
mov dword [esp + 0x2c], ebx
jmp case.0x43d70f.69
mov byte [esp + 0x13], 1
jmp case.0x43d70f.69
mov byte [esp + 0x14], 1
inc esi
cmp byte [esi], 0
jne 0x43d6f0
mov edx, dword [ebp + 0xc]
mov cl, byte [edx]
test cl, cl
je 0x43e13c
mov ebx, dword [0x4aac68]
mov al, byte [ebx + 0x17]
mov dword [esp + 0x18], ebx
test al, al
jne 0x43d894
mov eax, dword [ebx + 0xc]
mov al, byte [eax + 0x17]
cmp al, 2
ja 0x43e13c
mov edi, 1
mov eax, edx
cmp cl, byte [esp + 0xe]
jne 0x43d8aa
inc edi
mov cl, byte [eax + 1]
inc eax
test cl, cl
jne 0x43d8a3
mov esi, eax
mov ecx, edx
sub esi, ecx
cmp byte [esp + 0x13], 0
mov dword [esp + 0x28], esi
jne 0x43d8d3
cmp eax, ecx
jbe 0x43d8d3
mov cl, byte [eax - 1]
cmp cl, byte [esp + 0xe]
jne 0x43d8d3
dec edi
jmp 0x43d8f9
cmp byte [esp + 0xe], 0xa
jne 0x43d8fe
push 0xa
push edx
call fcn.00486461
add esp, 8
test eax, eax
je 0x43d8fe
cmp eax, dword [ebp + 0xc]
jbe 0x43d8fe
cmp byte [eax - 1], 0xd
jne 0x43d8fe
mov byte [esp + 0x11], 1
mov byte [esp + 0x10], 1
cmp edi, 1
jne 0x43d91a
mov eax, dword [ebp + 0xc]
push edi
push 0
push esi
push eax
push ebx
call fcn.004753c0
mov dword [esp + 0x1c], eax
jmp 0x43e13c
cmp dword [0x4a9b24], 0
jne 0x43d92a
cmp byte [esp + 0x11], 0
je 0x43d993
lea ecx, [esi + 3]
push ecx
call fcn.00485629
mov ebx, eax
add esp, 4
mov dword [esp + 0x38], ebx
test ebx, ebx
jne 0x43d95c
mov ecx, dword [ebp + 8]
push 0x499831
push eax
push str.Out_of_memory.
call fcn.0042ea00
mov dword [esp + 0x1c], eax
jmp 0x43e13c
mov eax, dword [ebp + 0xc]
lea edx, [esi + 1]
push edx
push eax
push ebx
call fcn.0048ddc0
add esp, 0xc
cmp byte [esp + 0x11], 0
mov dword [ebp + 0xc], ebx
je 0x43d993
mov cx, word [0x49e784]
mov word [esi + ebx], cx
mov dl, byte [0x49e786]
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.00485629
mov ebx, eax
add esp, 4
mov dword [esp + 0x34], ebx
test ebx, ebx
jne 0x43d9d8
mov ecx, dword [ebp + 8]
push 0x499831
push eax
push str.Out_of_memory.
call fcn.0042ea00
mov dword [esp + 0x1c], eax
jmp 0x43e13c
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 0x43da6b
mov al, byte [esi]
cmp al, byte [esp + 0xe]
jne 0x43da64
add dword [esp + 0x1c], edx
cmp byte [esp + 0xf], 0
mov byte [esi], 0
je 0x43da5b
sub dword [0x4a7394], edx
jne 0x43da1d
call fcn.00412690
mov edx, 1
mov ecx, dword [0x4a9c64]
mov eax, dword [ecx]
add ecx, 4
mov dword [0x4a9c64], 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 0x43d9f5
cmp byte [esp + 0x10], 0
jne 0x43dac8
add dword [esp + 0x1c], edx
cmp byte [esp + 0xf], 0
je 0x43dac8
sub dword [0x4a7394], edx
jne 0x43da8a
call fcn.00412690
mov ecx, dword [0x4a9c64]
mov eax, dword [ecx]
add ecx, 4
mov dword [0x4a9c64], 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 [0x4a9b24], 0
je 0x43dae2
mov eax, dword [esp + 0x20]
mov ecx, dword [esp + 0x1c]
push 0x43d4e0
push eax
push ecx
jmp 0x43db16
cmp byte [esp + 0xf], 0
je 0x43dafa
mov edx, dword [esp + 0x20]
mov eax, dword [esp + 0x1c]
push 0x43d4d0
push edx
push eax
jmp 0x43db16
cmp byte [esp + 0x14], 0
mov eax, 0x43d460
jne 0x43db0b
mov eax, 0x43d330
mov ecx, dword [esp + 0x20]
mov edx, dword [esp + 0x1c]
push eax
push ecx
push edx
push ebx
call fcn.00486660
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 0x43db46
mov eax, dword [esi + 0xc]
push 1
push 0
push edi
push 0
push eax
call fcn.004753c0
jmp 0x43dbb0
mov byte [esp + 0xf], 1
mov cl, 1
cmp edi, 0xffffffff
jne 0x43db5c
xor cl, cl
xor ebx, ebx
mov dword [esp + 0x28], ebx
jmp 0x43db61
mov byte [esp + 0xf], 0
lea edi, [ebx + 1]
cmp al, 2
jne 0x43db8f
cmp byte [esp + 0xf], 0
je 0x43db7d
push 0x499831
mov eax, ebx
call fcn.00404310
jmp 0x43dbb0
mov esi, 0x4ad3e0
call fcn.00404390
neg eax
sbb eax, eax
neg eax
jmp 0x43dbb0
cmp edi, dword [0x4a73ac]
jbe 0x43dbc6
cmp edi, dword [esi + 0x10]
jbe 0x43dbc6
push 0x499831
push 0x4a08f0
mov ecx, 0x4acd80
call fcn.0042ecb0
cmp eax, 1
je 0x43ddcb
mov dword [esp + 0x1c], 0
jmp 0x43e13c
cmp edi, 2
jae 0x43dbe4
xor edx, edx
test cl, cl
setne dl
xor al, al
mov ecx, esi
add edx, 3
push edx
call fcn.00475960
jmp 0x43ddcf
mov al, byte [esi + 0x15]
test al, 2
je 0x43dbfa
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 0x43dc34
mov cl, byte [esi + 0x14]
cmp cl, 1
jbe 0x43dc67
cmp cl, 2
je 0x43dc9f
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 0x43ddc0
mov eax, dword [esi + 8]
cmp eax, 0x499831
je 0x43dc58
push ebx
push 0x499831
push eax
call fcn.00486050
add esp, 0xc
mov eax, dword [esi + 8]
mov byte [ebx + eax], 0
mov dword [esi + 0xc], ebx
jmp 0x43ddcf
cmp edi, 0x40
ja 0x43dc9f
cmp edi, 4
ja 0x43dc78
mov esi, 4
jmp 0x43dc86
mov eax, 8
cmp eax, edi
sbb esi, esi
and esi, 0x38
add esi, eax
mov eax, esi
call fcn.0046fc20
test eax, eax
je 0x43dbb9
mov ecx, dword [esp + 0x18]
mov byte [ecx + 0x14], 1
jmp 0x43dc26
cmp edi, 0x10
jae 0x43dcae
mov esi, 0x10
jmp 0x43dd36
cmp edi, 0x104
jae 0x43dcc0
mov esi, 0x104
jmp 0x43dd36
cmp edi, 0x28000
jae 0x43dd04
mov dword [esp + 0x30], edi
fild dword [esp + 0x30]
test edi, edi
jns 0x43dcda
fadd qword [0x4a18c0]
fmul qword [0x4a18c8]
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 0x43dd36
cmp edi, 0x190000
jae 0x43dd14
lea esi, [edi + 0x4000]
jmp 0x43dd36
cmp edi, 0x640000
jae 0x43dd30
mov eax, 0x51eb851f
mul edi
mov esi, edx
mov edx, dword [esp + 0x30]
shr esi, 5
add esi, edi
jmp 0x43dd36
lea esi, [edi + 0x10000]
mov eax, dword [0x4a73ac]
cmp esi, eax
jbe 0x43dd41
mov esi, eax
cmp cl, 2
jne 0x43dd80
test edx, edx
je 0x43dd80
mov ecx, dword [esp + 0x18]
mov edx, dword [ecx + 8]
push edx
mov bl, 1
call fcn.00485488
add esp, 4
xor edi, edi
cmp esi, edi
jl 0x43dd84
push esi
call fcn.00485629
add esp, 4
cmp eax, edi
je 0x43dd84
mov ecx, dword [esp + 0x18]
mov ebx, dword [esp + 0x28]
mov byte [ecx + 0x14], 2
jmp 0x43dc26
xor bl, bl
jmp 0x43dd5c
mov eax, dword [esp + 0x18]
test bl, bl
je 0x43dda8
push 0x499831
mov dword [eax + 0x10], edi
mov dword [eax + 8], 0x4ac626
mov dword [eax + 0xc], edi
push str.Out_of_memory.
jmp 0x43dba6
mov edx, dword [eax + 8]
push 0x499831
mov byte [edx], 0
mov dword [eax + 0xc], edi
push str.Out_of_memory.
jmp 0x43dba6
mov ecx, dword [esi + 8]
mov byte [ecx], 0
mov dword [esi + 0xc], ebx
jmp 0x43ddcf
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 0x43ddf4
mov eax, dword [esp + 0x18]
mov esi, dword [eax + 0xc]
jmp 0x43ddf8
mov esi, dword [esp + 0x18]
test byte [esi + 0x15], 8
je 0x43de05
mov eax, esi
call fcn.00401150
mov al, byte [esi + 0x17]
cmp al, 1
jne 0x43de1e
test byte [esi + 0x15], 4
je 0x43de19
mov eax, esi
call fcn.0042f230
mov esi, dword [esi + 8]
jmp 0x43de72
cmp al, 2
jne 0x43de6d
mov eax, dword [0x4ad3ec]
test eax, eax
jne 0x43de69
mov esi, dword [sym.imp.USER32.dll_IsClipboardFormatAvailable]
push 1
call esi
test eax, eax
jne 0x43de53
push 0xf
call esi
test eax, eax
je 0x43de4a
mov eax, 0x4997ec
mov esi, eax
jmp 0x43de72
mov eax, 0x499831
mov esi, eax
jmp 0x43de72
xor ecx, ecx
call fcn.00404140
cmp eax, 0xffffffff
mov eax, 0x499831
je 0x43de69
mov eax, dword [0x4ad3e8]
mov esi, eax
jmp 0x43de72
mov esi, 0x4ac626
mov dword [esp + 0x14], ebx
cmp dword [esp + 0x1c], ebx
jbe 0x43df5b
cmp byte [esp + 0x12], 0
je 0x43dfc1
test ebx, ebx
je 0x43dfc1
cmp byte [0x4a9b23], 0
je 0x43df86
cmp dword [0x4a9b28], 0
jne 0x43df86
mov ecx, dword [esp + 0x24]
mov edi, dword [ecx]
mov eax, edi
call fcn.0040ce50
test al, al
je 0x43ded9
push 0x10
push 0
push edi
call fcn.0048726b
mov dword [esp + 0x4c], eax
mov dword [esp + 0x50], edx
fild qword [esp + 0x4c]
add esp, 0xc
jmp 0x43dee2
push edi
call fcn.0048736d
add esp, 4
mov eax, ebx
fstp qword [esp + 0x50]
call fcn.0040ce50
test al, al
je 0x43df0c
push 0x10
push 0
push ebx
call fcn.0048726b
mov dword [esp + 0x54], eax
mov dword [esp + 0x58], edx
fild qword [esp + 0x54]
add esp, 0xc
jmp 0x43df15
push ebx
call fcn.0048736d
add esp, 4
fld qword [esp + 0x50]
fucompp
fnstsw ax
test ah, 0x44
jp 0x43dfc1
mov edi, dword [esp + 0x24]
mov edx, dword [esp + 0x14]
inc dword [esp + 0x28]
cmp edx, dword [esp + 0x30]
jne 0x43df40
cmp byte [esp + 0x10], 0
jne 0x43df40
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 0x43de80
mov eax, dword [esp + 0x34]
push eax
call fcn.00485488
mov edi, dword [esp + 0x1c]
add esp, 4
cmp byte [esp + 0x11], 0
je 0x43e021
mov byte [esi - 2], 0
cmp byte [edi + 0x17], 0
jne 0x43dff9
mov esi, dword [edi + 0xc]
jmp 0x43dffb
mov al, byte [0x4a9b2c]
push ebx
test al, al
jne 0x43df9a
mov eax, dword [edi]
push eax
call fcn.00485471
jmp 0x43dfb1
cmp al, 2
jne 0x43dfa9
mov edx, dword [edi]
push edx
call dword [sym.imp.KERNEL32.dll_lstrcmpiA]
jmp 0x43dfb4
mov eax, dword [edi]
push eax
call fcn.004855c1
add esp, 8
test eax, eax
setne al
test al, al
je 0x43df2a
mov edi, dword [esp + 0x24]
mov ecx, dword [edi]
mov al, byte [ecx]
test al, al
je 0x43dfda
lea ecx, [ecx]
inc ecx
mov byte [esi], al
mov al, byte [ecx]
inc esi
test al, al
jne 0x43dfd0
mov eax, dword [esp + 0x14]
cmp eax, dword [esp + 0x30]
jb 0x43dfeb
cmp byte [esp + 0x10], 0
je 0x43dff2
mov cl, byte [esp + 0xe]
mov byte [esi], cl
inc esi
mov ebx, dword [edi]
jmp 0x43df40
mov esi, edi
cmp byte [esi + 0x17], 1
jne 0x43e017
test byte [esi + 0x15], 8
je 0x43e00e
mov eax, esi
call fcn.00401150
add dword [esi + 0xc], 0xfffffffe
lea eax, [esi + 0xc]
jmp 0x43e024
mov eax, 0x4ad590
add dword [eax], 0xfffffffe
jmp 0x43e024
mov byte [esi], 0
cmp byte [esp + 0x12], 0
je 0x43e102
cmp dword [esp + 0x28], 0
je 0x43e102
cmp byte [edi + 0x17], 0
jne 0x43e045
mov esi, dword [edi + 0xc]
jmp 0x43e047
mov esi, edi
test byte [esi + 0x15], 8
je 0x43e054
mov eax, esi
call fcn.00401150
mov al, byte [esi + 0x17]
cmp al, 1
jne 0x43e06d
test byte [esi + 0x15], 4
je 0x43e068
mov eax, esi
call fcn.0042f230
mov eax, dword [esi + 8]
jmp 0x43e0bb
cmp al, 2
jne 0x43e0b6
mov eax, dword [0x4ad3ec]
test eax, eax
jne 0x43e0bb
mov esi, dword [sym.imp.USER32.dll_IsClipboardFormatAvailable]
push 1
call esi
test eax, eax
jne 0x43e09e
push 0xf
call esi
test eax, eax
je 0x43e097
mov eax, 0x4997ec
jmp 0x43e0bb
mov eax, 0x499831
jmp 0x43e0bb
xor ecx, ecx
call fcn.00404140
cmp eax, 0xffffffff
mov eax, 0x499831
je 0x43e0bb
mov eax, dword [0x4ad3e8]
jmp 0x43e0bb
mov eax, 0x4ac626
lea edx, [eax + 1]
mov edi, edi
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x43e0c0
mov esi, dword [esp + 0x18]
sub eax, edx
mov edi, eax
cmp byte [esi + 0x17], cl
jne 0x43e0d7
mov esi, dword [esi + 0xc]
cmp byte [esi + 0x17], 1
jne 0x43e0ef
test byte [esi + 0x15], 8
je 0x43e0ea
mov eax, esi
call fcn.00401150
lea eax, [esi + 0xc]
jmp 0x43e0f4
mov eax, 0x4ad590
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 0x43e10d
mov eax, dword [edi + 0xc]
jmp 0x43e10f
mov eax, edi
cmp byte [eax + 0x17], 2
jne 0x43e130
cmp dword [0x4ad3ec], 0
je 0x43e130
push 1
mov ecx, 0x4ad3e0
call fcn.00404400
mov dword [esp + 0x1c], eax
jmp 0x43e13c
and byte [eax + 0x15], 0x86
mov dword [esp + 0x1c], 1
mov edi, dword [esp + 0x2c]
cmp edi, 0xffffffff
je 0x43e1b1
mov esi, dword [0x4ab51c]
cmp byte [esi + 0x17], 0
jne 0x43e154
mov esi, dword [esi + 0xc]
mov al, byte [esi + 0x15]
test al, 2
je 0x43e16a
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 0x43e18c
mov eax, esi
call fcn.00401150
and byte [esi + 0x15], 0x8f
jmp 0x43e1b1
cmp dword [0x4aae7c], 0
je 0x43e199
test al, 0x10
jne 0x43e1a6
cmp dword [0x4aae80], 0
je 0x43e1b1
test al, 0x20
je 0x43e1b1
test al, 8
je 0x43e1b1
mov eax, esi
call fcn.00401150
mov eax, dword [esp + 0x38]
test eax, eax
je 0x43e1d9
push eax
call fcn.00485488
mov ecx, dword [esp + 0x40]
mov eax, dword [esp + 0x20]
add esp, 4
mov dword [0x4a9b24], 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 [0x4a9b24], edx
pop ebx
mov esp, ebp
pop ebp
ret 8