Function at 0x541b40
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, 0xe8
mov esi, esp
mov dword [esi + 0xd0], ebp
mov dword [esi + 0xd4], esp
mov dword [esi + 0xe0], 0xffffffff
mov dword [esi + 0xdc], 0x5388f0
mov edi, edx
lea eax, [esi + 0xd8]
mov dword [esi + 0x3c], ecx
mov edx, dword fs:[0]
mov dword [esi + 0x84], edi
and edi, 0x7ffffff
mov dword [esi + 0x9c], edi
mov dword [esi + 0xd8], edx
mov dword fs:[0], eax
mov ebx, dword [ecx + 4]
mov edx, dword [ecx]
mov eax, dword [ebx + 0x94]
movzx ecx, byte [edx + 0x284]
mov dword [esi + 0x80], eax
mov eax, dword [ebx + 0xa4]
shr edi, cl
call 0x541bc6
pop ecx
cmp edi, dword [esi + 0x80]
mov dword [esi + 0x8c], ecx
mov dword [esi + 0x98], edi
mov dword [esi + 0x7c], eax
mov eax, dword [ebx + 0xa8]
mov dword [esi + 0x5c], eax
mov eax, dword [ebx + 0xac]
mov dword [ebx + 0xa4], 0
mov dword [ebx + 0xa8], 1
mov dword [ebx + 0xac], 0
mov dword [esi + 0xa4], eax
jae 0x542ced
movzx eax, byte [edx + 0x58]
mov ecx, dword [edx + 0x280]
mov byte [esi + 0x88], al
mov eax, dword [ebx + 0x90]
mov dword [esi + 0xc], ecx
mov ecx, edi
mov edi, dword [eax + edi*8]
mov eax, dword [eax + ecx*8 + 4]
mov dword [ebx + 0x48], 0
mov dword [ebx + 0x64], 0
test eax, eax
mov dword [esi + 0x30], edi
mov edi, ecx
je 0x542d11
mov dword [esi + 0x28], eax
mov eax, dword [esi + 0xc]
mov dword [esi + 0xa0], edx
mov ecx, 9
movzx eax, byte [eax + 0x164]
mov byte [esi + 0x38], al
mov eax, dword [esi + 0x30]
lea edx, [eax + 8]
test byte [edx], 2
je 0x541ca2
cmp dword [esi + 0x28], 0xc
jbe 0x542fd8
mov eax, dword [eax + 0x11]
test eax, eax
je 0x541ca2
cmp eax, 0x40000000
jae 0x543157
shl eax, 2
add eax, 0xd
mov ecx, eax
jb 0x543174
mov eax, dword [esi + 0x28]
cmp eax, ecx
jb 0x542ec4
sub eax, ecx
mov dword [esi + 0x1c], ebx
mov dword [esi + 0x90], edx
mov dword [esi + 4], eax
je 0x541dd2
mov eax, dword [ebx + 0x44]
add ecx, edx
xor edx, edx
mov dword [esi + 0x2c], ecx
mov dword [esi + 0x10], eax
mov eax, dword [ebx + 0x40]
mov dword [esi + 0x14], eax
mov eax, dword [ebx + 0x34]
mov dword [esi + 0x34], eax
mov eax, dword [ebx + 0x38]
mov dword [esi + 0x20], eax
xor eax, eax
jmp 0x541d03
mov ecx, dword [esi + 4]
add dword [esi + 0x2c], edi
sub ecx, edi
test ecx, ecx
mov dword [esi + 4], ecx
je 0x541dd4
mov dword [esi + 8], eax
xor eax, eax
xor ecx, ecx
xor edi, edi
mov dword [esi + 0x24], edx
nop
mov edx, dword [esi + 0x2c]
movzx ebx, byte [edx + edi]
movzx edx, bl
test bl, bl
jns 0x541d40
and edx, 0x7f
inc edi
shl edx, cl
add ecx, 7
or eax, edx
cmp dword [esi + 4], edi
jne 0x541d10
xor edx, edx
xor edi, edi
jmp 0x541d4e
inc edi
shl edx, cl
cmp edi, dword [esi + 4]
ja 0x542e56
or edx, eax
mov ecx, dword [esi + 0x24]
mov eax, edx
and edx, 1
shr eax, 1
neg edx
xor edx, eax
add ecx, edx
cmp dword [esi + 0x10], ecx
mov edx, ecx
mov dword [esi + 0x94], ecx
jbe 0x542c22
mov eax, dword [esi + 0x14]
mov ecx, dword [eax + edx*4]
mov eax, dword [esi + 8]
cmp ecx, eax
jae 0x541d98
cmp ecx, dword [esi + 0x20]
jae 0x542c86
mov ebx, edx
mov edx, dword [esi + 0x34]
cmp dword [edx + ecx*4], ebx
mov edx, ebx
mov ebx, dword [esi + 0x1c]
je 0x541cf0
cmp eax, dword [esi + 0x20]
mov dword [esi + 0xa8], eax
jae 0x542ddb
mov ecx, dword [esi + 0x34]
mov dword [ecx + eax*4], edx
mov ecx, dword [esi + 0x94]
cmp ecx, dword [esi + 0x10]
jae 0x542c63
mov ebx, edx
mov edx, dword [esi + 0x14]
mov dword [edx + ecx*4], eax
mov edx, ebx
mov ebx, dword [esi + 0x1c]
inc eax
mov dword [ebx + 0x48], eax
jmp 0x541cf0
xor eax, eax
mov edx, dword [esi + 0x28]
cmp edx, 5
jb 0x542ee6
mov edi, dword [esi + 0xc]
add edx, 0xfffffffb
mov dword [esi + 8], eax
cmp edx, 3
jbe 0x542f0b
mov ecx, dword [ebp + 8]
lea eax, [ebx + 0x98]
mov dword [esi + 0x24], eax
mov eax, ecx
shr eax, 8
mov dword [esi + 0x14], eax
mov eax, dword [esi + 0x30]
mov edx, dword [eax + 0xd]
test edx, edx
mov dword [esi + 4], edx
lea edx, [ebx + 0x4c]
mov dword [esi + 0x2c], edx
je 0x541fcf
mov eax, dword [eax + 9]
test cl, 1
jne 0x541e47
mov edx, dword [esi + 0x14]
mov ecx, dword [esi + 0x90]
cmp dl, 0xa
je 0x541e54
movzx edx, dl
mov edi, eax
cmp edx, 0xd
mov edx, ecx
jne 0x541e68
cmp byte [esi + 0x38], 0
jne 0x541e5c
jmp 0x541e63
mov edx, dword [esi + 0x90]
mov edi, eax
or edi, 0x2a
jmp 0x541e68
cmp byte [esi + 0x38], 0
mov edx, ecx
jne 0x541e63
test byte [edx], 8
mov edi, eax
jne 0x541e68
mov edi, eax
or edi, 0x20
mov dword [esi + 0x10], eax
mov ebx, dword [esi + 0xc]
mov eax, dword [esi + 0x14]
mov ecx, edi
or ecx, 8
cmp byte [ebx + 0x160], al
mov eax, dword [ebp + 8]
movzx ebx, byte [edx]
cmovne ecx, edi
test al, 1
cmovne ecx, edi
test bl, 8
je 0x541eae
cmp byte [esi + 0x38], 0
je 0x541ea1
test al, 1
jne 0x541eab
cmp byte [esi + 0x14], 0xd
je 0x541eb2
jmp 0x541eab
test al, 1
jne 0x541eab
cmp byte [esi + 0x14], 0xa
je 0x541eb2
or ecx, 0x10
test al, 1
jne 0x541eef
movzx edi, byte [esi + 0x14]
and bl, 4
mov edx, 0x280
shr bl, 2
mov bh, byte [edi + 0x55791c]
test bh, bh
setne al
xor al, bl
mov eax, 0x140
cmovne edx, eax
or edx, ecx
mov ecx, edx
or ecx, 0x28000
test bl, bl
je 0x541f18
mov edi, dword [esi + 0xc]
test bh, bh
mov ebx, edx
jne 0x541f28
jmp 0x541f0e
shr bl, 2
mov eax, 0x28140
mov edi, 0x28280
test bl, 1
cmovne edi, eax
or ecx, edi
mov edi, dword [esi + 0xc]
test bl, 1
mov ebx, ecx
je 0x541f28
or ecx, 0x2800
mov ebx, ecx
jmp 0x541f28
mov edi, dword [esi + 0xc]
or edx, 0x1400
test bh, bh
cmove edx, ecx
mov ebx, edx
mov edx, dword [esi + 0x10]
mov eax, dword [esi + 4]
mov dword [esi + 0x10], ebx
not edx
and eax, edx
test eax, ebx
mov ebx, dword [esi + 0x1c]
je 0x541fcf
mov edx, dword [ebx + 0x38]
mov ecx, dword [esi + 8]
cmp ecx, edx
ja 0x5430d9
mov eax, dword [ebx + 0x34]
lea ecx, [eax + ecx*4]
mov dword [esi + 8], ecx
nop word [eax + eax]
cmp eax, dword [esi + 8]
je 0x541f99
mov edx, dword [eax]
add eax, 4
mov byte [esi + 2], 0
mov dword [esi + 0xe0], 5
mov ecx, edi
mov dword [esi + 4], eax
push dword [esi + 0x2c]
push dword [esi + 0x24]
push dword [esi + 0x10]
call fcn.00487ce0
mov eax, dword [esi + 4]
mov edi, dword [esi + 0xc]
mov ebx, dword [esi + 0x1c]
add esp, 0xc
jmp 0x541f60
movsd xmm2, qword [ebx + 0x60]
movups xmm0, xmmword [ebx + 0x38]
movups xmm1, xmmword [ebx + 0x4c]
mov eax, dword [ebx + 0x5c]
movaps xmm3, xmm2
shufps xmm2, xmm2, 0x55
movhps xmm3, qword [ebx + 0x30]
movups xmmword [ebx + 0x30], xmm1
mov dword [ebx + 0x40], eax
movups xmmword [ebx + 0x54], xmm0
movss dword [esi + 8], xmm2
movups xmmword [ebx + 0x44], xmm3
mov dword [ebx + 0x64], 0
mov eax, dword [esi + 0x7c]
mov edx, dword [esi + 0xa4]
mov ecx, dword [esi + 0x5c]
mov dword [esi + 0x60], eax
sub eax, edx
mov dword [esi + 0x64], ecx
mov dword [esi + 0x68], edx
cmp eax, 8
ja 0x542013
mov dword [esi + 0xe0], 8
lea ecx, [esi + 0x60]
push 9
call fcn.0053b370
add esp, 4
mov eax, dword [esi + 0x64]
mov edx, dword [esi + 0x68]
mov ebx, dword [esi + 0x1c]
mov ecx, dword [ebp + 8]
mov edi, dword [esi + 0xc]
jmp 0x542018
mov eax, ecx
mov ecx, dword [ebp + 8]
mov dword [eax + edx + 4], 0
mov dword [eax + edx], 0
mov byte [eax + edx + 8], 0
add edx, 9
movsd xmm0, qword [esi + 0x60]
mov dword [esi + 0x48], edx
movsd qword [esi + 0x40], xmm0
mov eax, dword [edi + 0x138]
test al, 0x3c
je 0x542094
mov edx, ecx
test dl, 1
mov edx, dword [esi + 0x14]
jne 0x542097
cmp byte [edi + 0x160], dl
jne 0x542097
mov edx, dword [esi + 0x48]
test edx, edx
je 0x543191
cmp edx, 4
jbe 0x5431b8
mov eax, dword [esi + 0x44]
mov ecx, dword [eax + 1]
mov edx, ecx
or dl, 4
mov byte [eax + 1], dl
mov edx, ecx
mov byte [eax + 2], ch
shr ecx, 0x18
shr edx, 0x10
mov byte [eax + 3], dl
mov byte [eax + 4], cl
mov ecx, dword [ebp + 8]
mov eax, dword [edi + 0x138]
mov edx, dword [esi + 0x14]
test al, 0x30
je 0x5420f3
cmp byte [esi + 0x38], 0
je 0x5420ad
test cl, 1
jne 0x5420f3
cmp dl, 0xd
je 0x5420b7
jmp 0x5420f3
test cl, 1
jne 0x5420f3
cmp dl, 0xa
jne 0x5420f3
mov edx, dword [esi + 0x48]
test edx, edx
je 0x5431de
cmp edx, 4
jbe 0x543205
mov eax, dword [esi + 0x44]
mov ecx, dword [eax + 1]
mov edx, ecx
or dl, 0x10
mov byte [eax + 1], dl
mov edx, ecx
mov byte [eax + 2], ch
shr ecx, 0x18
shr edx, 0x10
mov byte [eax + 3], dl
mov byte [eax + 4], cl
mov ecx, dword [ebp + 8]
mov eax, dword [edi + 0x138]
test eax, 0x3ffc0
je 0x542140
test cl, 1
jne 0x54210c
movzx eax, byte [esi + 0x14]
cmp byte [eax + 0x55791c], 0
jne 0x542140
mov edx, dword [esi + 0x48]
test edx, edx
je 0x54308c
cmp edx, 4
jbe 0x5430b3
mov eax, dword [esi + 0x44]
mov ecx, dword [eax + 1]
mov edx, ecx
mov byte [eax + 1], cl
shr ecx, 0x18
or edx, 0x14000
mov byte [eax + 2], dh
shr edx, 0x10
mov byte [eax + 3], dl
mov byte [eax + 4], cl
mov edx, dword [ebx + 0x38]
mov ecx, dword [esi + 8]
cmp ecx, edx
ja 0x542f30
mov ebx, dword [ebx + 0x34]
lea eax, [ebx + ecx*4]
movzx ecx, byte [esi + 0x14]
mov dword [esi + 4], eax
mov dword [esi + 0x34], ecx
jmp 0x542170
cmp ebx, dword [esi + 4]
je 0x54246d
mov ecx, dword [ebx]
mov edx, dword [edi + 0x150]
cmp edx, ecx
jbe 0x542c02
mov edx, dword [edi + 0x14c]
lea ecx, [ecx + ecx*4]
add ebx, 4
lea eax, [edx + ecx*4]
mov ecx, dword [edx + ecx*4]
mov ecx, dword [ecx*4 + 0x5434b8]
add ecx, dword [esi + 0x8c]
jmp ecx
mov eax, dword [esi + 0x1c]
mov ecx, dword [ebp + 8]
mov edx, dword [esi + 0x14]
cmp dword [eax + 0x64], 0
je 0x5424f6
mov eax, dword [edi + 0x138]
test eax, 0x3ffc0
je 0x5424b3
and ecx, 1
jne 0x5424b9
mov ecx, dword [esi + 0x34]
cmp byte [ecx + 0x55791c], 0
mov ecx, dword [ebp + 8]
je 0x5424b3
cmp dword [esi + 0x48], 0
je 0x542d79
mov eax, dword [esi + 0x44]
or byte [eax], 4
mov eax, dword [edi + 0x138]
test al, 0x30
jne 0x5424c0
jmp 0x5424f6
mov ecx, dword [ebp + 8]
test al, 0x30
je 0x5424f6
cmp byte [esi + 0x38], 0
je 0x5424d2
test cl, 1
jne 0x5424f6
cmp dl, 0xa
je 0x5424dc
jmp 0x5424f6
test cl, 1
jne 0x5424f6
cmp dl, 0xd
jne 0x5424f6
cmp dword [esi + 0x48], 0
je 0x542d9d
mov eax, dword [esi + 0x44]
or byte [eax], 8
mov dword [esi + 0xe0], 6
lea ecx, [esi + 0x60]
lea edx, [esi + 0x40]
mov byte [esi + 1], 0
mov dword [esi + 0xe0], 6
call fcn.00484d40
mov ecx, dword [esi + 0xc]
mov edx, dword [esi + 0x2c]
lea eax, [esi + 0x60]
mov dword [esi + 0xe0], 7
push eax
call fcn.00488140
add esp, 4
mov edi, dword [esi + 0x1c]
mov ecx, dword [esi + 0x68]
mov eax, dword [edi + 0xc]
mov edx, dword [edi + 0x94]
mov dword [esi + 0x10], ecx
lea eax, [eax + eax*2]
lea ecx, [ecx + edx*8 + 0x14]
mov dword [esi + 4], edx
mov edx, dword [esi + 0xa0]
lea eax, [ecx + eax*4]
mov ecx, dword [edi + 0x88]
add eax, dword [edi + 0xa4]
add ecx, dword [edi + 0x7c]
add eax, dword [edi + 0x68]
add ecx, dword [edi + 0x38]
add ecx, dword [edi + 0x44]
add ecx, dword [edi + 0x54]
add ecx, dword [edi + 0x60]
add ecx, dword [edi + 0x98]
lea ebx, [eax + ecx*4]
mov ecx, dword [edx + 0x284]
mov edx, dword [edx + 0x288]
mov eax, 4
and ecx, 0x1f
mov dword [esi + 0x88], edx
shl eax, cl
add ebx, eax
mov eax, dword [esi + 0x60]
mov dword [esi + 0xc], ebx
cmp ebx, edx
mov ebx, dword [esi + 0x64]
mov dword [esi + 0x34], eax
mov dword [esi + 0x20], ebx
jbe 0x54260f
mov eax, dword [esi + 0x9c]
mov edx, dword [esi + 4]
shr eax, cl
mov ecx, eax
cmp eax, edx
jae 0x542d59
mov eax, dword [edi + 0x90]
mov edx, edi
mov ebx, dword [eax + ecx*8]
mov edi, dword [eax + ecx*8 + 4]
lock inc dword [ebx]
jle 0x5432c0
cmp dword [edx + 0x20], 1
jne 0x5425ee
mov eax, dword [edx + 0x28]
lock dec dword [eax]
jne 0x5425ee
mov ecx, dword [edx + 0x28]
mov edx, dword [edx + 0x2c]
call fcn.00462220
mov eax, dword [esi + 0x3c]
mov edx, dword [esi + 0x84]
mov ecx, dword [eax + 4]
mov dword [ecx + 0x20], 1
mov dword [ecx + 0x24], edx
mov dword [ecx + 0x28], ebx
mov ebx, dword [esi + 0x20]
mov dword [ecx + 0x2c], edi
mov edi, ecx
mov ecx, edi
mov edx, ebx
push dword [esi + 0x10]
call fcn.00488510
add esp, 4
test eax, eax
je 0x54266a
mov eax, dword [eax]
cmp dword [edi + 0xa4], 0
mov ecx, dword [esi + 0x34]
mov dword [esi + 0x24], eax
mov eax, dword [edi + 0xa8]
mov dword [edi + 0xa4], ecx
mov dword [edi + 0xa8], ebx
mov dword [edi + 0xac], 0
je 0x54265e
push eax
push 0
push dword [0x5b93c8]
call dword [sym.imp.kernel32.dll_HeapFree]
mov dword [esi + 4], 0
jmp 0x542b0c
mov ecx, dword [esi + 0x10]
test ecx, ecx
js 0x5430f9
lea eax, [ecx - 0x7ffffff5]
mov dword [esi + 0x1c], edi
cmp eax, 0x80000002
jbe 0x543128
lea edi, [ecx + 0xb]
mov ebx, 4
mov eax, 4
and edi, 0xfffffffc
je 0x5426b6
movzx eax, byte [0x5b9430]
xor ecx, ecx
mov edx, edi
call fcn.0051b940
mov ecx, dword [esi + 0x10]
test eax, eax
je 0x54322b
mov dword [eax], 1
lea edi, [ecx + 0x14]
mov dword [eax + 4], 1
mov dword [esi + 0x30], eax
add eax, 8
push ecx
push dword [esi + 0x20]
mov dword [esi + 4], eax
push eax
call sub.VCRUNTIME140.dll_memcpy
add esp, 0xc
mov edx, dword [esi + 0x1c]
mov eax, dword [edx + 0xc]
mov ecx, dword [edx + 0x94]
mov dword [esi + 0x2c], ecx
lea eax, [eax + eax*2]
lea ecx, [edi + ecx*8]
lea eax, [ecx + eax*4]
mov ecx, dword [edx + 0x88]
add eax, dword [edx + 0xa4]
add ecx, dword [edx + 0x7c]
add eax, dword [edx + 0x68]
add ecx, dword [edx + 0x38]
add ecx, dword [edx + 0x44]
add ecx, dword [edx + 0x54]
add ecx, dword [edx + 0x60]
add ecx, dword [edx + 0x98]
lea eax, [eax + ecx*4]
mov ecx, dword [esi + 0x3c]
mov edx, dword [ecx]
movzx ecx, byte [edx + 0x284]
mov dword [esi + 0x28], edx
shl ebx, cl
add eax, ebx
cmp eax, dword [edx + 0x288]
jbe 0x542767
mov eax, dword [esi + 0x28]
cmp dword [eax + 0x48], 1
jne 0x542751
mov eax, dword [esi + 0x1c]
mov ecx, dword [esi + 0x28]
mov eax, dword [eax + 0x6c]
cmp eax, dword [ecx + 0x4c]
jae 0x542bc3
mov ecx, dword [esi + 0x3c]
mov byte [esi + 3], 1
mov dword [esi + 0xe0], 3
call fcn.00486ab0
mov ecx, dword [esi + 0x3c]
mov byte [esi + 3], 1
mov dword [esi + 0xe0], 3
call fcn.004872e0
test eax, eax
je 0x5427a3
mov ecx, dword [esi + 0x30]
lock dec dword [ecx]
jne 0x542819
mov dword [esi + 4], 1
mov edx, dword [esi + 0x10]
call fcn.00462220
xor ebx, ebx
jmp 0x542ac2
cmp dword [esi + 0x10], 0
je 0x542dc1
mov eax, dword [esi + 0x28]
mov edi, dword [esi + 0x1c]
mov ebx, edx
mov dword [esi + 0x2c], ebx
mov ecx, dword [eax + 0x284]
mov eax, 1
mov edx, dword [edi + 0x7c]
and ecx, 0x1f
mov dword [esi + 8], ecx
shl eax, cl
mov ecx, eax
mov eax, dword [edi + 0x74]
sub eax, edx
cmp eax, ecx
mov eax, dword [esi + 4]
movzx eax, byte [eax]
mov dword [esi + 0x24], eax
jae 0x542800
mov eax, ecx
lea ecx, [edi + 0x74]
mov byte [esi + 3], 1
mov dword [esi + 4], eax
push eax
call fcn.0053b2d0
add esp, 4
mov edi, dword [esi + 0x1c]
mov ecx, dword [esi + 4]
mov edx, dword [edi + 0x7c]
mov eax, dword [esi + 0x24]
and eax, 1
shl eax, 0x1b
cmp dword [esi + 8], 3
mov dword [esi + 0x24], eax
mov eax, dword [edi + 0x78]
jae 0x542827
mov ebx, edx
jmp 0x54286b
mov dword [esi + 4], 1
xor ebx, ebx
jmp 0x542ac2
movaps xmm0, xmmword [0x5473a0]
mov edi, ecx
and ecx, 0xfffffff8
and edi, 6
mov ebx, ecx
mov dword [esi + 4], edi
lea edi, [eax + edx*4 + 0x10]
add edx, ecx
nop word cs:[eax + eax]
nop dword [eax + eax]
movups xmmword [edi - 0x10], xmm0
movups xmmword [edi], xmm0
add edi, 0x20
add ebx, 0xfffffff8
jne 0x542850
test ecx, ecx
mov edi, dword [esi + 0x1c]
mov ecx, dword [esi + 4]
mov ebx, edx
jne 0x54287f
mov edx, ebx
nop dword [eax]
lea ebx, [edx + 1]
mov dword [eax + edx*4], 0x80000000
dec ecx
mov edx, ebx
jne 0x542870
mov eax, dword [esi + 0x2c]
mov dword [edi + 0x7c], ebx
mov edi, dword [esi + 0x28]
mov ecx, dword [edi + 0x26c]
mov edx, dword [edi + 0x268]
mov ebx, dword [edi + 0x264]
or dword [esi + 0x24], eax
mov eax, dword [edi + 0x260]
or edx, dword [edi + 0x278]
or eax, dword [edi + 0x270]
or ecx, dword [edi + 0x27c]
or ebx, dword [edi + 0x274]
or eax, edx
or ebx, ecx
or ebx, eax
je 0x542a3e
mov eax, dword [esi + 0x28]
mov ecx, dword [eax + 0x284]
and ecx, 0x1f
cmp ecx, 0x1b
jae 0x543243
mov edx, 2
shl edx, cl
cmp edx, 0x8000000
jae 0x543284
mov eax, dword [esi + 0x28]
or edx, 0x20000000
xor ecx, ecx
mov dword [esi + 0x38], edx
add eax, 0x260
mov dword [esi + 0x8c], eax
cmp ecx, 0x101
mov eax, pe_nt_image_headers32
cmovae eax, ecx
mov dword [esi + 0x14], eax
nop dword [eax]
cmp dword [esi + 0x14], ecx
je 0x542a3e
mov dword [esi + 4], ecx
mov eax, ecx
mov eax, dword [esi + 4]
and al, 0x78
mov dword [esi + 0xcc], 0
mov dword [esi + 0xc8], 0
mov dword [esi + 0xc4], 0
mov dword [esi + 0xc0], 1
mov dword [esi + 0xbc], 0
mov dword [esi + 0xb8], 0
mov dword [esi + 0xb4], 0
mov dword [esi + 0xb0], 0
mov ecx, dword [esi + 4]
shr al, 3
neg al
movsx edi, al
mov edx, dword [esi + edi + 0xc8]
mov eax, dword [esi + edi + 0xcc]
mov dword [esi + 8], edi
mov ch, cl
and ch, 7
mov cl, ch
shld eax, edx, cl
shl edx, cl
not cl
mov dword [esi + 0x2c], eax
mov eax, dword [esi + 4]
mov ebx, dword [esi + edi + 0xc4]
shr eax, 3
mov edi, ebx
and eax, 0x10
shr edi, 1
shr edi, cl
mov cl, ch
or edi, edx
mov edx, dword [esi + 8]
mov edx, dword [esi + edx + 0xc0]
shld ebx, edx, cl
shl edx, cl
mov ecx, dword [esi + 0x8c]
and edi, dword [ecx + eax + 8]
and edx, dword [ecx + eax]
and ebx, dword [ecx + eax + 4]
or edx, edi
mov edi, dword [esi + 0x2c]
and edi, dword [ecx + eax + 0xc]
mov eax, dword [esi + 4]
or ebx, edi
lea ecx, [eax + 1]
or ebx, edx
je 0x542920
cmp eax, 0xff
ja 0x542a3e
mov dword [esi + 4], ecx
mov ecx, dword [esi + 0x28]
mov edx, dword [esi + 0x1c]
shl eax, 8
mov byte [esi + 3], 1
mov dword [esi + 0xe0], 3
movzx eax, ax
push dword [esi + 0x38]
push eax
push dword [esi + 0x24]
call fcn.004873b0
mov ecx, dword [esi + 4]
add esp, 0xc
jmp 0x542908
mov edi, dword [esi + 0x1c]
mov ecx, dword [esi + 0x10]
mov eax, dword [esi + 0x30]
add dword [edi + 0x68], ecx
lock inc dword [eax]
jle 0x5432c0
mov edx, dword [edi + 0x94]
cmp edx, dword [edi + 0x8c]
jne 0x542a82
lea ecx, [edi + 0x8c]
mov dword [esi + 0xe0], 4
call fcn.00531740
mov edi, dword [esi + 0x1c]
mov ecx, dword [esi + 0x10]
mov edx, dword [edi + 0x94]
mov eax, dword [edi + 0x90]
mov ebx, dword [esi + 0x30]
mov dword [eax + edx*8], ebx
mov dword [eax + edx*8 + 4], ecx
inc edx
mov eax, ecx
mov ecx, edi
mov dword [edi + 0x94], edx
mov byte [esi + 3], 0
mov dword [esi + 0xe0], 3
mov edx, ebx
push dword [esi + 0x24]
push eax
call fcn.004874a0
add esp, 8
mov bl, 1
mov dword [esi + 4], 0
mov eax, dword [esi + 0x3c]
mov edi, dword [esi + 0x34]
mov edx, dword [esi + 0x20]
mov ecx, dword [eax + 4]
mov eax, dword [ecx + 0xa8]
cmp dword [ecx + 0xa4], 0
mov dword [ecx + 0xa4], edi
mov edi, ecx
mov dword [ecx + 0xa8], edx
mov dword [ecx + 0xac], 0
je 0x542b04
push eax
push 0
push dword [0x5b93c8]
call dword [sym.imp.kernel32.dll_HeapFree]
test bl, bl
je 0x542ba9
mov eax, dword [esi + 0x88]
cmp dword [esi + 0xc], eax
jbe 0x542b64
mov ecx, dword [edi + 0x24]
mov eax, dword [edi + 0x20]
mov edx, dword [edi + 0x2c]
mov dword [esi + 0x84], ecx
mov ecx, dword [edi + 0x28]
cmp eax, 1
mov dword [edi + 0x20], 0
je 0x542b69
cmp eax, 2
je 0x542b73
mov byte [esi + 0x1b], 0
mov dword [esi + 0xe0], 1
mov ecx, str.state_saver_does_not_have_saved_state_ID_TU
mov edx, 0x28
push 0x5556cc
call fcn.0053bf30
add esp, 4
jmp 0x5432c0
mov eax, dword [esi + 0x3c]
jmp 0x542b83
lock dec dword [ecx]
jne 0x542b73
call fcn.00462220
mov eax, dword [esi + 0x3c]
mov dword [esi + 0xe0], 1
mov edi, dword [eax + 4]
mov ecx, dword [eax]
mov byte [esi + 0x1b], 0
mov dword [esi + 0xe0], 1
mov edx, edi
push dword [esi + 0x24]
push dword [ebp + 8]
push dword [esi + 0x84]
call fcn.004873b0
add esp, 0xc
mov eax, dword [esi + 0xd8]
mov edx, dword [esi + 0x24]
mov dword fs:[0], eax
mov eax, dword [esi + 4]
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
mov eax, dword [esi + 0x28]
cmp dword [eax + 0x50], 1
jne 0x542781
mov eax, dword [esi + 0x28]
mov edx, dword [esi + 0x1c]
mov eax, dword [eax + 0x54]
mov edi, dword [edx + 0x70]
cmp dword [edx + 0xb0], 0
je 0x542c47
mov ecx, dword [edx + 0xb8]
mov ebx, dword [edx + 0xb4]
mov edx, edi
mov edi, ecx
sub edi, ebx
neg edi
sub ecx, ebx
cmovb ecx, edi
mov edi, edx
jmp 0x542c49
mov byte [esi + 1], 1
mov dword [esi + 0xe0], 6
push 0x55712c
call fcn.0053bb10
add esp, 4
jmp 0x5432c0
mov ecx, edx
mov edx, dword [esi + 0x10]
mov byte [esi + 2], 0
mov dword [esi + 0xe0], 5
push 0x55864c
call fcn.0053bb10
add esp, 4
jmp 0x5432c0
xor ecx, ecx
add ecx, edi
mul dword [esi + 0x2c]
mov edx, 0xffffffff
cmovno edx, eax
cmp ecx, edx
jae 0x542751
jmp 0x542781
mov edx, dword [esi + 0x10]
mov byte [esi + 2], 0
mov dword [esi + 0xe0], 5
push 0x55863c
call fcn.0053bb10
add esp, 4
jmp 0x5432c0
mov edx, dword [esi + 0x20]
mov byte [esi + 2], 0
mov dword [esi + 0xe0], 5
push 0x55865c
call fcn.0053bb10
add esp, 4
jmp 0x5432c0
mov edx, dword [esi + 0x80]
mov dword [esi + 0xe0], 0
mov ecx, edi
push 0x5555b4
call fcn.0053bb10
add esp, 4
jmp 0x5432c0
mov byte [esi + 2], 0
mov dword [esi + 0xe0], 5
xor ecx, ecx
xor edx, edx
push 0x5580f8
call fcn.0053bb10
add esp, 4
jmp 0x5432c0
mov byte [esi + 0x1b], 1
mov dword [esi + 0xe0], 1
push 0x55580c
call fcn.0053bb10
add esp, 4
jmp 0x5432c0
mov byte [esi + 1], 1
mov dword [esi + 0xe0], 6
xor ecx, ecx
xor edx, edx
push 0x558198
call fcn.0053bb10
add esp, 4
jmp 0x5432c0
mov byte [esi + 1], 1
mov dword [esi + 0xe0], 6
xor ecx, ecx
xor edx, edx
push 0x5581a8
call fcn.0053bb10
add esp, 4
jmp 0x5432c0
mov byte [esi + 3], 1
xor ecx, ecx
xor edx, edx
push 0x5580e8
call fcn.0053bb10
add esp, 4
jmp 0x5432c0
mov eax, dword [esi + 0x20]
lea edx, [esi + 0xa8]
lea ecx, [esi + 0xac]
mov dword [esi + 0x40], 0x558614
mov dword [esi + 0x44], 3
mov dword [esi + 0x50], 0
mov byte [esi + 2], 0
mov dword [esi + 0xe0], 5
mov dword [esi + 0x60], edx
mov dword [esi + 0x64], fcn.004476a0
mov dword [esi + 0x68], ecx
lea ecx, [esi + 0x60]
lea edx, [esi + 0x94]
mov dword [esi + 0x6c], fcn.004476a0
mov dword [esi + 0x70], edx
mov dword [esi + 0x48], ecx
lea ecx, [esi + 0x40]
mov edx, 0x55862c
mov dword [esi + 0x74], 0x473420
mov dword [esi + 0x4c], 3
mov dword [esi + 0xac], eax
call fcn.0053ba80
jmp 0x5432c0
mov edx, dword [esi + 4]
mov byte [esi + 2], 0
mov dword [esi + 0xe0], 5
mov ecx, edi
push 0x558138
call fcn.0053bab0
add esp, 4
jmp 0x5432c0
mov byte [esi + 2], 0
mov dword [esi + 0xe0], 5
mov edx, eax
push 0x558148
call fcn.0053bab0
add esp, 4
jmp 0x5432c0
mov byte [esi + 2], 0
mov dword [esi + 0xe0], 5
mov ecx, 5
push 0x558118
call fcn.0053bab0
add esp, 4
jmp 0x5432c0
mov byte [esi + 2], 0
mov dword [esi + 0xe0], 5
mov ecx, 4
push 0x5578ec
call fcn.0053bb70
add esp, 4
jmp 0x5432c0
mov byte [esi + 1], 1
mov dword [esi + 0xe0], 6
push 0x55866c
call fcn.0053bb70
add esp, 4
jmp 0x5432c0
mov edx, dword [esi + 0x28]
mov byte [esi + 2], 0
mov dword [esi + 0xe0], 5
mov ecx, 0xd
push 0x558178
call fcn.0053bb70
add esp, 4
jmp 0x5432c0
mov byte [esi + 1], 1
mov dword [esi + 0xe0], 6
mov ecx, 1
xor edx, edx
push 0x558108
call fcn.0053bab0
add esp, 4
jmp 0x5432c0
dec edx
mov byte [esi + 1], 1
mov dword [esi + 0xe0], 6
mov ecx, 4
push 0x5578ec
call fcn.0053bb70
add esp, 4
jmp 0x5432c0
mov byte [esi + 2], 0
mov dword [esi + 0xe0], 5
push 0x55866c
call fcn.0053bb70
add esp, 4
jmp 0x5432c0
mov dword [esi + 0xe0], 2
mov ecx, str.called__Result::unwrap____on_an__Err__value
mov edx, 0x2b
push 0x5546ac
push 0x5545b4
lea eax, [esi + 0x60]
push eax
call fcn.0053be90
add esp, 0xc
jmp 0x5432c0
mov dword [esi + 0xe0], 2
mov ecx, str.called__Result::unwrap____on_an__Err__value
mov edx, 0x2b
push 0x54b688
push 0x54b584
lea eax, [esi + 0x60]
push eax
call fcn.0053be90
add esp, 0xc
jmp 0x5432c0
mov ecx, 0x558158
mov byte [esi + 2], 0
mov dword [esi + 0xe0], 5
call fcn.0053bf10
jmp 0x5432c0
mov ecx, 0x558168
mov byte [esi + 2], 0
mov dword [esi + 0xe0], 5
call fcn.0053bf10
jmp 0x5432c0
mov byte [esi + 1], 1
mov dword [esi + 0xe0], 6
mov ecx, 1
xor edx, edx
push 0x558108
call fcn.0053bab0
add esp, 4
jmp 0x5432c0
dec edx
mov byte [esi + 1], 1
mov dword [esi + 0xe0], 6
mov ecx, 4
push 0x5578ec
call fcn.0053bb70
add esp, 4
jmp 0x5432c0
mov byte [esi + 1], 1
mov dword [esi + 0xe0], 6
mov ecx, 1
xor edx, edx
push 0x558108
call fcn.0053bab0
add esp, 4
jmp 0x5432c0
dec edx
mov byte [esi + 1], 1
mov dword [esi + 0xe0], 6
mov ecx, 4
push 0x5578ec
call fcn.0053bb70
add esp, 4
jmp 0x5432c0
mov ecx, 4
mov edx, edi
mov dword [esi + 0xe0], 2
call fcn.0053b730
jmp 0x5432c0
mov eax, 1
mov dword [esi + 0x64], 0
mov byte [esi + 3], 1
mov dword [esi + 0xe0], 3
mov edx, 0x2b
shl eax, cl
mov ecx, str.called__Result::unwrap____on_an__Err__value
mov dword [esi + 0x60], eax
push 0x55581c
push 0x554594
lea eax, [esi + 0x60]
push eax
call fcn.0053be90
add esp, 0xc
jmp 0x5432c0
mov dword [esi + 0x64], 0
mov dword [esi + 0x60], 0x8000000
mov byte [esi + 3], 1
mov dword [esi + 0xe0], 3
mov ecx, str.called__Result::unwrap____on_an__Err__value
mov edx, 0x2b
push 0x55582c
push 0x554594
lea eax, [esi + 0x60]
push eax
call fcn.0053be90
add esp, 0xc
ud2