Function at 0x403dd0
Capabilities:
Encode data using base64

Disassembly:
sub esp, 0x1c
mov eax, dword [esp + 0x24]
push ebx
mov ebx, dword [esp + 0x24]
push ebp
push esi
push edi
imul esi, dword [ebx + 0x18], 0x64
mov edi, dword [eax]
add esi, 0x519850
mov dword [esp + 0x18], esi
cmp byte [esi + 0x10], 0
movzx ebp, byte [esi + 4]
je 0x403e0a
push eax
lea eax, [ebx + 0x1c]
push eax
call fcn.00403230
push 0x508580
jmp 0x403e1c
mov eax, dword [eax + 0x24]
test eax, eax
je 0x403e25
push 0x5082f5
push eax
push 0x508504
push edi
call fcn.00401010
add esp, 0x10
push dword [esi]
push str.__s__
push edi
call fcn.00401010
add esp, 0xc
xor esi, esi
test ebp, ebp
je 0x403e76
add ebx, 0x54
nop
test esi, esi
je 0x403e52
push 0x50855c
push edi
call fcn.00401010
add esp, 8
push esi
push dword [esp + 0x34]
call fcn.004096d0
push eax
push dword [esp + 0x40]
push ebx
call fcn.00406320
inc esi
add esp, 0x14
add ebx, 0x10
cmp esi, ebp
jb 0x403e40
mov ebx, dword [esp + 0x30]
push 0x5089b4
push edi
call fcn.00401010
mov ecx, dword [esp + 0x20]
xor edx, edx
add esp, 8
mov dword [esp + 0x1c], edx
cmp byte [ecx + 0x14], dl
jbe 0x403f58
mov esi, 0x5082f5
nop dword [eax]
movzx ebp, byte [ecx + edx + 0x15]
test edx, edx
je 0x403ebb
push 0x50855c
push edi
call fcn.00401010
mov ecx, dword [esp + 0x20]
add esp, 8
lea eax, [ebp - 1]
cmp eax, 0x3d
ja case.0x403ece.2
movzx eax, byte [eax + 0x404e5c]
jmp dword [eax*4 + 0x404dfc]
imul eax, dword [ebx + 0x18], 0x64
push str.wrmask
push edi
movzx eax, byte [eax + 0x51986e]
mov ebx, dword [ebx + eax*4 + 0x30]
call fcn.00401010
mov ebp, dword [esp + 0x38]
add esp, 8
xor esi, esi
mov dl, byte [ebp + 0x30]
test dl, dl
je 0x403f38
nop
mov eax, ebx
mov ecx, esi
shr eax, cl
test al, 1
je 0x403f2d
cmp dl, 4
mov ecx, str.xyzw
mov eax, str.abcdefghijklmnop
cmovbe eax, ecx
movsx eax, byte [eax + esi]
push eax
push 0x5085c0
push edi
call fcn.00401010
add esp, 0xc
mov dl, byte [ebp + 0x30]
inc esi
movzx eax, dl
cmp esi, eax
jb 0x403f00
mov ebx, ebp
mov esi, 0x5082f5
mov ecx, dword [esp + 0x18]
mov edx, dword [esp + 0x1c]
inc edx
mov dword [esp + 0x1c], edx
movzx eax, byte [ecx + 0x14]
cmp edx, eax
jb 0x403ea0
push 0x508574
push edi
call fcn.00401010
mov eax, dword [esp + 0x3c]
add esp, 8
mov edx, dword [eax + 4]
test edx, edx
je 0x404dd5
mov ebx, dword [ebx + 0x18]
cmp ebx, 0x141
jg 0x404d2e
je 0x404d27
mov eax, ebx
sub eax, 0x11c
je 0x404d27
sub eax, 4
je 0x404d27
sub eax, 0x1c
je 0x404d45
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x1c
ret
imul eax, dword [ebx + 0x18], 0x64
movzx eax, byte [eax + 0x519878]
imul eax, dword [ebx + eax*4 + 0x30], 0x64
push dword [eax + 0x50b410]
push str.reduction_op_s
push edi
call fcn.00401010
add esp, 0xc
jmp 0x403f3f
imul eax, dword [ebx + 0x18], 0x64
push 0x5089d0
push edi
movzx eax, byte [eax + 0x51989e]
mov esi, dword [ebx + eax*4 + 0x30]
call fcn.00401010
add esp, 8
cmp esi, 0xf
ja case.default.0x404000
jmp dword [esi*4 + 0x404e9c]
push str.iadd
push edi
call fcn.00401010
add esp, 8
jmp case.default.0x404000
push str.imin
push edi
call fcn.00401010
add esp, 8
jmp case.default.0x404000
push str.umin
push edi
call fcn.00401010
add esp, 8
jmp case.default.0x404000
push str.imax
push edi
call fcn.00401010
add esp, 8
jmp case.default.0x404000
push str.umax
push edi
call fcn.00401010
add esp, 8
jmp case.default.0x404000
push str.iand
push edi
call fcn.00401010
add esp, 8
jmp case.default.0x404000
push 0x508a0c
push edi
call fcn.00401010
add esp, 8
jmp case.default.0x404000
push str.ixor
push edi
call fcn.00401010
add esp, 8
jmp case.default.0x404000
push str.xchg
push edi
call fcn.00401010
add esp, 8
jmp case.default.0x404000
push str.fadd
push edi
call fcn.00401010
add esp, 8
jmp case.default.0x404000
push str.fmin
push edi
call fcn.00401010
add esp, 8
jmp case.default.0x404000
push str.fmax
push edi
call fcn.00401010
add esp, 8
jmp case.default.0x404000
push str.cmpxchg
push edi
call fcn.00401010
add esp, 8
jmp case.default.0x404000
push str.fcmpxchg
push edi
call fcn.00401010
add esp, 8
jmp case.default.0x404000
push str.inc_wrap
push edi
call fcn.00401010
add esp, 8
jmp case.default.0x404000
push str.dec_wrap
push edi
call fcn.00401010
add esp, 8
jmp case.default.0x404000
imul eax, dword [ebx + 0x18], 0x64
movzx eax, byte [eax + 0x51987b]
mov eax, dword [ebx + eax*4 + 0x30]
push dword [eax*4 + 0x8860cc]
push str.image_dim_s
push edi
call fcn.00401010
add esp, 0xc
jmp 0x403f3f
imul eax, dword [ebx + 0x18], 0x64
mov ecx, str.true
movzx eax, byte [eax + 0x51987c]
cmp dword [ebx + eax*4 + 0x30], 0
mov eax, str.false
cmove ecx, eax
push ecx
push str.image_array_s
push edi
call fcn.00401010
add esp, 0xc
jmp 0x403f3f
imul eax, dword [ebx + 0x18], 0x64
movzx eax, byte [eax + 0x51987d]
push dword [ebx + eax*4 + 0x30]
call fcn.004624a0
add esp, 4
test eax, eax
jne 0x4041c5
mov eax, 0x5084d0
push eax
push str.format_s
push edi
call fcn.00401010
add esp, 0xc
jmp 0x403f3f
mov eax, dword [eax + 8]
push eax
push str.format_s
push edi
call fcn.00401010
add esp, 0xc
jmp 0x403f3f
imul eax, dword [ebx + 0x18], 0x64
movzx eax, byte [eax + 0x519883]
mov eax, dword [ebx + eax*4 + 0x30]
cmp eax, 0x3b9ce510
jg 0x404306
je 0x4042ed
cmp eax, 0xa
ja case.default.0x404205
jmp dword [eax*4 + 0x404edc]
mov eax, 0x508904
push eax
push str.desc_type_s
push edi
call fcn.00401010
add esp, 0xc
jmp 0x403f3f
mov eax, str.texturesampler
push eax
push str.desc_type_s
push edi
call fcn.00401010
add esp, 0xc
jmp 0x403f3f
mov eax, str.texture
push eax
push str.desc_type_s
push edi
call fcn.00401010
add esp, 0xc
jmp 0x403f3f
mov eax, str.image
push eax
push str.desc_type_s
push edi
call fcn.00401010
add esp, 0xc
jmp 0x403f3f
mov eax, str.texture_buffer
push eax
push str.desc_type_s
push edi
call fcn.00401010
add esp, 0xc
jmp 0x403f3f
mov eax, str.image_buffer
push eax
push str.desc_type_s
push edi
call fcn.00401010
add esp, 0xc
jmp 0x403f3f
mov eax, 0x508944
push eax
push str.desc_type_s
push edi
call fcn.00401010
add esp, 0xc
jmp 0x403f3f
mov eax, str.SSBO
push eax
push str.desc_type_s
push edi
call fcn.00401010
add esp, 0xc
jmp 0x403f3f
mov eax, str.input_att
push eax
push str.desc_type_s
push edi
call fcn.00401010
add esp, 0xc
jmp 0x403f3f
mov eax, str.inline_UBO
push eax
push str.desc_type_s
push edi
call fcn.00401010
add esp, 0xc
jmp 0x403f3f
cmp eax, 0x3b9d13f0
je 0x404326
mov eax, str.unknown
push eax
push str.desc_type_s
push edi
call fcn.00401010
add esp, 0xc
jmp 0x403f3f
mov eax, str.accel_struct
push eax
push str.desc_type_s
push edi
call fcn.00401010
add esp, 0xc
jmp 0x403f3f
push 0x508aa0
push edi
call fcn.00401010
imul eax, dword [ebx + 0x18], 0x64
mov ebp, dword [esp + 0x3c]
push ebp
movzx eax, byte [eax + 0x519884]
push dword [ebx + eax*4 + 0x30]
call fcn.004022a0
add esp, 0x10
jmp 0x403f3f
push 0x508aac
push edi
call fcn.00401010
imul eax, dword [ebx + 0x18], 0x64
push dword [esp + 0x3c]
movzx eax, byte [eax + 0x519885]
push dword [ebx + eax*4 + 0x30]
call fcn.004022a0
add esp, 0x10
jmp 0x403f3f
push 0x508ab8
push edi
call fcn.00401010
mov ecx, dword [ebx + 0x18]
add esp, 8
imul eax, ecx, 0x64
movzx eax, byte [eax + 0x519886]
mov ebx, dword [ebx + eax*4 + 0x30]
cmp ecx, 0x200
jne 0x4043e9
xor esi, esi
nop
mov ecx, esi
mov eax, ebx
shr eax, cl
and eax, 3
push eax
push 0x508ac8
push edi
call fcn.00401010
add esi, 2
add esp, 0xc
cmp esi, 8
jb 0x4043c0
mov ebx, dword [esp + 0x30]
jmp case.default.0x404000
cmp ecx, 0x1f1
jne 0x40441e
mov eax, ebx
shr eax, 0xa
and eax, 0x1f
push eax
mov eax, ebx
and ebx, 0x1f
shr eax, 5
and eax, 0x1f
push eax
push ebx
push str.__id___d____d____d
push edi
call fcn.00401010
mov ebx, dword [esp + 0x44]
add esp, 0x14
jmp 0x403f3f
push ebx
push 0x508ac8
push edi
call fcn.00401010
add esp, 0xc
mov ebx, dword [esp + 0x30]
jmp 0x403f3f
imul eax, dword [ebx + 0x18], 0x64
push str.mem_semantics
push edi
movzx eax, byte [eax + 0x51988f]
mov ebx, dword [ebx + eax*4 + 0x30]
call fcn.00401010
mov eax, ebx
add esp, 8
and eax, 3
sub eax, 0
je 0x40447c
sub eax, 1
je 0x404475
sub eax, 1
je 0x40446e
mov eax, str.ACQREL
jmp 0x404481
mov eax, 0x508b00
jmp 0x404481
mov eax, 0x508afc
jmp 0x404481
mov eax, str.NONE
push eax
push edi
call fcn.00401010
add esp, 8
test bl, 4
je 0x40449e
push str.AVAILABLE
push edi
call fcn.00401010
add esp, 8
test bl, 8
je 0x40442d
push str.VISIBLE
push edi
call fcn.00401010
mov ebx, dword [esp + 0x38]
add esp, 8
jmp 0x403f3f
push str.mem_modes
push edi
call fcn.00401010
imul eax, dword [ebx + 0x18], 0x64
add esp, 8
movzx eax, byte [eax + 0x519890]
mov esi, dword [ebx + eax*4 + 0x30]
test esi, esi
jne 0x4044eb
push edi
push 0x30
call fcn.004ed94c
add esp, 8
jmp case.default.0x404000
mov ebp, 0x5082f5
bsf ecx, esi
je 0x4044f8
inc ecx
jmp 0x4044fa
xor ecx, ecx
dec ecx
mov eax, 0x5088bc
btc esi, ecx
test esi, esi
cmove eax, ebp
push eax
mov eax, 1
shl eax, cl
push 1
push eax
call fcn.00401920
add esp, 8
push eax
push 0x508730
push edi
call fcn.00401010
add esp, 0x10
test esi, esi
jne 0x4044f0
jmp case.default.0x404000
imul eax, dword [ebx + 0x18], 0x64
cmp ebp, 0x24
jne 0x404545
movzx eax, byte [eax + 0x519891]
jmp 0x40454c
movzx eax, byte [eax + 0x519892]
mov eax, dword [ebx + eax*4 + 0x30]
push eax
call fcn.00460da0
push 6
mov esi, eax
push str.SCOPE_
push esi
call fcn.004edb90
test eax, eax
lea ecx, [esi + 6]
cmovne ecx, esi
push ecx
push dword [ebp*4 + 0x886110]
push str._s_s
push edi
call fcn.00401010
add esp, 0x20
jmp case.default.0x404000
mov ecx, dword [ebx + 0x18]
mov edx, 0x3c000
imul eax, ecx, 0x64
movzx esi, byte [eax + 0x519893]
mov esi, dword [ebx + esi*4 + 0x30]
mov dword [esp + 0x14], esi
cmp ecx, 0x13c
jg 0x4045c5
je case.0x4045da.562
sub ecx, 0xde
cmp ecx, 0x42
ja case.0x4045da.322
movzx eax, byte [ecx + 0x404f10]
jmp dword [eax*4 + 0x404f08]
sub ecx, 0x141
cmp ecx, 0xf3
ja case.0x4045da.322
movzx eax, byte [ecx + 0x404f60]
jmp dword [eax*4 + 0x404f54]
mov edx, 4
jmp case.0x4045da.322
mov edx, 8
mov ebp, dword [esp + 0x34]
lea eax, [esp + 0x28]
push eax
push edx
mov eax, dword [ebp + 4]
movsx eax, byte [eax + 0x38]
push eax
mov eax, esi
and eax, 0x7f
push eax
call fcn.00401790
shr esi, 7
and esi, 0x3f
push esi
push eax
push str.io_location_s_slots_u
push edi
call fcn.00401010
mov eax, dword [esp + 0x34]
add esp, 0x20
test eax, 0x2000
je 0x40463d
push str._dualsrc
push edi
call fcn.00401010
mov eax, dword [esp + 0x1c]
add esp, 8
test eax, 0x4000
je 0x404656
push str._fbfetch
push edi
call fcn.00401010
mov eax, dword [esp + 0x1c]
add esp, 8
test eax, 0x1000000
je 0x40466f
push str._perview
push edi
call fcn.00401010
mov eax, dword [esp + 0x1c]
add esp, 8
test eax, 0x800000
je 0x404688
push str._mediump
push edi
call fcn.00401010
mov eax, dword [esp + 0x1c]
add esp, 8
test eax, 0x2000000
je 0x4046a1
push str._high_16bits
push edi
call fcn.00401010
mov eax, dword [esp + 0x1c]
add esp, 8
test eax, 0x8000000
je 0x4046ba
push str._high_dvec2
push edi
call fcn.00401010
mov eax, dword [esp + 0x1c]
add esp, 8
test eax, 0x10000000
je 0x4046d3
push str._no_varying
push edi
call fcn.00401010
mov eax, dword [esp + 0x1c]
add esp, 8
test eax, 0x20000000
je 0x4046ec
push str._no_sysval_output
push edi
call fcn.00401010
mov eax, dword [esp + 0x1c]
add esp, 8
mov ecx, dword [ebp + 4]
test ecx, ecx
je case.default.0x404000
cmp byte [ecx + 0x38], 3
jne case.default.0x404000
mov ecx, dword [ebx + 0x18]
cmp ecx, 0x232
je 0x404720
cmp ecx, 0x233
je 0x404720
cmp ecx, 0x234
jne case.default.0x404000
shr eax, 0xf
push str._gs_streams_
push edi
movzx ebp, al
call fcn.00401010
add esp, 8
xor esi, esi
xor ebx, ebx
mov ecx, ebx
mov eax, ebp
shr eax, cl
mov ecx, 0x5082f5
and eax, 3
test esi, esi
push eax
movsx eax, byte [esi + str.xyzw]
push eax
mov eax, 0x50859c
cmove eax, ecx
push eax
push str._s_c_u
push edi
call fcn.00401010
add ebx, 2
add esp, 0x14
inc esi
cmp ebx, 8
jb 0x404738
push 0x508574
push edi
call fcn.00401010
mov ebx, dword [esp + 0x38]
add esp, 8
jmp case.default.0x404000
cmp ebp, 0x27
mov ecx, 0x508bd4
mov eax, esi
cmovne eax, ecx
push eax
push str.xfb_s_
push edi
call fcn.00401010
xor ecx, ecx
xor eax, eax
add esp, 0xc
mov dword [esp + 0x14], ecx
cmp ebp, 0x27
mov ebx, 2
mov dl, 1
cmove ebx, eax
nop dword [eax]
mov ebp, dword [esp + 0x30]
imul eax, dword [ebp + 0x18], 0x64
cmp ebx, 2
jae 0x4047d6
movzx eax, byte [eax + 0x519894]
jmp 0x4047dd
movzx eax, byte [eax + 0x519895]
mov eax, dword [ebp + eax*4 + 0x30]
lea ebp, [esp + 0x20]
mov dword [esp + 0x20], eax
lea ebp, [ebp + ecx*2]
mov cl, byte [ebp]
mov al, cl
mov byte [esp + 0x12], cl
and al, 0xf
mov byte [esp + 0x13], al
je 0x404870
test dl, dl
jne 0x404818
push 0x50855c
push edi
call fcn.00401010
mov al, byte [esp + 0x1b]
add esp, 8
mov cl, byte [esp + 0x12]
mov byte [esp + 0x13], 0
cmp al, 1
jbe 0x40483e
movzx esi, cl
mov eax, esi
and eax, 0xf
dec eax
add eax, ebx
push eax
push ebx
push str.components_u.._u
push edi
call fcn.00401010
add esp, 0x10
jmp 0x404852
push ebx
push str.component_u
push edi
call fcn.00401010
movzx esi, byte [esp + 0x1e]
add esp, 0xc
movzx eax, byte [ebp + 1]
shl eax, 2
push eax
shr esi, 4
push esi
push str._buffer_u_offset_u
push edi
call fcn.00401010
mov dl, byte [esp + 0x23]
add esp, 0x10
mov ecx, dword [esp + 0x14]
inc ebx
inc ecx
mov dword [esp + 0x14], ecx
cmp ecx, 2
jb 0x4047c0
jmp 0x404771
push 0x508c1c
push edi
call fcn.00401010
imul eax, dword [ebx + 0x18], 0x64
add esp, 8
movzx eax, byte [eax + 0x519898]
mov eax, dword [ebx + eax*4 + 0x30]
cmp eax, 4
ja case.default.0x40494b
jmp dword [eax*4 + 0x405054]
mov eax, str.undef
push eax
push edi
call fcn.00401010
add esp, 8
jmp 0x403f3f
mov eax, str.rtne
push eax
push edi
call fcn.00401010
add esp, 8
jmp 0x403f3f
mov eax, 0x508c3c
push eax
push edi
call fcn.00401010
add esp, 8
jmp 0x403f3f
mov eax, 0x508c40
push eax
push edi
call fcn.00401010
add esp, 8
jmp 0x403f3f
mov eax, 0x508c44
push eax
push edi
call fcn.00401010
add esp, 8
jmp 0x403f3f
mov eax, str.unknown
push eax
push edi
call fcn.00401010
add esp, 8
jmp 0x403f3f
push 0x508c48
push edi
call fcn.00401010
imul eax, dword [ebx + 0x18], 0x64
add esp, 8
movzx eax, byte [eax + 0x519896]
mov eax, dword [ebx + eax*4 + 0x30]
cmp eax, 0x11
ja case.default.0x40494b
jmp dword [eax*4 + 0x405068]
mov eax, str.intersection_type
push eax
push edi
call fcn.00401010
add esp, 8
jmp 0x403f3f
mov eax, str.intersection_t
push eax
push edi
call fcn.00401010
add esp, 8
jmp 0x403f3f
mov eax, str.intersection_instance_custom_index
push eax
push edi
call fcn.00401010
add esp, 8
jmp 0x403f3f
mov eax, str.intersection_instance_id
push eax
push edi
call fcn.00401010
add esp, 8
jmp 0x403f3f
mov eax, str.intersection_instance_sbt_index
push eax
push edi
call fcn.00401010
add esp, 8
jmp 0x403f3f
mov eax, str.intersection_geometry_index
push eax
push edi
call fcn.00401010
add esp, 8
jmp 0x403f3f
mov eax, str.intersection_primitive_index
push eax
push edi
call fcn.00401010
add esp, 8
jmp 0x403f3f
mov eax, str.intersection_barycentrics
push eax
push edi
call fcn.00401010
add esp, 8
jmp 0x403f3f
mov eax, str.intersection_front_face
push eax
push edi
call fcn.00401010
add esp, 8
jmp 0x403f3f
mov eax, str.intersection_object_ray_direction
push eax
push edi
call fcn.00401010
add esp, 8
jmp 0x403f3f
mov eax, str.intersection_object_ray_origin
push eax
push edi
call fcn.00401010
add esp, 8
jmp 0x403f3f
mov eax, str.intersection_object_to_world
push eax
push edi
call fcn.00401010
add esp, 8
jmp 0x403f3f
mov eax, str.intersection_world_to_object
push eax
push edi
call fcn.00401010
add esp, 8
jmp 0x403f3f
mov eax, str.intersection_candidate_aabb_opaque
push eax
push edi
call fcn.00401010
add esp, 8
jmp 0x403f3f
mov eax, str.tmin
push eax
push edi
call fcn.00401010
add esp, 8
jmp 0x403f3f
mov eax, str.flags
push eax
push edi
call fcn.00401010
add esp, 8
jmp 0x403f3f
mov eax, str.world_ray_direction
push eax
push edi
call fcn.00401010
add esp, 8
jmp 0x403f3f
mov eax, str.world_ray_origin
push eax
push edi
call fcn.00401010
add esp, 8
jmp 0x403f3f
push 0x508e30
push edi
call fcn.00401010
imul eax, dword [ebx + 0x18], 0x64
add esp, 8
movzx eax, byte [eax + 0x5198a0]
mov esi, dword [ebx + eax*4 + 0x30]
test esi, esi
jne 0x404aeb
push edi
push 0x30
call fcn.004ed94c
add esp, 8
jmp case.default.0x404000
mov ebx, 0x5082f5
bsf ecx, esi
je 0x404af8
inc ecx
jmp 0x404afa
xor ecx, ecx
dec ecx
mov eax, 1
shl eax, cl
btc esi, ecx
dec eax
cmp eax, 7
ja case.0x404b0b.3
jmp dword [eax*4 + 0x4050b0]
mov eax, str.bindless
jmp 0x404b33
mov eax, str.pushable
jmp 0x404b33
mov eax, 0x508904
jmp 0x404b33
mov eax, str.non_uniform
jmp 0x404b33
mov eax, str.unknown
push eax
push edi
call fcn.00401010
test esi, esi
mov eax, 0x5088bc
cmove eax, ebx
push eax
push 0x508570
push edi
call fcn.00401010
add esp, 0x14
test esi, esi
jne 0x404af0
mov ebx, dword [esp + 0x30]
jmp case.default.0x404000
push 0x508e64
push edi
call fcn.00401010
imul eax, dword [ebx + 0x18], 0x64
push 0x5088bc
push dword [esp + 0x40]
movzx eax, byte [eax + 0x51987e]
push dword [ebx + eax*4 + 0x30]
call fcn.00402060
add esp, 0x14
jmp 0x403f3f
push 0x508e6c
push edi
call fcn.00401010
imul eax, dword [ebx + 0x18], 0x64
add esp, 8
movzx eax, byte [eax + 0x5198a9]
mov eax, dword [ebx + eax*4 + 0x30]
sub eax, 1
je 0x404bdf
sub eax, 1
je 0x404bcb
mov eax, str.unknown
push eax
push edi
call fcn.00401010
add esp, 8
jmp 0x403f3f
mov eax, str.row_major
push eax
push edi
call fcn.00401010
add esp, 8
jmp 0x403f3f
mov eax, str.col_major
push eax
push edi
call fcn.00401010
add esp, 8
jmp 0x403f3f
imul eax, dword [ebx + 0x18], 0x64
movzx eax, byte [eax + 0x5198a8]
mov eax, dword [ebx + eax*4 + 0x30]
mov dword [esp + 0x24], eax
lea eax, [esp + 0x24]
push eax
call fcn.0045d900
push eax
call fcn.0045ee40
push eax
push 0x508570
push edi
call fcn.00401010
add esp, 0x14
jmp 0x403f3f
push str.cmat_signed
push edi
call fcn.00401010
imul eax, dword [ebx + 0x18], 0x64
add esp, 8
movzx eax, byte [eax + 0x5198aa]
mov esi, dword [ebx + eax*4 + 0x30]
test esi, esi
jne 0x404c5b
push edi
push 0x30
call fcn.004ed94c
add esp, 8
jmp case.default.0x404000
mov ebx, 0x5082f5
bsf ecx, esi
je 0x404c68
inc ecx
jmp 0x404c6a
xor ecx, ecx
dec ecx
mov eax, 1
shl eax, cl
btc esi, ecx
dec eax
cmp eax, 7
ja case.0x404c7b.3
jmp dword [eax*4 + 0x4050d0]
push edi
push 0x41
call fcn.004ed94c
jmp 0x404cb2
push edi
push 0x42
call fcn.004ed94c
jmp 0x404cb2
push edi
push 0x43
call fcn.004ed94c
jmp 0x404cb2
push str.Result
jmp 0x404cac
push str.unknown
push edi
call fcn.00401010
add esp, 8
mov eax, 0x5088bc
test esi, esi
cmove eax, ebx
push eax
push 0x508570
push edi
call fcn.00401010
add esp, 0xc
test esi, esi
jne 0x404c60
mov ebx, dword [esp + 0x30]
jmp case.default.0x404000
imul eax, dword [ebx + 0x18], 0x64
movzx eax, byte [eax + 0x5198ab]
imul eax, dword [ebx + eax*4 + 0x30], 0x64
push dword [eax + 0x50b410]
push str.alu_op_s
push edi
call fcn.00401010
add esp, 0xc
jmp 0x403f3f
movzx eax, byte [ecx + ebp + 0x1d]
push dword [ebx + eax*4 + 0x30]
push dword [ebp*4 + 0x886110]
push str._s_d
push edi
call fcn.00401010
add esp, 0x10
jmp 0x403f3f
mov eax, 4
jmp 0x404d51
mov eax, ebx
sub eax, 0x1d2
je 0x404d4c
sub eax, 0x60
je 0x404d45
sub eax, 2
jne 0x404dd5
mov eax, 8
jmp 0x404d51
mov eax, 2
mov edx, dword [edx + 4]
xor ecx, ecx
mov dword [esp + 0x34], eax
cmp dword [edx], ecx
cmove edx, ecx
test edx, edx
je 0x404dd5
mov esi, dword [esp + 0x30]
test dword [edx + 0x10], eax
je 0x404de3
mov eax, dword [edx + 0x2c]
imul ebp, ebx, 0x64
movzx ecx, byte [ebp + 0x51986d]
cmp eax, dword [esi + ecx*4 + 0x30]
jne 0x404ddf
cmp ebx, 0x1d2
je 0x404dbf
mov esi, dword [edx + 0x14]
movzx eax, byte [ebp + 0x519875]
mov ecx, dword [esp + 0x30]
shr esi, 3
and esi, 3
mov ebp, dword [ecx + eax*4 + 0x30]
cmp ebp, esi
jb 0x404ddd
mov eax, dword [edx + 8]
movzx ecx, byte [eax + 0x11]
movzx eax, byte [eax + 0x10]
imul ecx, eax
add ecx, esi
mov esi, dword [esp + 0x30]
cmp ebp, ecx
jae 0x404ddf
mov eax, dword [edx + 0xc]
test eax, eax
je 0x404ddf
push eax
push str.______s
push edi
call fcn.00401010
add esp, 0xc
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x1c
ret
mov esi, ecx
mov eax, dword [esp + 0x34]
mov edx, dword [edx]
cmp dword [edx], 0
je 0x404dd5
test edx, edx
jne 0x404d67
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x1c
ret