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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x4c
mov eax, dword [0x4a5a7c]
push ebx
xor ebx, ebx
push esi
mov esi, ecx
push edi
mov dword [esp + 0x38], ebx
mov dword [esp + 0x3c], eax
mov dword [0x4a5a7c], ebx
mov dword [esp + 0x1c], 1
mov dword [esp + 0x2c], 0xffffffff
mov byte [esp + 0xe], 0xa
mov byte [0x4a5a84], bl
mov byte [0x4a5a7b], bl
mov byte [0x4a5a7a], bl
mov dword [0x4a5a80], 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 0x43b6d0
movsx ecx, byte [esi]
push ecx
call fcn.00483dc3
add eax, 0xffffffbd
add esp, 4
cmp eax, 0x19
ja case.0x43b56f.69
movzx edx, byte [eax + 0x43c08c]
jmp dword [edx*4 + 0x43c064]
movzx edi, byte [esi + 1]
test edi, 0xffffff80
jne 0x43b594
push 2
push edi
call fcn.00482bfe
add esp, 8
cmp eax, ebx
je 0x43b594
and edi, 0xffffffdf
mov eax, edi
cmp al, 0x4c
jne 0x43b5a7
inc esi
mov byte [0x4a5a84], 2
jmp case.0x43b56f.69
mov byte [0x4a5a84], 1
jmp case.0x43b56f.69
cmp byte [esi + 1], 0
je case.0x43b56f.69
mov al, byte [esi + 1]
inc esi
test al, al
je case.0x43b56f.69
mov byte [esp + 0xe], al
jmp case.0x43b56f.69
mov al, byte [esi + 1]
inc esi
cmp al, 0x20
je case.0x43b56f.70
cmp al, 9
je case.0x43b56f.70
mov edi, 0x496fe4
mov eax, esi
call fcn.00408f20
mov edi, eax
cmp edi, ebx
jne 0x43b601
mov eax, esi
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x43b5f5
sub eax, edx
lea edi, [esi + eax]
push ebx
mov eax, edi
sub eax, esi
push eax
push esi
mov ecx, 0x4a8ce0
call fcn.0041e0b0
mov ecx, eax
mov dword [0x4a5a7c], ecx
cmp ecx, ebx
je 0x43bfaf
cmp byte [ecx + 0x3d], 0
jne 0x43bfaf
mov eax, dword [ecx + 0x10]
cmp eax, 2
jl 0x43bfaf
cmp eax, 3
jg 0x43bfaf
mov eax, dword [ecx + 0xc]
cmp word [eax + 4], 0
jne 0x43bfaf
cmp word [eax + 0x14], 0
jne 0x43bfaf
lea esi, [edi - 1]
xor ebx, ebx
jmp case.0x43b56f.69
mov byte [0x4a5a7b], 1
jmp case.0x43b56f.69
lea ecx, [esi + 1]
push ecx
call fcn.00482c46
add esp, 4
cmp eax, 1
jge 0x43b680
mov eax, 1
dec eax
mov dword [0x4a5a80], eax
jmp case.0x43b56f.69
push 6
push str.Random
push esi
call fcn.0048214b
add esp, 0xc
test eax, eax
jne 0x43b6a6
mov byte [esp + 0xf], 1
add esi, 5
jmp case.0x43b56f.69
mov byte [0x4a5a7a], 1
jmp case.0x43b56f.69
mov byte [esp + 0x12], 1
mov dword [esp + 0x2c], ebx
jmp case.0x43b56f.69
mov byte [esp + 0x13], 1
jmp case.0x43b56f.69
mov byte [esp + 0x14], 1
inc esi
cmp byte [esi], 0
jne 0x43b550
mov edx, dword [ebp + 0xc]
mov cl, byte [edx]
test cl, cl
je 0x43bfaf
mov edx, dword [0x4a6c10]
mov al, byte [edx + 0x17]
mov dword [esp + 0x18], edx
test al, al
jne 0x43b6f4
mov eax, dword [edx + 0xc]
mov al, byte [eax + 0x17]
cmp al, 2
ja 0x43bfaf
mov eax, dword [ebp + 0xc]
mov ebx, 1
cmp cl, byte [esp + 0xe]
jne 0x43b70b
inc ebx
mov cl, byte [eax + 1]
inc eax
test cl, cl
jne 0x43b704
mov esi, dword [ebp + 0xc]
mov edi, eax
sub edi, esi
mov dword [esp + 0x28], edi
cmp byte [esp + 0x13], cl
jne 0x43b734
cmp eax, esi
jbe 0x43b734
mov cl, byte [eax - 1]
cmp cl, byte [esp + 0xe]
jne 0x43b734
dec ebx
jmp 0x43b759
cmp byte [esp + 0xe], 0xa
jne 0x43b75e
push 0xa
push esi
call fcn.004826b1
add esp, 8
test eax, eax
je 0x43b75e
cmp eax, esi
jbe 0x43b75e
cmp byte [eax - 1], 0xd
jne 0x43b75e
mov byte [esp + 0x11], 1
mov byte [esp + 0x10], 1
cmp ebx, 1
jne 0x43b77b
mov edx, dword [esp + 0x18]
push ebx
push 0
push edi
push esi
push edx
call fcn.004716d0
mov dword [esp + 0x1c], eax
jmp 0x43bfaf
cmp dword [0x4a5a7c], 0
jne 0x43b78b
cmp byte [esp + 0x11], 0
je 0x43b7f3
lea eax, [edi + 3]
push eax
call fcn.00481899
mov esi, eax
add esp, 4
mov dword [esp + 0x38], esi
test esi, esi
jne 0x43b7bd
mov ecx, dword [ebp + 8]
push 0x4957f9
push eax
push str.Out_of_memory.
call fcn.0042d070
mov dword [esp + 0x1c], eax
jmp 0x43bfaf
mov edx, dword [ebp + 0xc]
lea ecx, [edi + 1]
push ecx
push edx
push esi
call fcn.00489e50
add esp, 0xc
cmp byte [esp + 0x11], 0
mov dword [ebp + 0xc], esi
je 0x43b7f3
mov ax, word [0x49a690]
mov word [edi + esi], ax
mov cl, byte [0x49a692]
mov byte [edi + esi + 2], cl
add edi, 2
mov dword [esp + 0x28], edi
xor eax, eax
cmp byte [esp + 0xf], al
setne al
inc ebx
inc eax
add eax, eax
add eax, eax
imul ebx, eax
push ebx
mov dword [esp + 0x24], eax
call fcn.00481899
mov ebx, eax
add esp, 4
mov dword [esp + 0x34], ebx
test ebx, ebx
jne 0x43b838
mov ecx, dword [ebp + 8]
push 0x4957f9
push eax
push str.Out_of_memory.
call fcn.0042d070
mov dword [esp + 0x1c], eax
jmp 0x43bfaf
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 0x43b8c7
mov al, byte [esi]
cmp al, byte [esp + 0xe]
jne 0x43b8c0
add dword [esp + 0x1c], edx
cmp byte [esp + 0xf], 0
mov byte [esi], 0
je 0x43b8b7
sub dword [0x4a3394], edx
jne 0x43b879
call fcn.00411ff0
mov edx, 1
mov ecx, dword [0x4a5bbc]
mov eax, dword [ecx]
add ecx, 4
mov dword [0x4a5bbc], 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 0x43b851
cmp byte [esp + 0x10], 0
jne 0x43b924
add dword [esp + 0x1c], edx
cmp byte [esp + 0xf], 0
je 0x43b924
sub dword [0x4a3394], edx
jne 0x43b8e6
call fcn.00411ff0
mov ecx, dword [0x4a5bbc]
mov eax, dword [ecx]
add ecx, 4
mov dword [0x4a5bbc], 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 [0x4a5a7c], 0
je 0x43b93e
mov eax, dword [esp + 0x20]
mov ecx, dword [esp + 0x1c]
push 0x43b340
push eax
push ecx
jmp 0x43b972
cmp byte [esp + 0xf], 0
je 0x43b956
mov edx, dword [esp + 0x20]
mov eax, dword [esp + 0x1c]
push 0x43b330
push edx
push eax
jmp 0x43b972
cmp byte [esp + 0x14], 0
mov eax, 0x43b2c0
jne 0x43b967
mov eax, 0x43b190
mov ecx, dword [esp + 0x20]
mov edx, dword [esp + 0x1c]
push eax
push ecx
push edx
push ebx
call fcn.004828b0
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 0x43b9a2
mov eax, dword [esi + 0xc]
push 1
push 0
push edi
push 0
push eax
call fcn.004716d0
jmp 0x43ba0c
mov byte [esp + 0xf], 1
mov cl, 1
cmp edi, 0xffffffff
jne 0x43b9b8
xor cl, cl
xor ebx, ebx
mov dword [esp + 0x28], ebx
jmp 0x43b9bd
mov byte [esp + 0xf], 0
lea edi, [ebx + 1]
cmp al, 2
jne 0x43b9eb
cmp byte [esp + 0xf], 0
je 0x43b9d9
push 0x4957f9
mov eax, ebx
call fcn.00403e10
jmp 0x43ba0c
mov esi, 0x4a8cc4
call fcn.00403e90
neg eax
sbb eax, eax
neg eax
jmp 0x43ba0c
cmp edi, dword [0x4a33ac]
jbe 0x43ba22
cmp edi, dword [esi + 0x10]
jbe 0x43ba22
push 0x4957f9
push str.Memory_limit_reached__see_MaxMem_in_the_help_file_.
mov ecx, 0x4a8ce0
call fcn.0042d320
cmp eax, 1
je 0x43bc30
mov dword [esp + 0x1c], 0
jmp 0x43bfaf
cmp edi, 2
jae 0x43ba40
xor edx, edx
test cl, cl
setne dl
xor al, al
mov ecx, esi
add edx, 3
push edx
call fcn.00471bf0
jmp 0x43bc34
mov al, byte [esi + 0x15]
test al, 2
je 0x43ba56
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
cmp edi, edx
jbe 0x43ba8c
mov cl, byte [esi + 0x14]
cmp cl, 1
jbe 0x43babf
cmp cl, 2
je 0x43baf7
mov eax, dword [esp + 0x3c]
mov esi, 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
mov eax, dword [esi + 8]
je 0x43bc28
cmp eax, 0x4957f9
je 0x43bab0
push ebx
push 0x4957f9
push eax
call fcn.004822a0
add esp, 0xc
mov edx, dword [esi + 8]
mov byte [ebx + edx], 0
mov dword [esi + 0xc], ebx
jmp 0x43bc34
cmp edi, 0x40
ja 0x43baf7
cmp edi, 4
ja 0x43bad0
mov esi, 4
jmp 0x43bade
mov eax, 8
cmp eax, edi
sbb esi, esi
and esi, 0x38
add esi, eax
mov eax, esi
call fcn.0046c070
test eax, eax
je 0x43ba15
mov ecx, dword [esp + 0x18]
mov byte [ecx + 0x14], 1
jmp 0x43ba7e
cmp edi, 0x10
jae 0x43bb06
mov esi, 0x10
jmp 0x43bbb6
cmp edi, 0x104
jae 0x43bb18
mov esi, 0x104
jmp 0x43bbb6
cmp edi, 0x28000
jae 0x43bb5c
mov dword [esp + 0x30], edi
fild dword [esp + 0x30]
test edi, edi
jns 0x43bb32
fadd qword [0x49d658]
fmul qword [0x49d668]
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 0x43bbb6
cmp edi, 0x190000
jae 0x43bb6c
lea esi, [edi + 0x4000]
jmp 0x43bbb6
cmp edi, 0x640000
jae 0x43bbb0
mov dword [esp + 0x30], edi
fild dword [esp + 0x30]
test edi, edi
jns 0x43bb86
fadd qword [0x49d658]
fmul qword [0x49d660]
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 0x43bbb6
lea esi, [edi + 0x10000]
mov eax, dword [0x4a33ac]
cmp esi, eax
jbe 0x43bbc1
mov esi, eax
cmp cl, 2
jne 0x43bc00
test edx, edx
je 0x43bc00
mov ecx, dword [esp + 0x18]
mov edx, dword [ecx + 8]
push edx
mov bl, 1
call fcn.004816f8
add esp, 4
xor edi, edi
cmp esi, edi
jl 0x43bc04
push esi
call fcn.00481899
add esp, 4
cmp eax, edi
je 0x43bc04
mov ecx, dword [esp + 0x18]
mov ebx, dword [esp + 0x28]
mov byte [ecx + 0x14], 2
jmp 0x43ba7e
xor bl, bl
jmp 0x43bbdc
test bl, bl
je 0x43bc19
mov eax, dword [esp + 0x18]
mov dword [eax + 0x10], edi
mov dword [eax + 8], 0x4a857d
mov dword [eax + 0xc], edi
push 0x4957f9
push str.Out_of_memory.
jmp 0x43ba02
mov byte [eax], 0
mov dword [esi + 0xc], ebx
jmp 0x43bc34
mov esi, dword [esp + 0x18]
mov ecx, dword [esp + 0x1c]
mov edi, dword [esp + 0x34]
xor ebx, ebx
dec ecx
mov dword [esp + 0x30], ecx
mov dword [esp + 0x28], ebx
mov dword [esp + 0x24], edi
cmp byte [esi + 0x17], bl
jne 0x43bc59
mov edx, dword [esp + 0x18]
mov esi, dword [edx + 0xc]
jmp 0x43bc5d
mov esi, dword [esp + 0x18]
test byte [esi + 0x15], 8
je 0x43bc6a
mov eax, esi
call fcn.00401150
mov al, byte [esi + 0x17]
cmp al, 1
jne 0x43bc83
test byte [esi + 0x15], 4
je 0x43bc7e
mov eax, esi
call fcn.0042d890
mov esi, dword [esi + 8]
jmp 0x43bcdc
cmp al, 2
jne 0x43bcd7
mov eax, dword [0x4a8cd0]
test eax, eax
jne 0x43bcd3
mov esi, dword [sym.imp.USER32.dll_IsClipboardFormatAvailable]
push 1
call esi
test eax, eax
jne 0x43bcb8
push 0xf
call esi
test eax, eax
je 0x43bcaf
mov eax, 0x4957f4
mov esi, eax
jmp 0x43bcdc
mov eax, 0x4957f9
mov esi, eax
jmp 0x43bcdc
push 0x4a8cc4
xor ecx, ecx
call fcn.00403c70
cmp eax, 0xffffffff
mov eax, 0x4957f9
je 0x43bcd3
mov eax, dword [0x4a8ccc]
mov esi, eax
jmp 0x43bcdc
mov esi, 0x4a857d
mov dword [esp + 0x14], ebx
cmp dword [esp + 0x1c], ebx
jbe 0x43bdcb
lea ebx, [ebx]
cmp byte [esp + 0x12], 0
je 0x43be31
test ebx, ebx
je 0x43be31
cmp byte [0x4a5a7b], 0
je 0x43bdf6
cmp dword [0x4a5a80], 0
jne 0x43bdf6
mov eax, dword [esp + 0x24]
mov edi, dword [eax]
mov eax, edi
call fcn.0040c8e0
test al, al
je 0x43bd49
push 0x10
push 0
push edi
call fcn.0048340f
mov dword [esp + 0x4c], eax
mov dword [esp + 0x50], edx
fild qword [esp + 0x4c]
add esp, 0xc
jmp 0x43bd52
push edi
call fcn.00483511
add esp, 4
mov eax, ebx
fstp qword [esp + 0x50]
call fcn.0040c8e0
test al, al
je 0x43bd7c
push 0x10
push 0
push ebx
call fcn.0048340f
mov dword [esp + 0x54], eax
mov dword [esp + 0x58], edx
fild qword [esp + 0x54]
add esp, 0xc
jmp 0x43bd85
push ebx
call fcn.00483511
add esp, 4
fld qword [esp + 0x50]
fucompp
fnstsw ax
test ah, 0x44
jp 0x43be31
mov edi, dword [esp + 0x24]
mov ecx, dword [esp + 0x14]
inc dword [esp + 0x28]
cmp ecx, dword [esp + 0x30]
jne 0x43bdb0
cmp byte [esp + 0x10], 0
jne 0x43bdb0
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 0x43bcf0
mov edx, dword [esp + 0x34]
push edx
call fcn.004816f8
mov edi, dword [esp + 0x1c]
add esp, 4
cmp byte [esp + 0x11], 0
je 0x43be91
mov byte [esi - 2], 0
cmp byte [edi + 0x17], 0
jne 0x43be69
mov esi, dword [edi + 0xc]
jmp 0x43be6b
mov al, byte [0x4a5a84]
push ebx
test al, al
jne 0x43be0a
mov eax, dword [edi]
push eax
call fcn.004816e1
jmp 0x43be21
cmp al, 2
jne 0x43be19
mov ecx, dword [edi]
push ecx
call dword [sym.imp.KERNEL32.dll_lstrcmpiA]
jmp 0x43be24
mov eax, dword [edi]
push eax
call fcn.00481831
add esp, 8
test eax, eax
setne al
test al, al
je 0x43bd9a
mov edi, dword [esp + 0x24]
mov ecx, dword [edi]
mov al, byte [ecx]
test al, al
je 0x43be4a
lea ecx, [ecx]
inc ecx
mov byte [esi], al
mov al, byte [ecx]
inc esi
test al, al
jne 0x43be40
mov edx, dword [esp + 0x14]
cmp edx, dword [esp + 0x30]
jb 0x43be5b
cmp byte [esp + 0x10], 0
je 0x43be62
mov al, byte [esp + 0xe]
mov byte [esi], al
inc esi
mov ebx, dword [edi]
jmp 0x43bdb0
mov esi, edi
cmp byte [esi + 0x17], 1
jne 0x43be87
test byte [esi + 0x15], 8
je 0x43be7e
mov eax, esi
call fcn.00401150
add dword [esi + 0xc], 0xfffffffe
lea eax, [esi + 0xc]
jmp 0x43be94
mov eax, 0x4a9514
add dword [eax], 0xfffffffe
jmp 0x43be94
mov byte [esi], 0
cmp byte [esp + 0x12], 0
je 0x43bf75
cmp dword [esp + 0x28], 0
je 0x43bf75
cmp byte [edi + 0x17], 0
jne 0x43beb5
mov esi, dword [edi + 0xc]
jmp 0x43beb7
mov esi, edi
test byte [esi + 0x15], 8
je 0x43bec4
mov eax, esi
call fcn.00401150
mov al, byte [esi + 0x17]
cmp al, 1
jne 0x43bedd
test byte [esi + 0x15], 4
je 0x43bed8
mov eax, esi
call fcn.0042d890
mov eax, dword [esi + 8]
jmp 0x43bf30
cmp al, 2
jne 0x43bf2b
mov eax, dword [0x4a8cd0]
test eax, eax
jne 0x43bf30
mov esi, dword [sym.imp.USER32.dll_IsClipboardFormatAvailable]
push 1
call esi
test eax, eax
jne 0x43bf0e
push 0xf
call esi
test eax, eax
je 0x43bf07
mov eax, 0x4957f4
jmp 0x43bf30
mov eax, 0x4957f9
jmp 0x43bf30
push 0x4a8cc4
xor ecx, ecx
call fcn.00403c70
cmp eax, 0xffffffff
mov eax, 0x4957f9
je 0x43bf30
mov eax, dword [0x4a8ccc]
jmp 0x43bf30
mov eax, 0x4a857d
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x43bf33
mov esi, dword [esp + 0x18]
sub eax, edx
mov edi, eax
cmp byte [esi + 0x17], cl
jne 0x43bf4a
mov esi, dword [esi + 0xc]
cmp byte [esi + 0x17], 1
jne 0x43bf62
test byte [esi + 0x15], 8
je 0x43bf5d
mov eax, esi
call fcn.00401150
lea eax, [esi + 0xc]
jmp 0x43bf67
mov eax, 0x4a9514
mov dword [eax], edi
mov eax, dword [esp + 0x28]
mov edi, dword [esp + 0x18]
mov dword [esp + 0x2c], eax
cmp byte [edi + 0x17], 0
jne 0x43bf80
mov eax, dword [edi + 0xc]
jmp 0x43bf82
mov eax, edi
cmp byte [eax + 0x17], 2
jne 0x43bfa3
cmp dword [0x4a8cd0], 0
je 0x43bfa3
push 1
mov ecx, 0x4a8cc4
call fcn.00403f00
mov dword [esp + 0x1c], eax
jmp 0x43bfaf
and byte [eax + 0x15], 0x86
mov dword [esp + 0x1c], 1
mov edi, dword [esp + 0x2c]
cmp edi, 0xffffffff
je 0x43c024
mov esi, dword [0x4a7474]
cmp byte [esi + 0x17], 0
jne 0x43bfc7
mov esi, dword [esi + 0xc]
mov al, byte [esi + 0x15]
test al, 2
je 0x43bfdd
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 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 0x43bfff
mov eax, esi
call fcn.00401150
and byte [esi + 0x15], 0x8f
jmp 0x43c024
cmp dword [0x4a6dcc], 0
je 0x43c00c
test al, 0x10
jne 0x43c019
cmp dword [0x4a6dd0], 0
je 0x43c024
test al, 0x20
je 0x43c024
test al, 8
je 0x43c024
mov eax, esi
call fcn.00401150
mov eax, dword [esp + 0x38]
test eax, eax
je 0x43c04b
push eax
call fcn.004816f8
mov eax, dword [esp + 0x40]
mov dword [0x4a5a7c], eax
mov eax, dword [esp + 0x20]
add esp, 4
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 8
mov ecx, dword [esp + 0x3c]
mov eax, dword [esp + 0x1c]
pop edi
pop esi
mov dword [0x4a5a7c], ecx
pop ebx
mov esp, ebp
pop ebp
ret 8