Function at 0x438d40
Capabilities:
Inspect section memory permissions
Resolve function by parsing pe exports

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff8
sub esp, 0xc8
mov eax, dword [ecx]
mov dword [esp + 0x24], ecx
test byte [eax + 0x51], 1
mov dword [esp + 0x14], eax
jne 0x438d92
mov ecx, dword [ecx + 4]
mov eax, dword [ecx + 0x80]
mov edx, dword [ecx + 0x88]
lea edi, [ecx + 0x80]
lea ebx, [ecx + 0x88]
sub eax, edx
cmp eax, 0xc
jb 0x439c97
mov eax, dword [edi + 4]
mov dword [esp], ecx
mov esi, 0xc
jmp 0x438ddb
mov eax, dword [eax + 0x278]
mov ecx, dword [ecx + 4]
mov eax, dword [eax + 0x154]
mov ebx, dword [ecx + 0x80]
mov edx, dword [ecx + 0x88]
lea edi, [ecx + 0x80]
lea eax, [eax + eax*2]
sub ebx, edx
lea esi, [eax + eax + 0xc]
cmp ebx, esi
lea ebx, [ecx + 0x88]
jb 0x439c9e
test esi, esi
mov dword [esp], ecx
je 0x438e2b
mov eax, dword [edi + 4]
cmp esi, 8
mov ecx, esi
jb 0x438e20
movaps xmm0, xmmword [0x4de440]
mov dword [esp + 0xc], ebx
mov ebx, esi
mov ecx, esi
mov dword [esp + 4], esi
lea esi, [eax + edx*4 + 0x10]
and ebx, 0xfffffff8
and ecx, 7
add edx, ebx
mov edi, ebx
nop dword [eax]
movups xmmword [esi - 0x10], xmm0
movups xmmword [esi], xmm0
add esi, 0x20
add edi, 0xfffffff8
jne 0x438e00
cmp dword [esp + 4], ebx
mov ebx, dword [esp + 0xc]
je 0x438e2b
nop dword [eax]
mov dword [eax + edx*4], 0x80000000
inc edx
dec ecx
jne 0x438e20
mov dword [ebx], edx
call fcn.004388e0
mov dword [esp + 0x10], eax
lock inc dword [eax]
jle 0x439cd5
mov ebx, dword [esp]
mov dword [esp + 0x1c], edx
mov edi, dword [esp + 0x14]
mov esi, dword [ebx + 0x94]
mov eax, dword [ebx + 0xc]
lea ecx, [edx + esi*8 + 0x14]
mov edx, esi
mov esi, dword [ebx + 0x88]
lea eax, [eax + eax*2]
lea eax, [ecx + eax*4]
movzx ecx, byte [edi + 0x27c]
add eax, dword [ebx + 0xa4]
add esi, dword [ebx + 0x7c]
add eax, dword [ebx + 0x68]
add esi, dword [ebx + 0x38]
add esi, dword [ebx + 0x44]
add esi, dword [ebx + 0x54]
add esi, dword [ebx + 0x60]
add esi, dword [ebx + 0x98]
lea eax, [eax + esi*4]
mov esi, 4
shl esi, cl
add eax, esi
mov esi, dword [esp + 0x24]
cmp eax, dword [edi + 0x280]
jbe 0x438f0f
cmp dword [edi + 0x30], 1
jne 0x438f08
mov eax, dword [esp]
mov eax, dword [eax + 0x6c]
cmp eax, dword [edi + 0x34]
jb 0x438f08
cmp dword [edi + 0x38], 1
jne 0x439d05
mov ecx, dword [esp]
mov eax, dword [edi + 0x3c]
mov edi, dword [ecx + 0x70]
cmp dword [ecx + 0xb0], 0
je 0x438eee
mov esi, ecx
mov ecx, dword [ecx + 0xb8]
mov esi, dword [esi + 0xb4]
mov ebx, ecx
sub ebx, esi
neg ebx
sub ecx, esi
mov esi, dword [esp + 0x24]
cmovb ecx, ebx
jmp 0x438ef0
xor ecx, ecx
add ecx, edi
mov edi, dword [esp + 0x14]
mul edx
mov edx, 0xffffffff
cmovno edx, eax
cmp ecx, edx
jb 0x439d05
mov ecx, esi
call fcn.00439e30
mov ecx, esi
call fcn.0043a4c0
test eax, eax
jne 0x439d05
mov ebx, dword [edi + 0x27c]
mov eax, dword [esp + 0x10]
mov edi, 1
mov esi, edx
movzx eax, byte [eax + 8]
and ebx, 0x1f
mov ecx, ebx
shl edi, cl
mov ecx, dword [esp]
and eax, 1
shl eax, 0x1b
mov dword [esp + 8], eax
mov eax, dword [ecx + 0x74]
mov edx, dword [ecx + 0x7c]
sub eax, edx
cmp eax, edi
jb 0x4392da
mov eax, dword [ecx + 0x78]
or dword [esp + 8], esi
cmp ebx, 3
jb 0x438f93
movaps xmm0, xmmword [0x4de440]
mov ecx, edi
and edi, 6
lea esi, [eax + edx*4 + 0x10]
and ecx, 0xfffffff8
add edx, ecx
mov ebx, ecx
nop word [eax + eax]
movups xmmword [esi - 0x10], xmm0
movups xmmword [esi], xmm0
add esi, 0x20
add ebx, 0xfffffff8
jne 0x438f80
test ecx, ecx
jne 0x438faf
mov ecx, edx
nop word cs:[eax + eax]
nop
lea edx, [ecx + 1]
mov dword [eax + ecx*4], 0x80000000
dec edi
mov ecx, edx
jne 0x438fa0
mov eax, dword [esp]
mov edi, dword [esp + 0x14]
or dword [esp + 8], 0x80000000
mov dword [eax + 0x7c], edx
mov ecx, dword [edi + 0x264]
mov eax, dword [edi + 0x258]
mov edx, dword [edi + 0x260]
mov esi, dword [edi + 0x25c]
or edx, dword [edi + 0x270]
or eax, dword [edi + 0x268]
or ecx, dword [edi + 0x274]
or esi, dword [edi + 0x26c]
or esi, ecx
or eax, edx
lea ecx, [edi + 0x258]
or esi, eax
mov dword [esp + 0xc], ecx
je 0x439035
cmp dword [esp + 8], 0x80000000
je 0x439035
mov ecx, dword [edi + 0x27c]
mov eax, 1
and ecx, 0x1f
shl eax, cl
cmp ecx, 0x1b
jae 0x439e05
or eax, 0x40000000
cmp eax, dword [esp + 8]
jne 0x43917d
mov eax, dword [esp + 0x1c]
mov ebx, dword [esp]
mov ecx, dword [esp + 0x10]
add dword [ebx + 0x68], eax
mov esi, eax
lock inc dword [ecx]
jle 0x439cd5
mov edx, dword [ebx + 0x94]
lea ecx, [ebx + 0x8c]
mov dword [esp + 0x4c], ecx
cmp edx, dword [ebx + 0x8c]
jne 0x43907a
call fcn.0041b2f0
mov ebx, dword [esp]
mov ecx, dword [esp + 0x1c]
mov edx, dword [ebx + 0x94]
jmp 0x43907c
mov ecx, esi
mov eax, dword [ebx + 0x90]
mov esi, dword [esp + 0x10]
mov dword [eax + edx*8], esi
mov dword [eax + edx*8 + 4], ecx
inc edx
mov esi, ecx
mov ecx, ebx
mov dword [ebx + 0x94], edx
mov edx, dword [esp + 0x10]
push dword [esp + 8]
push esi
call fcn.0043a680
add esp, 8
mov eax, dword [esp + 8]
mov ecx, dword [esp + 0x10]
mov dword [esp + 0x54], eax
lock inc dword [ecx]
jle 0x439cd5
mov esi, dword [ebx + 0x88]
mov ecx, dword [esp + 0x1c]
mov eax, dword [ebx + 0xc]
mov edx, dword [ebx + 0x94]
add esi, dword [ebx + 0x7c]
add ecx, 0x14
lea eax, [eax + eax*2]
mov dword [esp + 0x28], ecx
lea ecx, [ecx + edx*8]
lea eax, [ecx + eax*4]
movzx ecx, byte [edi + 0x27c]
add eax, dword [ebx + 0xa4]
add esi, dword [ebx + 0x38]
add eax, dword [ebx + 0x68]
add esi, dword [ebx + 0x44]
add esi, dword [ebx + 0x54]
add esi, dword [ebx + 0x60]
add esi, dword [ebx + 0x98]
lea eax, [eax + esi*4]
mov esi, 4
shl esi, cl
add eax, esi
mov esi, dword [esp + 0x24]
cmp eax, dword [edi + 0x280]
jbe 0x439326
cmp dword [edi + 0x30], 1
jne 0x43931f
mov eax, dword [esp]
mov eax, dword [eax + 0x6c]
cmp eax, dword [edi + 0x34]
jb 0x43931f
cmp dword [edi + 0x38], 1
jne 0x439d39
mov ecx, dword [esp]
mov eax, dword [edi + 0x3c]
mov edi, dword [ecx + 0x70]
cmp dword [ecx + 0xb0], 0
je 0x439305
mov esi, ecx
mov ecx, dword [ecx + 0xb8]
mov esi, dword [esi + 0xb4]
mov ebx, ecx
sub ebx, esi
neg ebx
sub ecx, esi
mov esi, dword [esp + 0x24]
cmovb ecx, ebx
jmp 0x439307
mov eax, 2
shl eax, cl
cmp eax, 0x8000000
jae 0x439cd7
or eax, 0x20000000
xor ebx, ebx
mov dword [esp + 0x4c], eax
mov eax, dword [esp + 0x24]
mov eax, dword [eax + 4]
mov dword [esp + 0x28], eax
cmp ebx, 0x101
mov eax, 0x100
cmovae eax, ebx
mov dword [esp + 0x20], eax
nop word [eax + eax]
cmp dword [esp + 0x20], ebx
je 0x439035
mov dword [esp + 4], ebx
mov eax, dword [esp + 4]
and al, 0x78
mov dword [esp + 0xc0], 0
mov dword [esp + 0xbc], 0
mov dword [esp + 0xb8], 0
mov dword [esp + 0xb4], 1
mov dword [esp + 0xb0], 0
mov dword [esp + 0xac], 0
mov dword [esp + 0xa8], 0
mov dword [esp + 0xa4], 0
mov ecx, dword [esp + 4]
shr al, 3
neg al
movsx ebx, al
mov edx, dword [esp + ebx + 0xbc]
mov eax, dword [esp + ebx + 0xc0]
mov ch, cl
and ch, 7
mov cl, ch
shld eax, edx, cl
shl edx, cl
not cl
mov dword [esp + 0x18], eax
mov eax, dword [esp + 4]
mov edi, dword [esp + ebx + 0xb8]
shr eax, 3
mov esi, edi
and eax, 0x10
shr esi, 1
shr esi, cl
mov cl, ch
or esi, edx
mov edx, dword [esp + ebx + 0xb4]
mov ebx, dword [esp + 0x18]
shld edi, edx, cl
shl edx, cl
mov ecx, dword [esp + 0xc]
and esi, dword [ecx + eax + 8]
and edx, dword [ecx + eax]
and ebx, dword [ecx + eax + 0xc]
and edi, dword [ecx + eax + 4]
mov eax, dword [esp + 4]
or edi, ebx
or edx, esi
lea ebx, [eax + 1]
or edi, edx
mov edi, dword [esp + 0x14]
je 0x4391c0
cmp eax, 0xff
ja 0x439035
mov edx, dword [esp + 0x28]
shl eax, 8
mov ecx, edi
movzx eax, ax
push dword [esp + 0x4c]
push eax
push dword [esp + 0x10]
call fcn.0043a590
add esp, 0xc
jmp 0x4391a5
mov eax, dword [esp]
lea ecx, [eax + 0x74]
push edi
call fcn.004d81d0
mov ecx, dword [esp + 4]
add esp, 4
mov edx, dword [ecx + 0x7c]
mov eax, dword [ecx + 0x78]
or dword [esp + 8], esi
cmp ebx, 3
jae 0x438f63
jmp 0x438f93
xor ecx, ecx
add ecx, edi
mov edi, dword [esp + 0x14]
mul edx
mov edx, 0xffffffff
cmovno edx, eax
cmp ecx, edx
jb 0x439d39
mov ecx, esi
call fcn.00439e30
mov ecx, esi
call fcn.0043a4c0
test eax, eax
mov dword [esp + 4], edx
jne 0x439d39
mov eax, dword [esp + 0x10]
mov ecx, dword [edi + 0x27c]
mov ebx, 1
movzx eax, byte [eax + 8]
and ecx, 0x1f
mov esi, ecx
shl ebx, cl
mov ecx, dword [esp]
and eax, 1
shl eax, 0x1b
mov edx, dword [ecx + 0x7c]
mov dword [esp + 8], eax
mov eax, dword [ecx + 0x74]
sub eax, edx
cmp eax, ebx
jb 0x4396ba
mov eax, dword [esp + 4]
or dword [esp + 8], eax
mov eax, dword [ecx + 0x78]
cmp esi, 3
jb 0x4393b7
movaps xmm0, xmmword [0x4de440]
mov ecx, ebx
and ebx, 6
lea esi, [eax + edx*4 + 0x10]
and ecx, 0xfffffff8
add edx, ecx
mov edi, ecx
nop word [eax + eax]
movups xmmword [esi - 0x10], xmm0
movups xmmword [esi], xmm0
add esi, 0x20
add edi, 0xfffffff8
jne 0x4393a0
mov edi, dword [esp + 0x14]
test ecx, ecx
jne 0x4393cf
mov ecx, edx
nop dword [eax]
lea edx, [ecx + 1]
mov dword [eax + ecx*4], 0x80000000
dec ebx
mov ecx, edx
jne 0x4393c0
mov eax, dword [esp]
mov esi, dword [esp + 0xc]
or dword [esp + 8], 0x40000000
mov dword [eax + 0x7c], edx
mov ecx, dword [esi + 0xc]
mov eax, dword [esi]
mov edx, dword [esi + 8]
mov ebx, dword [esi + 4]
or edx, dword [esi + 0x18]
or eax, dword [esi + 0x10]
or ecx, dword [esi + 0x1c]
or ebx, dword [esi + 0x14]
or eax, edx
or ebx, ecx
or ebx, eax
je 0x439428
mov ecx, dword [edi + 0x27c]
mov eax, 1
and ecx, 0x1f
shl eax, cl
cmp ecx, 0x1b
jae 0x439e05
or eax, 0x40000000
cmp eax, dword [esp + 8]
jne 0x43955d
mov eax, dword [esp + 0x1c]
mov ebx, dword [esp]
mov ecx, dword [esp + 0x10]
add dword [ebx + 0x68], eax
mov esi, eax
lock inc dword [ecx]
jle 0x439cd5
mov edx, dword [ebx + 0x94]
mov ecx, dword [esp + 0x4c]
cmp edx, dword [ebx + 0x8c]
jne 0x439467
call fcn.0041b2f0
mov ebx, dword [esp]
mov ecx, dword [esp + 0x1c]
mov edx, dword [ebx + 0x94]
jmp 0x439469
mov ecx, esi
mov eax, dword [ebx + 0x90]
mov esi, dword [esp + 0x10]
mov dword [eax + edx*8], esi
mov dword [eax + edx*8 + 4], ecx
inc edx
mov eax, ecx
mov ecx, ebx
mov dword [ebx + 0x94], edx
mov edx, esi
push dword [esp + 8]
push eax
call fcn.0043a680
add esp, 8
mov eax, dword [esp + 8]
mov dword [esp + 0x58], eax
lock inc dword [esi]
jle 0x439cd5
mov esi, dword [ebx + 0x88]
mov eax, dword [ebx + 0xc]
mov edx, dword [ebx + 0x94]
mov ecx, dword [esp + 0x28]
add esi, dword [ebx + 0x7c]
lea eax, [eax + eax*2]
lea ecx, [ecx + edx*8]
lea eax, [ecx + eax*4]
movzx ecx, byte [edi + 0x27c]
add eax, dword [ebx + 0xa4]
add esi, dword [ebx + 0x38]
add eax, dword [ebx + 0x68]
add esi, dword [ebx + 0x44]
add esi, dword [ebx + 0x54]
add esi, dword [ebx + 0x60]
add esi, dword [ebx + 0x98]
lea eax, [eax + esi*4]
mov esi, 4
shl esi, cl
add eax, esi
mov esi, dword [esp + 0x24]
cmp eax, dword [edi + 0x280]
jbe 0x4396f6
cmp dword [edi + 0x30], 1
jne 0x4396ef
mov eax, dword [esp]
mov eax, dword [eax + 0x6c]
cmp eax, dword [edi + 0x34]
jb 0x4396ef
cmp dword [edi + 0x38], 1
jne 0x439d6d
mov ecx, dword [esp]
mov eax, dword [edi + 0x3c]
mov edi, dword [ecx + 0x70]
cmp dword [ecx + 0xb0], 0
je 0x4396d5
mov esi, ecx
mov ecx, dword [ecx + 0xb8]
mov esi, dword [esi + 0xb4]
mov ebx, ecx
sub ebx, esi
neg ebx
sub ecx, esi
mov esi, dword [esp + 0x24]
cmovb ecx, ebx
jmp 0x4396d7
mov eax, 2
shl eax, cl
cmp eax, 0x8000000
jae 0x439cd7
or eax, 0x20000000
xor ebx, ebx
mov dword [esp + 0x50], eax
mov eax, dword [esp + 0x24]
mov eax, dword [eax + 4]
mov dword [esp + 0x5c], eax
cmp ebx, 0x101
mov eax, 0x100
cmovae eax, ebx
mov dword [esp + 0x20], eax
nop word [eax + eax]
cmp dword [esp + 0x20], ebx
je 0x439428
mov dword [esp + 4], ebx
mov eax, dword [esp + 4]
and al, 0x78
mov dword [esp + 0xa0], 0
mov dword [esp + 0x9c], 0
mov dword [esp + 0x98], 0
mov dword [esp + 0x94], 1
mov dword [esp + 0x90], 0
mov dword [esp + 0x8c], 0
mov dword [esp + 0x88], 0
mov dword [esp + 0x84], 0
mov ecx, dword [esp + 4]
shr al, 3
neg al
movsx ebx, al
mov esi, dword [esp + ebx + 0x9c]
mov eax, dword [esp + ebx + 0xa0]
mov ch, cl
and ch, 7
mov cl, ch
shld eax, esi, cl
shl esi, cl
not cl
mov dword [esp + 0x18], eax
mov eax, dword [esp + 4]
mov edx, dword [esp + ebx + 0x98]
shr eax, 3
mov edi, edx
and eax, 0x10
shr edi, 1
shr edi, cl
mov cl, ch
or edi, esi
mov esi, dword [esp + ebx + 0x94]
mov ebx, dword [esp + 0x18]
shld edx, esi, cl
shl esi, cl
mov ecx, dword [esp + 0xc]
and edi, dword [ecx + eax + 8]
and esi, dword [ecx + eax]
and ebx, dword [ecx + eax + 0xc]
and edx, dword [ecx + eax + 4]
mov eax, dword [esp + 4]
or esi, edi
mov edi, dword [esp + 0x14]
or edx, ebx
lea ebx, [eax + 1]
or edx, esi
je 0x4395a0
cmp eax, 0xff
ja 0x439428
mov edx, dword [esp + 0x5c]
shl eax, 8
mov ecx, edi
movzx eax, ax
push dword [esp + 0x50]
push eax
push dword [esp + 0x10]
call fcn.0043a590
add esp, 0xc
jmp 0x439585
mov eax, dword [esp]
lea ecx, [eax + 0x74]
push ebx
call fcn.004d81d0
mov ecx, dword [esp + 4]
add esp, 4
mov edx, dword [ecx + 0x7c]
jmp 0x439370
xor ecx, ecx
add ecx, edi
mov edi, dword [esp + 0x14]
mul edx
mov edx, 0xffffffff
cmovno edx, eax
cmp ecx, edx
jb 0x439d6d
mov ecx, esi
call fcn.00439e30
mov ecx, esi
call fcn.0043a4c0
test eax, eax
mov dword [esp + 4], edx
jne 0x439d6d
mov eax, dword [esp + 0x10]
mov ecx, dword [edi + 0x27c]
mov ebx, 1
movzx eax, byte [eax + 8]
and ecx, 0x1f
mov esi, ecx
shl ebx, cl
mov ecx, dword [esp]
and eax, 1
shl eax, 0x1b
mov edx, dword [ecx + 0x7c]
mov dword [esp + 0x20], eax
mov eax, dword [ecx + 0x74]
sub eax, edx
cmp eax, ebx
jb 0x439c7c
mov eax, dword [esp + 4]
or dword [esp + 0x20], eax
mov eax, dword [ecx + 0x78]
cmp esi, 3
jb 0x439787
movaps xmm0, xmmword [0x4de440]
mov ecx, ebx
and ebx, 6
lea esi, [eax + edx*4 + 0x10]
and ecx, 0xfffffff8
add edx, ecx
mov edi, ecx
nop word [eax + eax]
movups xmmword [esi - 0x10], xmm0
movups xmmword [esi], xmm0
add esi, 0x20
add edi, 0xfffffff8
jne 0x439770
mov edi, dword [esp + 0x14]
test ecx, ecx
jne 0x43979f
mov ecx, edx
nop dword [eax]
lea edx, [ecx + 1]
mov dword [eax + ecx*4], 0x80000000
dec ebx
mov ecx, edx
jne 0x439790
mov eax, dword [esp]
mov esi, dword [esp + 0xc]
or dword [esp + 0x20], 0x20000000
mov dword [eax + 0x7c], edx
mov ecx, dword [esi + 0xc]
mov eax, dword [esi]
mov edx, dword [esi + 8]
mov ebx, dword [esi + 4]
or edx, dword [esi + 0x18]
or eax, dword [esi + 0x10]
or ecx, dword [esi + 0x1c]
or ebx, dword [esi + 0x14]
or eax, edx
or ebx, ecx
or ebx, eax
je 0x439807
mov ecx, dword [edi + 0x27c]
and ecx, 0x1f
cmp ecx, 0x1b
jae 0x439dfe
mov eax, 2
shl eax, cl
cmp eax, 0x8000000
jae 0x439cd7
or eax, 0x20000000
cmp eax, dword [esp + 0x20]
mov dword [esp + 0x28], eax
jne 0x439b5b
mov esi, dword [esp]
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x10]
add dword [esi + 0x68], eax
lock inc dword [ecx]
jle 0x439cd5
mov edx, dword [esi + 0x94]
mov ecx, dword [esp + 0x4c]
cmp edx, dword [esi + 0x8c]
jne 0x43983e
call fcn.0041b2f0
mov esi, dword [esp]
mov edx, dword [esi + 0x94]
mov eax, dword [esi + 0x90]
mov ebx, dword [esp + 0x10]
mov ecx, dword [esp + 0x1c]
mov dword [eax + edx*8], ebx
mov dword [eax + edx*8 + 4], ecx
inc edx
mov eax, ecx
mov ecx, esi
mov dword [esi + 0x94], edx
mov esi, dword [esp + 0x20]
mov edx, ebx
push esi
push eax
call fcn.0043a680
add esp, 8
cmp dword [esp + 0x54], 0x80000000
mov dword [esp + 0x60], esi
mov dword [esp + 0x2c], 0x80000000
jne 0x439da1
mov ecx, dword [edi + 0x27c]
mov edx, dword [esp + 0x24]
mov eax, 1
and ecx, 0x1f
shl eax, cl
cmp ecx, 0x1b
jae 0x439e05
or eax, 0x40000000
cmp dword [esp + 0x58], eax
mov dword [esp + 0x2c], eax
mov dword [esp + 8], eax
jne 0x439dc0
mov eax, 2
shl eax, cl
cmp eax, 0x8000000
jae 0x439cd7
or eax, 0x20000000
cmp dword [esp + 0x20], eax
mov dword [esp + 0x2c], eax
jne 0x439ddf
mov eax, dword [edx + 4]
mov dword [esp + 0xc], 0
mov dword [esp + 4], eax
xor eax, eax
jmp 0x439932
movzx ebx, byte [edi + eax + 0x158]
mov cl, 1
lea esi, [eax + 1]
xor edx, edx
mov dword [esp + 0xc], ecx
nop word [eax + eax]
shl eax, 8
mov ecx, edi
or eax, edx
mov edx, dword [esp + 4]
push 0x80000000
push eax
push 0x80000000
call fcn.0043a590
add esp, 0xc
mov eax, esi
mov ecx, ebx
cmp byte [esp + 0xc], 0
je 0x439980
mov edi, dword [esp + 0x14]
cmp eax, 0x101
mov edx, 0x100
cmovae edx, eax
nop word [eax + eax]
cmp edx, eax
je 0x439991
movzx esi, al
inc eax
movzx ebx, byte [edi + esi + 0x158]
cmp cl, bl
je 0x439950
mov cl, 1
xor edx, edx
mov dword [esp + 0xc], ecx
mov ecx, eax
mov eax, esi
mov esi, ecx
jmp 0x439910
mov edi, dword [esp + 0x14]
cmp eax, 0xff
jbe 0x4398f4
mov edx, eax
cmp edx, 0xffffffff
je 0x4399b9
movzx eax, byte [edi + 0x257]
mov edx, 1
mov esi, 0xffffffff
mov ebx, ecx
shl eax, 0x10
add eax, 0x10001
shr eax, 8
jmp 0x439910
xor eax, eax
mov dword [esp + 0x18], 0
jmp 0x4399fc
movzx ebx, byte [edi + eax + 0x158]
lea ecx, [eax + 1]
xor edx, edx
mov dword [esp + 0xc], ecx
mov cl, 1
mov dword [esp + 0x18], ecx
shl eax, 8
mov esi, dword [esp + 8]
mov ecx, edi
or eax, edx
mov edx, dword [esp + 4]
push esi
push eax
push esi
call fcn.0043a590
add esp, 0xc
mov eax, dword [esp + 0xc]
mov ecx, ebx
cmp byte [esp + 0x18], 0
je 0x439a40
mov edi, dword [esp + 0x14]
cmp eax, 0x101
mov edx, 0x100
cmovae edx, eax
nop word cs:[eax + eax]
nop
cmp edx, eax
je 0x439a51
movzx esi, al
inc eax
movzx ebx, byte [edi + esi + 0x158]
cmp cl, bl
je 0x439a20
mov cl, 1
mov dword [esp + 0xc], eax
xor edx, edx
mov eax, esi
jmp 0x4399d8
mov edi, dword [esp + 0x14]
cmp eax, 0xff
jbe 0x4399c5
mov edx, eax
cmp edx, 0xffffffff
je 0x439a7c
movzx eax, byte [edi + 0x257]
mov edx, 1
mov ebx, ecx
mov dword [esp + 0xc], 0xffffffff
shl eax, 0x10
add eax, 0x10001
shr eax, 8
jmp 0x4399dc
xor eax, eax
mov dword [esp + 0x18], 0
jmp 0x439abf
movzx ebx, byte [edi + eax + 0x158]
lea ecx, [eax + 1]
xor edx, edx
mov dword [esp + 0xc], ecx
mov cl, 1
mov dword [esp + 0x18], ecx
shl eax, 8
mov esi, dword [esp + 0x20]
mov ecx, edi
or eax, edx
mov edx, dword [esp + 4]
push esi
push eax
push esi
call fcn.0043a590
add esp, 0xc
mov eax, dword [esp + 0xc]
mov ecx, ebx
cmp byte [esp + 0x18], 0
je 0x439b00
mov edi, dword [esp + 0x14]
cmp eax, 0x101
mov edx, 0x100
cmovae edx, eax
nop word [eax + eax]
cmp edx, eax
je 0x439b11
movzx esi, al
inc eax
movzx ebx, byte [edi + esi + 0x158]
cmp cl, bl
je 0x439ae0
mov cl, 1
mov dword [esp + 0xc], eax
xor edx, edx
mov eax, esi
jmp 0x439a9b
mov edi, dword [esp + 0x14]
cmp eax, 0xff
jbe 0x439a88
mov edx, eax
cmp edx, 0xffffffff
je 0x439b3c
movzx eax, byte [edi + 0x257]
mov edx, 1
mov dword [esp + 0xc], 0xffffffff
mov ebx, ecx
shl eax, 0x10
add eax, 0x10001
shr eax, 8
jmp 0x439a9f
mov ecx, dword [esp]
mov edx, dword [esp + 0x10]
push dword [esp + 8]
push dword [esp + 0x20]
call fcn.0043a680
add esp, 8
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
mov eax, dword [esp + 0x24]
xor ebx, ebx
mov eax, dword [eax + 4]
mov dword [esp + 0x50], eax
cmp ebx, 0x101
mov eax, 0x100
cmovae eax, ebx
mov dword [esp + 8], eax
nop word [eax + eax]
cmp dword [esp + 8], ebx
je 0x439807
mov dword [esp + 4], ebx
mov eax, dword [esp + 4]
and al, 0x78
mov dword [esp + 0x80], 0
mov dword [esp + 0x7c], 0
mov dword [esp + 0x78], 0
mov dword [esp + 0x74], 1
mov dword [esp + 0x70], 0
mov dword [esp + 0x6c], 0
mov dword [esp + 0x68], 0
mov dword [esp + 0x64], 0
mov ecx, dword [esp + 4]
shr al, 3
neg al
movsx ebx, al
mov esi, dword [esp + ebx + 0x7c]
mov eax, dword [esp + ebx + 0x80]
mov ch, cl
and ch, 7
mov cl, ch
shld eax, esi, cl
shl esi, cl
not cl
mov dword [esp + 0x18], eax
mov eax, dword [esp + 4]
mov edx, dword [esp + ebx + 0x78]
shr eax, 3
mov edi, edx
and eax, 0x10
shr edi, 1
shr edi, cl
mov cl, ch
or edi, esi
mov esi, dword [esp + ebx + 0x74]
mov ebx, dword [esp + 0x18]
shld edx, esi, cl
shl esi, cl
mov ecx, dword [esp + 0xc]
and edi, dword [ecx + eax + 8]
and esi, dword [ecx + eax]
and ebx, dword [ecx + eax + 0xc]
and edx, dword [ecx + eax + 4]
mov eax, dword [esp + 4]
or esi, edi
mov edi, dword [esp + 0x14]
or edx, ebx
lea ebx, [eax + 1]
or edx, esi
je 0x439b80
cmp eax, 0xff
ja 0x439807
mov edx, dword [esp + 0x50]
shl eax, 8
mov ecx, edi
movzx eax, ax
push dword [esp + 0x28]
push eax
push dword [esp + 0x28]
call fcn.0043a590
add esp, 0xc
jmp 0x439b68
mov eax, dword [esp]
lea ecx, [eax + 0x74]
push ebx
call fcn.004d81d0
mov ecx, dword [esp + 4]
add esp, 4
mov edx, dword [ecx + 0x7c]
jmp 0x439740
mov eax, 0xc
jmp 0x439ca0
mov eax, esi
mov esi, ecx
mov dword [esp + 4], eax
add ecx, 0x80
push eax
call fcn.004d81d0
add esp, 4
mov dword [esp], esi
mov edx, dword [esi + 0x88]
mov esi, dword [esp + 4]
mov eax, dword [edi + 4]
cmp esi, 8
mov ecx, esi
jb 0x438e20
jmp 0x438ddb
ud2
lea eax, [esp + 0x30]
mov ecx, str.called__Result::unwrap____on_an__Err__value
mov edx, 0x2b
mov dword [esp + 0x34], 0
mov dword [esp + 0x30], 0x8000000
push 0x4e4744
push 0x4e341c
push eax
call fcn.004d6720
mov eax, dword [esp + 0x10]
lock dec dword [eax]
jne 0x439d1b
mov ecx, dword [esp + 0x10]
mov edx, dword [esp + 0x1c]
call fcn.00403b00
lea eax, [esp + 0x30]
mov ecx, str.called__Result::unwrap____on_an__Err__value
mov edx, 0x2b
push 0x4e455c
push 0x4e33fc
push eax
call fcn.004d6720
mov eax, dword [esp + 0x10]
lock dec dword [eax]
jne 0x439d4f
mov ecx, dword [esp + 0x10]
mov edx, dword [esp + 0x1c]
call fcn.00403b00
lea eax, [esp + 0x30]
mov ecx, str.called__Result::unwrap____on_an__Err__value
mov edx, 0x2b
push 0x4e456c
push 0x4e33fc
push eax
call fcn.004d6720
mov eax, dword [esp + 0x10]
lock dec dword [eax]
jne 0x439d83
mov ecx, dword [esp + 0x10]
mov edx, dword [esp + 0x1c]
call fcn.00403b00
lea eax, [esp + 0x30]
mov ecx, str.called__Result::unwrap____on_an__Err__value
mov edx, 0x2b
push 0x4e457c
push 0x4e33fc
push eax
call fcn.004d6720
mov dword [esp + 0x30], 0
lea eax, [esp + 0x30]
lea ecx, [esp + 0x54]
lea edx, [esp + 0x2c]
push 0x4e458c
push eax
call fcn.004d8f80
mov dword [esp + 0x30], 0
lea eax, [esp + 0x30]
lea ecx, [esp + 0x58]
lea edx, [esp + 0x2c]
push 0x4e459c
push eax
call fcn.004d8f80
mov dword [esp + 0x30], 0
lea eax, [esp + 0x30]
lea ecx, [esp + 0x60]
lea edx, [esp + 0x2c]
push 0x4e45ac
push eax
call fcn.004d8f80
mov eax, 1
shl eax, cl
mov dword [esp + 0x30], eax
lea eax, [esp + 0x30]
mov ecx, str.called__Result::unwrap____on_an__Err__value
mov edx, 0x2b
mov dword [esp + 0x34], 0
push 0x4e4734
push 0x4e341c
push eax
call fcn.004d6720
int3