Function at 0x46aebb
Capabilities:
Inspect section memory permissions

Disassembly:
sub esp, 0x1b8
push ebx
push ebp
push esi
push edi
xor ebp, ebp
push 0x80
lea eax, [esp + 0x4c]
push ebp
push eax
mov dword [esp + 0x20], 0xffffffff
mov dword [esp + 0x4c], ebp
mov dword [esp + 0x34], ebp
call fcn.00481677
mov ecx, dword [esp + 0x1dc]
mov al, byte [ecx]
add esp, 0xc
test al, al
mov dword [esp + 0x20], ebp
je 0x46b8a0
mov edx, dword [esp + 0x1d0]
mov al, byte [edx + ebp]
inc ebp
cmp al, 0x25
mov dword [esp + 0x1c], ebp
jne 0x46b88f
mov ecx, edx
cmp byte [ecx + ebp], 0x25
jne 0x46ae20
inc ebp
jmp 0x46b88f
mov esi, dword [esp + 0x1d0]
xor ebx, ebx
lea edi, [esp + 0x1c]
mov dword [esp + 0x2c], ebx
call fcn.0046ad27
xor ecx, ecx
cmp eax, 0xffffffff
setne cl
mov dword [esp + 0x10], eax
cmp ecx, ebx
mov dword [esp + 0x38], ecx
jne 0x46ae52
mov eax, dword [esp + 0x20]
mov dword [esp + 0x10], eax
cmp eax, 0x40
jge 0x46b8d1
cmp eax, dword [esp + 0x14]
jle 0x46ae65
mov dword [esp + 0x14], eax
mov ebp, dword [esp + 0x1c]
mov edx, dword [esp + 0x1d0]
mov cl, byte [edx + ebp]
or eax, 0xffffffff
mov dword [esp + 0x24], eax
mov dword [esp + 0x18], eax
mov dword [esp + 0x34], eax
mov al, cl
mov dword [esp + 0x30], 0
call fcn.0046ac57
test eax, eax
je 0x46afd3
movsx eax, cl
inc ebp
add eax, 0xffffffe0
cmp eax, 0x5a
mov dword [esp + 0x1c], ebp
ja case.0x46b0e1.61
movzx edx, byte [eax + 0x46bb7f]
jmp dword [edx*4 + 0x46bb1f]
or ebx, 2
jmp case.0x46aeb4.90
or ebx, 4
jmp case.0x46aeb4.90
and ebx, 0xffffdfff
or ebx, 8
jmp case.0x46aeb4.90
or ebx, 0x10
jmp case.0x46aeb4.90
mov eax, dword [esp + 0x2c]
test eax, eax
jne 0x46b0e8
mov eax, dword [esp + 0x1d0]
lea edx, [eax + ebp]
mov al, byte [edx]
cmp al, 0x2e
mov dword [esp + 0x2c], 1
je case.0x46aeb4.90
or ebx, 0x40000
cmp al, 0x2a
je 0x46af36
cmp al, 0x40
je 0x46af36
mov eax, 0xa
lea ecx, [esp + 0x3c]
call fcn.0046ac47
mov ebp, dword [esp + 0x3c]
mov dword [esp + 0x24], eax
sub ebp, dword [esp + 0x1d0]
jmp case.0x46aeb4.90
mov esi, dword [esp + 0x1d0]
inc ebp
lea edi, [esp + 0x1c]
mov dword [esp + 0x1c], ebp
or ebx, 0x80000
call fcn.0046ad27
mov dword [esp + 0x24], eax
cmp eax, 0xffffffff
mov eax, dword [esp + 0x38]
jne 0x46af80
mov ecx, dword [esp + 0x20]
inc ecx
test eax, eax
mov dword [esp + 0x20], ecx
je 0x46af71
mov dword [esp + 0x24], ecx
jmp 0x46af9f
mov eax, dword [esp + 0x10]
mov dword [esp + 0x24], eax
inc eax
mov dword [esp + 0x10], eax
jmp 0x46af9f
test eax, eax
jne 0x46af8d
mov edx, dword [esp + 0x24]
inc edx
mov dword [esp + 0x10], edx
mov eax, dword [esp + 0x30]
cmp eax, dword [esp + 0x14]
jle 0x46af9f
mov ecx, dword [esp + 0x24]
mov dword [esp + 0x14], ecx
mov edx, dword [esp + 0x14]
mov eax, dword [esp + 0x10]
cmp eax, edx
jle 0x46afaf
mov dword [esp + 0x14], eax
mov ebp, dword [esp + 0x1c]
mov ecx, dword [esp + 0x1d0]
mov cl, byte [ecx + ebp]
mov al, cl
call fcn.0046ac57
test eax, eax
jne 0x46ae99
mov edx, dword [esp + 0x1d0]
test ebx, 0x20000
mov esi, dword [esp + 0x1d4]
mov eax, dword [esp + 0x28]
je 0x46b016
mov edi, dword [esp + 0x30]
inc word [esp + edi*2 + 0x48]
mov ecx, eax
imul ecx, ecx, 0x168
add ecx, esi
mov dword [esp + edi*4 + 0xc8], eax
mov dword [esp + 0x30], eax
inc eax
mov dword [ecx], 7
mov dword [ecx + 4], 0
mov dword [esp + 0x28], eax
test ebx, 0x80000
je 0x46b04e
mov edi, dword [esp + 0x24]
inc word [esp + edi*2 + 0x48]
mov ecx, eax
imul ecx, ecx, 0x168
add ecx, esi
mov dword [esp + edi*4 + 0xc8], eax
mov dword [esp + 0x24], eax
inc eax
mov dword [ecx], 7
mov dword [ecx + 4], 0
mov dword [esp + 0x28], eax
test ebx, 0x200000
je 0x46b086
mov edi, dword [esp + 0x18]
inc word [esp + edi*2 + 0x48]
mov ecx, eax
imul ecx, ecx, 0x168
add ecx, esi
mov dword [esp + edi*4 + 0xc8], eax
mov dword [esp + 0x18], eax
inc eax
mov dword [ecx], 7
mov dword [ecx + 4], 0
mov dword [esp + 0x28], eax
test ebx, 0x20000000
je 0x46b0be
mov edi, dword [esp + 0x34]
inc word [esp + edi*2 + 0x48]
mov ecx, eax
imul ecx, ecx, 0x168
add ecx, esi
mov dword [esp + edi*4 + 0xc8], eax
mov dword [esp + 0x34], eax
inc eax
mov dword [ecx], 7
mov dword [ecx + 4], 0
mov dword [esp + 0x28], eax
mov ecx, dword [esp + 0x10]
mov dword [esp + ecx*4 + 0xc8], eax
movsx ecx, byte [edx + ebp]
sub ecx, 0x3c
inc ebp
cmp ecx, 0x3c
ja case.0x46b0e1.61
movzx ecx, byte [ecx + 0x46bc43]
jmp dword [ecx*4 + 0x46bbdb]
cmp eax, 1
jne case.0x46b0e1.61
mov esi, dword [esp + 0x1d0]
mov al, byte [esi + ebp]
lea edx, [esi + ebp]
or ebx, 0x100000
cmp al, 0x2a
mov dword [esp + 0x2c], 2
je 0x46b13a
cmp al, 0x40
je 0x46b13a
mov eax, 0xa
lea ecx, [esp + 0x3c]
call fcn.0046ac47
cmp eax, 0x24
mov dword [esp + 0x18], eax
jg case.0x46b0e1.61
mov ebp, dword [esp + 0x3c]
sub ebp, esi
jmp case.0x46aeb4.90
mov esi, dword [esp + 0x1d0]
inc ebp
lea edi, [esp + 0x1c]
mov dword [esp + 0x1c], ebp
or ebx, 0x200000
call fcn.0046ad27
mov dword [esp + 0x18], eax
cmp eax, 0xffffffff
mov eax, dword [esp + 0x38]
jne 0x46b184
mov ecx, dword [esp + 0x20]
inc ecx
test eax, eax
mov dword [esp + 0x20], ecx
je 0x46b175
mov dword [esp + 0x18], ecx
jmp 0x46b19d
mov eax, dword [esp + 0x10]
mov dword [esp + 0x18], eax
inc eax
mov dword [esp + 0x10], eax
jmp 0x46b19d
test eax, eax
mov eax, dword [esp + 0x18]
jne 0x46b193
lea edx, [eax + 1]
mov dword [esp + 0x10], edx
cmp eax, dword [esp + 0x14]
jle 0x46b19d
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0x10]
cmp eax, dword [esp + 0x14]
jle 0x46afaf
jmp 0x46afab
mov dword [esp + 0x1cc], 1
jmp 0x46b1c7
cmp dword [esp + 0x1cc], 1
jne 0x46b236
mov esi, dword [esp + 0x1d0]
lea edi, [esp + 0x1c]
or ebx, 0x30000
call fcn.0046ad27
cmp eax, 0xffffffff
mov dword [esp + 0x30], eax
jne 0x46b214
mov ecx, dword [esp + 0x20]
mov eax, dword [esp + 0x38]
inc ecx
test eax, eax
mov dword [esp + 0x20], ecx
je 0x46b202
mov eax, ecx
mov dword [esp + 0x30], eax
jmp 0x46af9f
mov eax, dword [esp + 0x10]
mov dword [esp + 0x30], eax
inc eax
mov dword [esp + 0x10], eax
jmp 0x46af9f
mov ecx, dword [esp + 0x38]
test ecx, ecx
jne 0x46b223
lea ecx, [eax + 1]
mov dword [esp + 0x10], ecx
cmp eax, dword [esp + 0x14]
jle 0x46af9f
mov dword [esp + 0x14], eax
jmp 0x46af9f
or ebx, 0x8000000
jmp case.0x46aeb4.90
test bl, 8
jne case.0x46aeb4.49
or ebx, 0x2000
mov esi, dword [esp + 0x1d0]
lea edx, [esi + ebp - 1]
mov eax, 0xa
lea ecx, [esp + 0x3c]
or ebx, 0x10000
call fcn.0046ac47
mov ebp, dword [esp + 0x3c]
mov dword [esp + 0x30], eax
sub ebp, esi
jmp case.0x46aeb4.90
test bl, 0x40
jne case.0x46b0e1.61
test bl, 0x20
je 0x46b290
or ebx, 0x40
jmp case.0x46aeb4.90
or ebx, 0x20
jmp case.0x46aeb4.90
test bh, 1
jne case.0x46b0e1.61
test bl, bl
jns 0x46b2b0
or ebx, 0x100
jmp case.0x46aeb4.90
or ebx, 0x80
jmp case.0x46aeb4.90
or ebx, 0x200
jmp case.0x46aeb4.90
or ebx, 0x480
jmp case.0x46aeb4.90
or ebx, 0x880
jmp case.0x46aeb4.90
or ebx, 0x1100
jmp case.0x46aeb4.90
test ebx, 0x40000000
jne case.0x46b0e1.61
test ebx, 0x22001fe0
jne case.0x46b0e1.61
mov ecx, dword [esp + 0x1d0]
mov al, byte [ecx + ebp]
cmp al, 0x36
jne 0x46b32a
cmp byte [ecx + ebp + 1], 0x34
jne 0x46b32a
add ebp, 2
mov dword [esp + 0x34], 8
or ebx, 0x40000000
jmp case.0x46aeb4.90
cmp al, 0x33
jne 0x46b34b
cmp byte [ecx + ebp + 1], 0x32
jne 0x46b34b
add ebp, 2
mov dword [esp + 0x34], 4
or ebx, 0x40000000
jmp case.0x46aeb4.90
cmp al, 0x31
jne 0x46b36c
cmp byte [ecx + ebp + 1], 0x36
jne 0x46b36c
add ebp, 2
mov dword [esp + 0x34], 2
or ebx, 0x40000000
jmp case.0x46aeb4.90
cmp al, 0x38
jne case.0x46b0e1.61
inc ebp
mov dword [esp + 0x34], 1
or ebx, 0x40000000
jmp case.0x46aeb4.90
or ebx, 0x2000000
jmp case.0x46aeb4.90
or ebx, 0x1000000
jmp case.0x46aeb4.90
or ebx, 1
mov dword [esp + 0x40], 1
jmp case.0x46aeb4.90
mov ecx, dword [esp + 0x20]
mov eax, dword [esp + 0x38]
or ebx, 0x20000000
inc ecx
test eax, eax
mov dword [esp + 0x20], ecx
je 0x46b3cb
mov dword [esp + 0x34], ecx
jmp 0x46b3d8
mov eax, dword [esp + 0x10]
mov dword [esp + 0x34], eax
inc eax
mov dword [esp + 0x10], eax
mov edx, dword [esp + 0x10]
cmp edx, dword [esp + 0x14]
jle case.0x46aeb4.90
mov eax, edx
mov dword [esp + 0x14], eax
jmp case.0x46aeb4.90
or ebx, 0x1000
jmp case.0x46aeb4.90
or ebx, 0x2000000
test bl, bl
jns 0x46b420
mov edx, eax
or ebx, 0x2000000
imul edx, edx, 0x168
mov dword [edx + esi], 3
jmp 0x46b79e
test bl, 0x20
je 0x46b42b
and ebx, 0xfdffffff
mov edx, eax
imul edx, edx, 0x168
mov dword [edx + esi], 3
jmp 0x46b79e
or ebx, 0x2000000
test bl, bl
jns 0x46b463
mov ecx, eax
or ebx, 0x2000000
imul ecx, ecx, 0x168
mov dword [ecx + esi], 4
jmp 0x46b79e
test bl, 0x20
je 0x46b46e
and ebx, 0xfdffffff
mov ecx, eax
imul ecx, ecx, 0x168
mov dword [ecx + esi], 4
jmp 0x46b79e
cmp dword [esp + 0x1cc], 2
jne 0x46b79e
mov ecx, eax
imul ecx, ecx, 0x168
mov dword [ecx + esi], 8
cmp byte [edx + ebp], 0x5e
mov edi, 1
jne 0x46b4ab
inc ebp
cmp byte [edx + ebp], 0x5d
jne 0x46b4b2
inc ebp
cmp byte [edx + ebp], 0x2d
jne 0x46b4b9
inc ebp
mov cl, byte [edx + ebp]
test cl, cl
je 0x46b79e
lea ecx, [ecx]
cmp cl, 0x5b
jne 0x46b4cf
inc edi
jmp 0x46b4d9
cmp cl, 0x5d
jne 0x46b4d9
dec edi
test edi, edi
jle 0x46b4e7
mov cl, byte [edx + ebp + 1]
inc ebp
test cl, cl
jne 0x46b4c7
jmp 0x46b79e
inc ebp
jmp 0x46b79e
mov ecx, eax
or ebx, 0x4000
imul ecx, ecx, 0x168
mov dword [ecx + esi], 1
jmp 0x46b79e
mov edx, eax
and ebx, 0xffdfffff
imul edx, edx, 0x168
mov dword [esp + 0x18], 0xa
mov dword [edx + esi], 1
jmp 0x46b79e
and ebx, 0xffdfffff
mov ecx, eax
or ebx, 0x4000
imul ecx, ecx, 0x168
mov dword [esp + 0x18], 8
mov dword [ecx + esi], 1
jmp 0x46b79e
or ebx, 0x8000
and ebx, 0xffdfffff
or ebx, 0x2000
mov dword [esp + 0x18], 2
mov edx, eax
imul edx, edx, 0x168
mov dword [edx + esi], 1
jmp 0x46b79e
or ebx, 0x8000
and ebx, 0xffdfffff
mov ecx, eax
or ebx, 0x4000
imul ecx, ecx, 0x168
mov dword [esp + 0x18], 0x10
mov dword [ecx + esi], 1
jmp 0x46b79e
or ebx, 0x8000
mov edx, eax
or ebx, 0x400000
imul edx, edx, 0x168
mov dword [edx + esi], 2
jmp 0x46b79e
or ebx, 0x8000
mov ecx, eax
or ebx, 0x800000
imul ecx, ecx, 0x168
mov dword [ecx + esi], 2
jmp 0x46b79e
or ebx, 0x8000
mov edx, eax
imul edx, edx, 0x168
mov dword [edx + esi], 2
jmp 0x46b79e
mov ecx, eax
or ebx, 0x80
imul ecx, ecx, 0x168
mov dword [ecx + esi], 5
jmp 0x46b79e
mov edx, eax
imul edx, edx, 0x168
mov dword [edx + esi], 6
jmp 0x46b79e
or ebx, 0x8000
mov ecx, eax
imul ecx, ecx, 0x168
mov dword [esp + 0x18], 0x10
mov dword [ecx + esi], 2
jmp 0x46b79e
mov edx, eax
imul edx, edx, 0x168
mov dword [edx + esi], 9
jmp 0x46b79e
mov ecx, eax
imul ecx, ecx, 0x168
lea edi, [ecx + esi]
lea ecx, [edi + 0x28]
mov dword [esp + 0x44], ecx
mov byte [ecx], 0
lea ecx, [edx + ebp]
mov edx, ecx
mov dword [edi], 0xa
mov dword [esp + 0x3c], edx
mov cl, byte [ecx]
test cl, cl
mov dword [esp + 0x1c], 1
mov dword [esp + 0x2c], edi
je case.0x46b0e1.61
lea ebx, [ebx]
inc ebp
cmp cl, 0x3e
je 0x46b71b
cmp cl, 0x3a
jne 0x46b6f8
mov ecx, dword [esp + 0x1d0]
mov esi, ebp
sub esi, edx
add esi, ecx
cmp esi, 0x40
mov dword [esp + 0x1c], 0
jbe 0x46b6d1
mov esi, 0x40
mov edi, dword [esp + 0x44]
mov ecx, edx
call fcn.0046abf7
mov edx, dword [esp + 0x1d0]
mov esi, dword [esp + 0x1d4]
mov eax, dword [esp + 0x28]
mov edi, dword [esp + 0x2c]
add edx, ebp
mov dword [esp + 0x3c], edx
mov ecx, dword [esp + 0x1d0]
mov cl, byte [ecx + ebp]
test cl, cl
jne 0x46b6a7
pop edi
shl ebp, 8
mov eax, 0xfffffffe
pop esi
sub eax, ebp
pop ebp
pop ebx
add esp, 0x1b8
ret
mov ecx, dword [esp + 0x1c]
test ecx, ecx
je 0x46b76b
mov ecx, dword [esp + 0x10]
inc eax
inc word [esp + ecx*2 + 0x48]
mov dword [edi], 7
mov dword [edi + 0x18], ebp
mov dword [edi + 4], 0x8000000
mov edi, eax
imul edi, edi, 0x168
add esi, edi
inc ecx
mov dword [esp + 0x28], eax
mov dword [esp + ecx*4 + 0xc8], eax
cmp ecx, dword [esp + 0x14]
mov dword [esp + 0x2c], esi
mov dword [esi], 0xa
mov dword [esp + 0x10], ecx
jle 0x46b76b
mov dword [esp + 0x14], ecx
mov ecx, dword [esp + 0x1d0]
mov esi, ebp
sub esi, edx
add esi, ecx
cmp esi, 0x100
jbe 0x46b785
mov esi, pe_nt_image_headers32
mov edi, dword [esp + 0x2c]
add edi, 0x68
mov ecx, edx
call fcn.0046abf7
mov esi, dword [esp + 0x1d4]
mov eax, dword [esp + 0x28]
mov ecx, dword [esp + 0x10]
inc word [esp + ecx*2 + 0x48]
lea ecx, [esp + ecx*2 + 0x48]
mov ecx, dword [esp + 0x40]
test ecx, ecx
je 0x46b847
test bl, 1
jne 0x46b847
lea ecx, [eax - 1]
test ecx, ecx
jl 0x46b847
mov edx, ecx
imul edx, edx, 0x168
add edx, esi
mov dword [esp + 0x2c], edx
mov edi, dword [edx]
cmp edi, 7
je 0x46b7f7
test byte [edx + 4], 1
je 0x46b7f7
mov edx, eax
imul edx, edx, 0x168
cmp edi, dword [edx + esi]
je 0x46b808
mov edx, dword [esp + 0x2c]
dec ecx
sub edx, 0x168
test ecx, ecx
mov dword [esp + 0x2c], edx
jge 0x46b7d9
jmp 0x46b847
imul ecx, ecx, 0x168
mov edx, dword [ecx + esi + 4]
add ecx, esi
and edx, 0xfffffffe
or ebx, edx
mov edx, dword [esp + 0x30]
test edx, edx
jne 0x46b828
mov edx, dword [ecx + 8]
mov dword [esp + 0x30], edx
mov edi, dword [esp + 0x24]
or edx, 0xffffffff
cmp edi, edx
jne 0x46b83a
mov edi, dword [ecx + 0xc]
mov dword [esp + 0x24], edi
cmp dword [esp + 0x18], edx
jne 0x46b847
mov ecx, dword [ecx + 0x10]
mov dword [esp + 0x18], ecx
mov edx, eax
imul edx, edx, 0x168
lea ecx, [edx + esi]
mov edx, dword [esp + 0x30]
mov dword [ecx + 8], edx
mov edx, dword [esp + 0x24]
mov dword [ecx + 0xc], edx
mov edx, dword [esp + 0x18]
cmp edx, 0xffffffff
mov dword [ecx + 0x18], ebp
mov dword [ecx + 4], ebx
jne 0x46b874
mov edx, 0xa
inc eax
mov dword [esp + 0x28], eax
mov eax, dword [esp + 0x38]
test eax, eax
mov dword [ecx + 0x10], edx
mov edx, dword [esp + 0x34]
mov dword [ecx + 0x14], edx
jne 0x46b88f
inc dword [esp + 0x20]
mov eax, dword [esp + 0x1d0]
cmp byte [eax + ebp], 0
jne 0x46adfb
mov eax, dword [esp + 0x14]
xor edx, edx
test eax, eax
mov dword [esp + 0x40], edx
jl 0x46bade
mov ebp, dword [esp + 0x1dc]
mov ecx, dword [esp + 0x1d8]
lea eax, [esp + 0xc8]
sub eax, ebp
mov ebx, ebp
mov dword [esp + 0x44], eax
jmp 0x46b8f7
mov ecx, dword [esp + 0x1c]
pop edi
pop esi
shl ecx, 8
mov eax, 0xfffffffd
pop ebp
sub eax, ecx
pop ebx
add esp, 0x1b8
ret
mov eax, dword [esp + 0x44]
jmp 0x46b8f7
cmp word [esp + edx*2 + 0x48], 1
jne 0x46baeb
mov eax, dword [eax + ebx]
mov edx, dword [esp + 0x1d4]
imul eax, eax, 0x168
mov edi, dword [eax + edx]
cmp edi, 7
lea esi, [eax + edx]
je 0x46b92b
test dword [esi + 4], 0x8000000
jne case.0x46b93b.2
cmp edi, 0xa
ja case.0x46b93b.2
movzx eax, byte [edi + 0x46bc93]
jmp dword [eax*4 + 0x46bc83]
cmp dword [esp + 0x1cc], 2
jne 0x46b97e
test ebp, ebp
jne 0x46b962
mov eax, dword [ecx]
add eax, 4
mov dword [ecx], eax
mov edx, dword [eax - 4]
mov dword [esi + 0x20], edx
jmp case.0x46b93b.2
cmp edi, 3
jne 0x46b96e
mov eax, dword [ebx]
jmp 0x46bac3
test byte [esi + 4], 0x20
je 0x46b967
mov edx, dword [ebx]
mov dword [esi + 0x20], edx
jmp case.0x46b93b.2
mov eax, dword [esi + 4]
test eax, 0x60000000
je 0x46b9cb
test eax, 0x20000000
mov edx, dword [esi + 0x14]
je 0x46b9aa
mov ebp, dword [esp + 0x1d4]
imul edx, edx, 0x168
mov edx, dword [edx + ebp + 0x20]
mov ebp, dword [esp + 0x1dc]
and eax, 0xffffe27f
cmp edx, 4
mov dword [esi + 4], eax
jle 0x46b9cb
cmp edx, 8
jg 0x46b9c3
or eax, 0x100
jmp 0x46b9c8
or eax, 0x1000
mov dword [esi + 4], eax
mov eax, dword [esi + 4]
test ah, 4
je 0x46b9f3
test ebp, ebp
jne 0x46b9e8
mov eax, dword [ecx]
add eax, 4
mov dword [ecx], eax
mov eax, dword [eax - 4]
xor edx, edx
jmp 0x46bac0
mov eax, dword [ebx]
mov eax, dword [eax]
xor edx, edx
jmp 0x46bac0
test ah, 8
je 0x46ba0f
test ebp, ebp
jne 0x46babb
mov eax, dword [ecx]
add eax, 4
mov dword [ecx], eax
mov eax, dword [eax - 4]
jmp 0x46babf
test ah, 0x10
je 0x46ba30
test ebp, ebp
jne 0x46ba4e
mov eax, dword [ecx]
add eax, 8
mov dword [ecx], eax
mov edx, dword [eax - 8]
mov eax, dword [eax - 4]
mov dword [esi + 0x20], edx
mov dword [esi + 0x24], eax
jmp case.0x46b93b.2
test ah, 1
je 0x46ba5d
test ebp, ebp
jne 0x46ba4e
mov eax, dword [ecx]
add eax, 8
mov dword [ecx], eax
mov edx, dword [eax - 8]
mov eax, dword [eax - 4]
mov dword [esi + 0x20], edx
mov dword [esi + 0x24], eax
jmp case.0x46b93b.2
mov eax, dword [ebx]
mov edx, dword [eax]
mov eax, dword [eax + 4]
mov dword [esi + 0x20], edx
mov dword [esi + 0x24], eax
jmp case.0x46b93b.2
test al, al
jns 0x46ba71
test ebp, ebp
jne 0x46babb
mov eax, dword [ecx]
add eax, 4
mov dword [ecx], eax
mov eax, dword [eax - 4]
jmp 0x46babf
test ebp, ebp
jne 0x46ba81
mov eax, dword [ecx]
add eax, 4
mov dword [ecx], eax
mov eax, dword [eax - 4]
jmp 0x46babf
cmp edi, 3
jne 0x46ba8d
mov eax, dword [ebx]
movsx eax, byte [eax]
jmp 0x46babf
test al, 0x20
je 0x46ba98
mov edx, dword [ebx]
movsx eax, word [edx]
jmp 0x46babf
mov eax, dword [ebx]
mov eax, dword [eax]
jmp 0x46babf
test dword [esi + 4], 0x8000000
je 0x46ba61
test ebp, ebp
jne 0x46b967
mov eax, dword [ecx]
add eax, 4
mov dword [ecx], eax
mov eax, dword [eax - 4]
jmp 0x46bac3
mov edx, dword [ebx]
mov eax, dword [edx]
cdq
mov dword [esi + 0x24], edx
mov dword [esi + 0x20], eax
mov edx, dword [esp + 0x40]
mov eax, dword [esp + 0x14]
inc edx
add ebx, 4
cmp edx, eax
mov dword [esp + 0x40], edx
jle 0x46b8ea
pop edi
pop esi
pop ebp
mov eax, edx
pop ebx
add esp, 0x1b8
ret
cmp word [esp + edx*2 + 0x48], 0
jne 0x46bb08
pop edi
pop esi
shl edx, 8
mov eax, 0xfffffffb
pop ebp
sub eax, edx
pop ebx
add esp, 0x1b8
ret
pop edi
pop esi
shl edx, 8
mov eax, 0xfffffffc
pop ebp
sub eax, edx
pop ebx
add esp, 0x1b8
ret