Function at 0x4add94
Capabilities:
Resolve function by parsing pe exports

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff0
sub esp, 0x4a0
mov esi, edx
mov dword [esp + 0x84], ecx
call 0x4addb1
pop eax
mov dword [esp + 0x2c0], eax
mov edx, dword [edx + 0x280]
add edx, 8
lea edi, [esp + 0x100]
mov ecx, edi
call fcn.0042d2f6
mov ecx, edi
mov edx, 0x53e818
call fcn.0047990b
mov ecx, dword [eax + 0x174]
or ecx, dword [eax + 0x17c]
movzx edx, dl
mov dword [esp + 0x18], esi
je 0x4addfa
mov ecx, eax
call fcn.0046a4ef
jmp 0x4ade24
mov esi, dword [eax + 0x194]
mov ecx, eax
call fcn.0046a4ef
cmp esi, 1
mov esi, dword [esp + 0x18]
ja 0x4ade24
lea ecx, [esi + 0x218]
mov edx, dword [esi + 0x280]
add edx, 8
call fcn.004844b0
mov ecx, dword [esi + 0x248]
cmp ecx, 2
jne 0x4ade3c
mov dword [esp + 0x108], 2
jmp 0x4adea5
lea eax, [esi + 0x248]
mov dword [esp + 0x2c], eax
lea eax, [esi + 0x240]
test ecx, ecx
je 0x4ade6a
mov edx, dword [esi + 0x24c]
mov ecx, dword [esi + 0x250]
mov esi, dword [ecx + 8]
dec esi
and esi, 0xfffffff8
add edx, esi
add edx, 8
jmp 0x4ade76
mov edx, dword [esi + 0x24c]
mov ecx, dword [esi + 0x250]
push eax
push edx
call dword [ecx + 0x38]
add esp, 8
mov edi, eax
mov ebx, edx
lea esi, [esp + 0x108]
mov ecx, esi
mov edx, dword [esp + 0x2c]
call fcn.004eb997
mov dword [esi - 4], ebx
mov dword [esi - 8], edi
lea edi, [esp + 0x100]
mov esi, dword [esp + 0x18]
mov eax, dword [esi + 0x258]
movsd xmm0, qword [esp + 0x110]
movsd qword [esp + 0x320], xmm0
movups xmm0, xmmword [esp + 0x100]
movaps xmmword [esp + 0x310], xmm0
mov dword [esp + 0x328], eax
cmp dword [esp + 0x318], 2
je 0x4adef1
lea ecx, [esp + 0x318]
lea edx, [esp + 0x310]
call fcn.004eb9c0
mov dword [esp + 0x480], 2
and dword [esp + 0x490], 0
lea eax, [esi + 0x218]
mov dword [esp + 0xac], eax
lea eax, [esi + 0x288]
mov dword [esp + 0xa8], eax
lea eax, [esi + 0xc8]
mov dword [esp + 0x2c], eax
movzx eax, byte [esi + 0x278]
test eax, eax
je 0x4adf76
cmp eax, 1
jne 0x4af533
mov eax, esi
mov esi, dword [esi + 0x27c]
mov bl, byte [eax + 0x279]
mov ecx, edi
mov edx, dword [esp + 0x2c]
push dword [ebp + 8]
call fcn.00483274
pop eax
cmp byte [esp + 0x100], 5
jne 0x4adff1
mov byte [esp + 0x1f0], 5
mov al, 5
jmp 0x4ae120
lea ecx, [esp + 0x2ec]
mov edx, esi
push dword [ebp + 8]
call fcn.00484504
pop eax
movzx eax, byte [esp + 0x2ec]
cmp eax, 4
je 0x4ae348
mov bl, byte [esp + 0x2ed]
mov edi, dword [esp + 0x2f0]
mov edx, dword [esp + 0x2f4]
mov ecx, dword [esp + 0x300]
mov dword [esp + 0x2c8], ecx
mov ecx, dword [esp + 0x2fc]
mov dword [esp + 0x2c4], ecx
mov ecx, dword [esp + 0x2f8]
cmp al, 3
jne 0x4ae02d
mov word [esi + 0x278], 0x101
and dword [esi + 0x27c], 0
lea edi, [esp + 0x100]
jmp 0x4adf28
mov eax, dword [esp + 0x100]
cmp al, 4
jne 0x4ae10b
mov ecx, dword [esp + 0x18]
mov eax, dword [ecx + 0x19c]
push dword [ebp + 8]
push dword [ecx + 0x198]
lea ecx, [esp + 0x1f8]
push ecx
call dword [eax + 0x18]
add esp, 0xc
mov al, byte [esp + 0x1f0]
jmp 0x4ae120
mov byte [esp + 0xc], bl
mov dword [esp + 0x28], edx
mov ebx, dword [esi + 0x280]
mov edx, dword [esi + 0x284]
add ebx, 8
add edx, 8
test eax, eax
mov dword [esp + 0x14], edx
je 0x4ae156
cmp eax, 1
jne 0x4af655
mov eax, dword [esp + 0x28]
mov dword [esp + 0x350], eax
mov dword [esp + 0x354], ecx
mov eax, dword [esp + 0x2c4]
mov ecx, dword [esp + 0x2c8]
mov dword [esp + 0x35c], ecx
mov dword [esp + 0x358], eax
lea ecx, [esp + 0x1f8]
lea edx, [esp + 0x350]
call fcn.00417c4d
mov dword [esp + 0x1f4], edi
mov al, byte [esp + 0xc]
mov byte [esp + 0x1f1], al
mov byte [esp + 0x1f0], 1
cmp dword [esi + 0x218], 0
je 0x4ae1ee
cmp dword [esi + 0x220], edi
jne 0x4ae1ee
mov byte [esi + 0x278], 1
mov al, byte [esp + 0xc]
mov byte [esi + 0x279], al
mov dword [esi + 0x27c], edi
lea ecx, [esp + 0x1f8]
call fcn.0043e6cb
lea ecx, [esp + 0x350]
call fcn.0043e6cb
lea edi, [esp + 0x100]
jmp 0x4adf28
mov ecx, dword [esp + 0x104]
mov dword [esp + 0x1f0], eax
mov dword [esp + 0x1f4], ecx
cmp al, 5
je 0x4af78a
mov edx, dword [esp + 0x1f0]
cmp dl, 4
jne 0x4af5c5
mov eax, dword [esp + 0x18]
mov byte [eax + 0x278], 2
mov byte [eax + 0x279], bl
mov dword [eax + 0x27c], esi
mov esi, eax
jmp 0x4adf28
lea esi, [esp + 0x100]
mov ecx, esi
mov edx, ebx
call fcn.0042d2f6
mov ecx, esi
mov edx, 0x53e6e4
call fcn.0047990b
mov esi, eax
mov ebx, edx
add eax, 8
mov dword [esp + 0xc], eax
lea edx, [esi + 0x128]
lea ecx, [esp + 0x1f0]
mov dword [esp + 4], edx
push edi
call fcn.00437c4a
pop eax
cmp dword [esp + 0x1f0], 0
mov byte [esp + 0x38], bl
je 0x4ae262
mov ecx, dword [esi + 0x190]
mov edx, edi
call fcn.0043335f
test al, al
je 0x4ae280
cmp dword [esi + 0xb8], 0
jne 0x4ae29c
cmp dword [esi + 0xbc], edi
ja 0x4ae29c
lea eax, [edi + 2]
mov ecx, eax
shr ecx, 0x1f
mov dword [esi + 0xb8], ecx
mov dword [esi + 0xbc], eax
jmp 0x4ae29c
movsd xmm0, qword [esp + 0x200]
movsd qword [esp + 0x110], xmm0
movups xmm0, xmmword [esp + 0x1f0]
movaps xmmword [esp + 0x100], xmm0
mov ecx, ebx
mov edx, dword [esp + 0x14]
lea esi, [esp + 0x100]
push esi
call fcn.00479a61
pop eax
movups xmm0, xmmword [esp + 0x350]
movaps xmmword [esp + 0x100], xmm0
mov ecx, ebx
call fcn.00479bee
mov dword [esp + 0x110], eax
mov dword [esp + 0x114], edi
mov edi, esi
mov esi, dword [esp + 0x18]
mov ecx, dword [esp + 0xac]
mov edx, edi
call fcn.004305d9
jmp 0x4adf28
mov ebx, esi
mov ecx, dword [esp + 0x1f4]
mov edx, dword [esp + 0x1f8]
call fcn.00438308
lea edi, [esp + 0x1f0]
jmp 0x4ae2c4
mov eax, dword [esp + 0xc]
cmp dword [eax], 0
jne 0x4ae29c
cmp dword [esi + 0xc], edi
ja 0x4ae29c
lea eax, [edi + 2]
mov ecx, eax
shr ecx, 0x1f
mov dword [esi + 8], ecx
mov dword [esi + 0xc], eax
mov ebx, esi
lea esi, [esp + 0x100]
mov ecx, esi
mov edx, edi
push 0
push 0
call fcn.00431065
pop eax
pop ecx
lea edi, [esp + 0x1f0]
mov ecx, edi
mov edx, esi
call fcn.00438345
mov dword [esp + 0x354], eax
mov dword [esp + 0x358], edx
mov eax, dword [esp + 4]
mov dword [esp + 0x350], eax
mov ecx, edi
mov edx, dword [esp + 0x14]
call fcn.0046a36a
mov ecx, edi
mov edx, 0x53e894
call fcn.00479858
mov esi, eax
mov byte [esp + 0x14], dl
add eax, 8
mov edi, ebx
add edi, 0x170
mov ecx, dword [esp + 0xc]
lea edx, [esp + 0x350]
push eax
push edi
push 1
push dword [esp + 0x34]
call fcn.004799f3
add esp, 0x10
movzx edx, byte [esp + 0x14]
mov ecx, esi
call fcn.0046a4ef
movzx edx, byte [esp + 0x38]
mov ecx, ebx
call fcn.0046a4ef
lea edi, [esp + 0x100]
mov esi, dword [esp + 0x18]
jmp 0x4adf28
mov edx, dword [esi + 0x280]
add edx, 8
mov ecx, edi
call fcn.0042d2f6
mov ecx, edi
mov edx, 0x53e7b8
call fcn.0047990b
mov ebx, eax
mov byte [esp + 0x43], dl
mov edx, dword [esi + 0x284]
add edx, 8
mov ecx, edi
call fcn.0046a36a
mov ecx, edi
mov edx, 0x53e8d8
call fcn.00479858
mov edi, eax
mov byte [esp + 2], dl
mov esi, dword [ebx + 0x28]
mov edx, dword [ebx + 0x2c]
mov ecx, esi
call fcn.00430619
cmp eax, 1
mov dword [esp + 4], ebx
mov dword [esp + 0x34], edi
jne 0x4ae448
mov ebx, edx
lea ecx, [esp + 0x100]
mov edx, dword [esp + 0x2c]
push dword [ebp + 8]
call fcn.0048321e
pop eax
cmp byte [esp + 0x100], 5
jne 0x4ae3d8
mov bl, 5
lea edi, [esp + 0x100]
jmp 0x4ae5da
mov eax, dword [esp + 0x100]
cmp al, 4
jne 0x4ae62f
and dword [esp + 0x104], 0
mov dword [esp + 0x108], ebx
mov byte [esp + 0x100], 7
mov ecx, dword [esp + 0x2c]
lea edx, [esp + 0x100]
call fcn.0048395c
movzx ecx, al
mov edx, str.invalid_WINDOW_UPDATE_frame
push 0x53e5fc
push 0x1b
call fcn.004797ad
pop eax
pop ecx
add esi, ebx
mov ecx, 1
jo 0x4ae436
mov eax, dword [esp + 4]
mov dword [eax + 0x28], esi
xor ecx, ecx
mov edx, 0x53e60c
call fcn.0047982e
mov ebx, dword [esp + 4]
mov edi, dword [esp + 0x34]
lea eax, [edi + 8]
mov dword [esp + 0x14], eax
lea eax, [ebx + 0x128]
mov dword [esp + 0x28], eax
lea eax, [ebx + 0x170]
mov dword [esp + 0xc], eax
lea esi, [ebx + 0x30]
lea edi, [esp + 0x100]
mov ecx, edi
mov edx, dword [esp + 0x2c]
push dword [ebp + 8]
call fcn.0048321e
pop eax
cmp byte [esp + 0x100], 5
je 0x4ae5d8
mov eax, dword [esp + 0x100]
cmp al, 4
jne 0x4ae5e3
mov ecx, edi
mov edx, esi
push dword [esp + 0x28]
call fcn.004378f7
pop eax
cmp dword [esp + 0x100], 0
je 0x4ae603
mov eax, dword [esp + 0x108]
mov dword [esp + 0x1f8], eax
movsd xmm0, qword [esp + 0x100]
movsd qword [esp + 0x1f0], xmm0
lea edi, [esp + 0x1f0]
mov ecx, edi
call fcn.00436868
mov ebx, dword [eax + 0x18]
mov ecx, edi
call fcn.00436868
mov dl, byte [eax + 0x20]
add dl, 0xfa
movzx ecx, dl
cmp dl, 6
push 6
pop edx
cmovae ecx, edx
cmp cl, 3
je 0x4ae51b
movzx ecx, cl
cmp ecx, 4
jne 0x4ae5b6
cmp byte [eax + 0x21], 0
jne 0x4ae525
jmp 0x4ae5b6
cmp byte [eax + 0x22], 0
je 0x4ae5b6
lea ecx, [esp + 0x1f0]
call fcn.00436868
mov ecx, dword [eax + 0x48]
mov edx, dword [eax + 0x4c]
call fcn.00430619
cmp eax, 1
jne 0x4ae5b6
mov edi, edx
lea ecx, [esp + 0x1f0]
call fcn.00436868
mov eax, dword [eax + 0xcc]
mov dword [esp + 0x104], eax
mov dword [esp + 0x108], edi
mov byte [esp + 0x100], 7
mov ecx, dword [esp + 0x2c]
lea edx, [esp + 0x100]
call fcn.0048395c
movzx ecx, al
mov edx, str.invalid_WINDOW_UPDATE_frame
push 0x53e5bc
push 0x1b
call fcn.004797ad
pop eax
pop ecx
lea ecx, [esp + 0x1f0]
call fcn.00436850
add edi, dword [eax + 0x48]
mov ecx, 1
jo 0x4ae5ac
mov dword [eax + 0x48], edi
xor ecx, ecx
mov edx, 0x53e5ec
call fcn.0047982e
xor eax, eax
cmp ebx, 0x3b9aca00
setne al
mov ecx, dword [esp + 0xc]
lea edx, [esp + 0x1f0]
push eax
call fcn.004335e0
pop eax
jmp 0x4ae466
mov bl, 5
mov esi, dword [esp + 4]
jmp 0x4af475
mov bl, 5
cmp al, 5
mov esi, dword [esp + 4]
je 0x4af475
mov ecx, dword [esp + 0x104]
mov edx, eax
shrd edx, ecx, 8
shr ecx, 8
jmp 0x4ae654
mov ecx, edi
mov edx, dword [esp + 0x2c]
push dword [ebp + 8]
call fcn.0048321e
pop eax
mov bl, 5
cmp byte [esp + 0x100], 5
jne 0x4ae669
mov ecx, dword [esp + 0x6c]
mov edx, dword [esp + 0x68]
mov esi, dword [esp + 4]
jmp 0x4af412
mov bl, 5
cmp al, 5
mov esi, dword [esp + 4]
je 0x4af45e
mov ecx, dword [esp + 0x104]
mov edx, eax
shrd edx, ecx, 8
shr ecx, 8
lea edi, [esp + 0x100]
mov dword [esp + 0x94], edx
mov dword [esp + 0x98], ecx
mov ebx, eax
jmp 0x4af475
mov ebx, dword [esp + 0x100]
cmp bl, 4
mov esi, dword [esp + 0x18]
mov eax, dword [esp + 4]
jne 0x4af3b0
lea ecx, [eax + 0xc0]
mov dword [esp + 0x38], ecx
mov edx, dword [esp + 0x14]
push esi
push dword [esp + 0x2c]
mov ebx, eax
call fcn.0047962a
pop ecx
pop edx
mov eax, dword [esi + 0x188]
mov dword [esp + 0x2bc], eax
mov esi, ebx
lea eax, [ebx + 0xe8]
mov dword [esp + 0x2b8], eax
mov eax, ebx
add eax, 0x108
mov dword [esp + 0x2b4], eax
lea ebx, [esp + 0x2e0]
mov eax, dword [esi + 0x170]
cmp eax, dword [esi + 0x174]
jbe 0x4ae83c
lea ecx, [esp + 0x1f0]
mov edx, dword [esp + 0x2b8]
push dword [esp + 0x28]
call fcn.00437e07
pop eax
cmp dword [esp + 0x1f0], 0
je 0x4ae83c
mov eax, dword [esp + 0x1f8]
mov dword [esp + 0x108], eax
movsd xmm0, qword [esp + 0x1f0]
movsd qword [esp + 0x100], xmm0
mov ecx, dword [esp + 0xc]
mov edx, edi
call fcn.00433588
mov ecx, edi
call fcn.00436850
mov ecx, eax
call fcn.00430bee
mov eax, dword [esp + 0x100]
mov ecx, dword [esp + 0x104]
mov edx, dword [esp + 0x108]
mov dword [esp + 0x3c4], edx
mov dword [esp + 0x3c0], ecx
test eax, eax
je 0x4ae83c
mov dword [esp + 0x100], eax
mov eax, dword [esp + 0x3c0]
mov ecx, dword [esp + 0x3c4]
mov dword [esp + 0x108], ecx
mov dword [esp + 0x104], eax
mov ecx, edi
call fcn.00436868
cmp byte [eax + 0xe1], 0
jne 0x4ae83c
mov ecx, edi
call fcn.00436850
mov byte [eax + 0xe1], 1
mov eax, dword [esp + 0x38]
cmp dword [eax], 0
je 0x4ae80c
mov eax, dword [esp + 4]
mov esi, dword [eax + 0xc4]
mov eax, dword [esp + 4]
mov edi, dword [eax + 0xc8]
lea ecx, [esp + 0x100]
call fcn.00436850
mov dword [eax + 0x58], 1
mov dword [eax + 0x5c], esi
mov edx, dword [esp + 4]
mov dword [eax + 0x60], edi
lea edi, [esp + 0x100]
mov eax, dword [esp + 0x104]
mov ecx, dword [esp + 0x108]
mov dword [edx + 0xc4], eax
mov dword [edx + 0xc8], ecx
jmp 0x4ae83c
mov eax, dword [esp + 0x104]
mov ecx, dword [esp + 0x108]
mov dword [esi + 0xc0], 1
mov dword [esi + 0xc4], eax
mov dword [esi + 0xc8], ecx
mov dword [esi + 0xcc], eax
mov dword [esi + 0xd0], ecx
mov dword [esp + 0x440], 2
and dword [esp + 0x450], 0
mov ecx, ebx
mov edx, dword [esp + 0x38]
push dword [esp + 0x28]
call fcn.00437eba
pop eax
cmp dword [esp + 0x2e0], 0
je 0x4aea30
mov eax, dword [esp + 0x2e8]
mov dword [esp + 0x60], eax
movsd xmm0, qword [esp + 0x2e0]
movsd qword [esp + 0x58], xmm0
mov dword [esp + 0x460], 2
and dword [esp + 0x470], 0
mov ecx, ebx
call fcn.00436868
mov esi, dword [eax + 0x18]
mov ecx, ebx
call fcn.00436850
lea edx, [eax + 0x64]
lea ecx, [esp + 0x1f0]
push dword [esp + 0x14]
call fcn.0048b55b
pop eax
movzx eax, byte [esp + 0x1f0]
cmp eax, 9
jne 0x4ae915
lea ecx, [esp + 0x58]
call fcn.00436868
cmp byte [eax + 0x20], 5
je 0x4aed67
xor eax, eax
cmp esi, 0x3b9aca00
setne al
mov ecx, dword [esp + 0x60]
mov dword [esp + 0x108], ecx
movsd xmm0, qword [esp + 0x58]
movsd qword [esp + 0x100], xmm0
mov ecx, dword [esp + 0xc]
mov edx, edi
push eax
call fcn.004335e0
jmp 0x4ae9f3
test eax, eax
jne 0x4aea4e
lea eax, [esp + 0x1f8]
movups xmm0, xmmword [eax]
movups xmm1, xmmword [eax + 0x10]
movaps xmmword [esp + 0xe0], xmm1
movaps xmmword [esp + 0xd0], xmm0
lea ecx, [esp + 0x58]
call fcn.00436868
mov edi, dword [eax + 0x3c]
lea ecx, [esp + 0xd0]
call fcn.004797ff
xor edx, edx
mov ecx, 0
test eax, eax
je 0x4ae964
mov ecx, eax
test edi, edi
je 0x4ae9af
mov dword [esp + 0x80], esi
mov eax, dword [esp + 0x2bc]
cmp ecx, eax
cmovae ecx, eax
test edi, edi
cmovle edi, edx
cmp ecx, edi
cmovb edi, ecx
test edi, edi
lea esi, [esp + 0x58]
je 0x4aebea
mov ecx, esi
call fcn.00436868
mov eax, dword [eax + 0x38]
test eax, eax
mov ecx, 0
cmovle eax, ecx
mov edx, edi
cmp edi, eax
jbe 0x4aebea
mov ecx, esi
jmp 0x4ae9b3
lea ecx, [esp + 0x58]
call fcn.00436850
lea ecx, [eax + 0x64]
movaps xmm0, xmmword [esp + 0xd0]
movaps xmm1, xmmword [esp + 0xe0]
lea eax, [esp + 0x104]
movups xmmword [eax + 0x14], xmm1
movups xmmword [eax + 4], xmm0
mov byte [esp + 0x100], 0
mov edx, dword [esp + 0x14]
lea edi, [esp + 0x100]
push edi
call fcn.0048b4dc
pop eax
movzx eax, byte [esp + 0x1f0]
cmp eax, 9
je 0x4aea16
test eax, eax
je 0x4aea16
cmp eax, 3
je 0x4aea16
lea ecx, [esp + 0x1f0]
call fcn.004794e0
lea esi, [esp + 0x458]
mov ecx, esi
call fcn.0047952c
mov ecx, esi
call fcn.0047953d
jmp 0x4ae84f
lea ebx, [esp + 0x438]
mov ecx, ebx
call fcn.0047952c
mov ecx, ebx
call fcn.0047953d
mov esi, dword [esp + 4]
jmp 0x4af0d9
cmp eax, 3
mov dword [esp + 0x80], esi
jne 0x4aedc4
mov eax, dword [esp + 0x1f8]
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x210]
mov dword [esp + 0x24], eax
lea eax, [esp + 0x1fc]
movups xmm0, xmmword [eax]
movaps xmmword [esp + 0xd0], xmm0
mov eax, dword [eax + 0x10]
mov dword [esp + 0xe0], eax
mov eax, dword [esp + 0x214]
mov dword [esp + 0x78], eax
mov al, byte [esp + 0x220]
mov byte [esp + 0xb], al
lea ecx, [esp + 0x221]
mov eax, dword [ecx]
mov dword [esp + 0xf8], eax
mov eax, dword [ecx + 3]
mov dword [esp + 0xfb], eax
mov bh, byte [esp + 0x22c]
mov al, byte [esp + 0x22d]
mov byte [esp + 3], al
mov bl, byte [esp + 0x22e]
mov eax, dword [esp + 0x218]
mov dword [esp + 0x4c], eax
mov eax, dword [esp + 0x21c]
mov dword [esp + 0x48], eax
mov eax, dword [esp + 0x228]
mov dword [esp + 0x3c], eax
push 0x6d
lea eax, [esp + 0x233]
push eax
lea edi, [esp + 0x108]
push edi
call fcn.004f7e80
add esp, 0xc
mov ecx, dword [esp + 0x29c]
mov eax, dword [esp + 0x2a0]
mov dword [esp + 0x9c], eax
mov eax, dword [esp + 0x2a4]
mov dword [esp + 0xa0], eax
mov edx, dword [esp + 0x58]
mov dword [esp + 0xa4], ecx
mov dword [esp + 0x2cc], ecx
lea ecx, [esp + 0x304]
lea eax, [esp + 0x2cc]
push eax
call fcn.004379b3
pop eax
cmp dword [esp + 0x304], 0
je 0x4af825
mov eax, dword [esp + 0x30c]
mov dword [esp + 0x2d8], eax
movsd xmm0, qword [esp + 0x304]
movsd qword [esp + 0x2d0], xmm0
lea esi, [esp + 0x2d0]
mov ecx, esi
call fcn.00436850
mov byte [eax + 0xe5], 0
mov ecx, esi
call fcn.00436868
cmp dword [eax + 0x64], 0
mov ecx, dword [esp + 4]
je 0x4aef2d
mov eax, dword [ecx + 0x170]
cmp eax, dword [ecx + 0x174]
jbe 0x4aef1d
mov ecx, dword [esp + 0xc]
lea esi, [esp + 0x2d0]
mov edx, esi
call fcn.00433588
mov ecx, dword [esp + 0x38]
mov edx, esi
call fcn.00437cd3
jmp 0x4aef2d
mov dword [esp + 0x24], edx
mov dword [esp + 0x108], 2
and dword [esp + 0x118], 0
mov ecx, esi
call fcn.00436850
mov edi, eax
mov eax, dword [esp + 4]
mov edx, dword [eax + 0x114]
mov dword [esp + 0x10], edx
mov ebx, dword [edi + 0x3c]
test ebx, ebx
mov eax, 0
cmovle ebx, eax
lea ecx, [edi + 0x38]
cmp ebx, edx
cmovae ebx, edx
sub ebx, dword [edi + 0xd8]
cmovb ebx, eax
mov edx, dword [esp + 0x24]
call fcn.0043063b
mov esi, dword [esp + 0x24]
mov eax, dword [edi + 0x3c]
mov ecx, dword [edi + 0xd8]
sub ecx, esi
mov dword [edi + 0xd8], ecx
sub dword [edi + 0xd4], esi
test eax, eax
mov edx, 0
cmovle eax, edx
mov edx, dword [esp + 0x10]
cmp eax, edx
cmovae eax, edx
sub eax, ecx
mov ecx, 0
cmovb eax, ecx
cmp ebx, eax
jae 0x4aec86
mov ecx, edi
call fcn.00430be2
mov esi, dword [esp + 0x24]
mov ecx, dword [esp + 4]
mov eax, dword [ecx + 0x10c]
add eax, esi
jo 0x4aec9a
mov dword [ecx + 0x10c], eax
lea edi, [esp + 0x100]
mov ecx, edi
call fcn.0047952c
mov ecx, edi
call fcn.0047953d
mov dword [esp + 0x108], 2
and dword [esp + 0x118], 0
mov ecx, dword [esp + 0x2b4]
mov esi, dword [esp + 0x24]
mov edx, esi
call fcn.0043063b
mov bl, byte [esp + 0xee]
lea ecx, [esp + 0xd0]
call fcn.004797ff
mov ecx, ebx
cmp eax, esi
jbe 0x4aecf9
mov ebx, ecx
and bl, 0xfe
mov byte [esp + 0xee], bl
and cl, 1
mov byte [esp + 0xb], cl
mov ecx, edi
call fcn.0047952c
mov ecx, edi
call fcn.0047953d
mov eax, dword [esp + 0xd0]
mov dword [esp + 0x10], eax
mov edx, dword [esp + 0xe8]
lea eax, [esp + 0xd4]
movups xmm0, xmmword [eax]
movaps xmmword [esp + 0xb0], xmm0
mov eax, dword [eax + 0x10]
mov dword [esp + 0xc0], eax
mov bh, byte [esp + 0xec]
mov cl, byte [esp + 0xed]
mov eax, dword [esp + 0x5c]
mov dword [esp + 0x4c], eax
mov eax, dword [esp + 0x60]
mov dword [esp + 0x48], eax
mov dword [esp + 0x20], 0
jmp 0x4aef82
mov dword [esp + 0x80], esi
mov ebx, dword [eax + 0x24]
lea edi, [esp + 0x58]
mov ecx, edi
call fcn.00436868
mov esi, dword [eax + 0xcc]
mov ecx, edi
call fcn.00436850
lea ecx, [eax + 0x20]
mov edx, esi
push 1
mov dword [esp + 0x14], ebx
push ebx
call fcn.00430f88
pop eax
pop ecx
mov ecx, edi
call fcn.00436868
mov esi, dword [eax + 0xcc]
mov al, 8
mov dword [esp + 0x20], eax
mov bl, byte [esp + 0x1f]
mov bh, byte [esp + 0x1e]
mov cl, byte [esp + 3]
mov edx, dword [esp + 0x3c]
jmp 0x4aef86
mov ecx, dword [esp + 0x1f4]
mov dword [esp + 0x30], ecx
mov ecx, dword [esp + 0x1f8]
mov dword [esp + 0x10], ecx
mov dl, byte [esp + 0x220]
mov cl, byte [esp + 0x22c]
mov byte [esp + 0x1c], cl
mov dh, byte [esp + 0x22d]
mov cl, byte [esp + 0x22e]
mov byte [esp + 0x1d], cl
dec eax
mov eax, dword [eax*4 + 0x4af83c]
add eax, dword [esp + 0x2c0]
mov ecx, dword [esp + 0x210]
mov dword [esp + 0x8c], ecx
mov ecx, dword [esp + 0x214]
mov dword [esp + 0x90], ecx
mov esi, dword [esp + 0x218]
mov edi, dword [esp + 0x21c]
mov ecx, dword [esp + 0x228]
mov dword [esp + 0x88], ecx
mov cl, 7
mov dword [esp + 0x20], ecx
mov bl, byte [esp + 0x1f]
mov bh, byte [esp + 0x1e]
jmp eax
mov ecx, dword [esp + 0x38]
lea edx, [esp + 0x2d0]
call fcn.004306c1
mov eax, dword [esp + 0xe0]
mov dword [esp + 0xc0], eax
movaps xmm0, xmmword [esp + 0xd0]
movaps xmmword [esp + 0xb0], xmm0
mov eax, dword [esp + 0xf8]
mov ecx, dword [esp + 0xfb]
mov dword [esp + 0x70], eax
mov dword [esp + 0x73], ecx
push 0x6d
push edi
lea eax, [esp + 0x3c8]
push eax
call fcn.004f7e80
add esp, 0xc
mov al, 3
mov dword [esp + 0x20], eax
mov cl, byte [esp + 3]
mov edx, dword [esp + 0x3c]
mov esi, dword [esp + 0x44]
movzx eax, byte [esp + 0x1f0]
cmp eax, 9
mov byte [esp + 3], cl
mov dword [esp + 0x3c], edx
je 0x4aefb0
test eax, eax
je 0x4aefb0
cmp eax, 3
je 0x4aefb0
lea ecx, [esp + 0x1f0]
call fcn.004794e0
mov dword [esp + 0x30], esi
lea esi, [esp + 0x58]
mov ecx, esi
call fcn.00436868
cmp dword [eax + 0x64], 0
jne 0x4aefd2
mov ecx, esi
call fcn.00436868
cmp byte [eax + 0x20], 5
jne 0x4aefdd
mov ecx, dword [esp + 0x38]
mov edx, esi
call fcn.00437cd3
xor eax, eax
cmp dword [esp + 0x80], 0x3b9aca00
setne al
mov ecx, dword [esp + 0x60]
mov dword [esp + 0x108], ecx
movsd xmm0, qword [esp + 0x58]
movsd qword [esp + 0x100], xmm0
mov ecx, dword [esp + 0xc]
lea edi, [esp + 0x100]
mov edx, edi
push eax
call fcn.004335e0
pop eax
movzx eax, word [esp + 0x54]
mov word [esp + 0x50], ax
mov al, byte [esp + 0x56]
mov byte [esp + 0x52], al
movaps xmm0, xmmword [esp + 0xb0]
movaps xmmword [esp + 0x330], xmm0
mov eax, dword [esp + 0xc0]
mov dword [esp + 0x340], eax
mov eax, dword [esp + 0x70]
mov ecx, dword [esp + 0x73]
mov dword [esp + 0xf0], eax
mov dword [esp + 0xf3], ecx
push 0x6d
lea eax, [esp + 0x3c4]
push eax
lea eax, [esp + 0x358]
push eax
call fcn.004f7e80
add esp, 0xc
lea esi, [esp + 0x458]
mov ecx, esi
call fcn.0047952c
mov ecx, esi
call fcn.0047953d
lea esi, [esp + 0x438]
mov ecx, esi
call fcn.0047952c
mov ecx, esi
call fcn.0047953d
mov ecx, dword [esp + 0x20]
test cl, cl
mov byte [esp + 0x1f], bl
mov byte [esp + 0x1e], bh
je 0x4af12a
movzx eax, cl
cmp eax, 9
mov edx, dword [esp + 0x3c]
mov esi, dword [esp + 4]
jne 0x4af150
mov eax, dword [esp + 0x10]
mov dword [esp + 0x7c], eax
mov eax, dword [esp + 0x30]
mov dword [esp + 0x44], eax
mov ecx, edi
mov edx, dword [esp + 0x2c]
push dword [ebp + 8]
call fcn.00483274
pop eax
cmp byte [esp + 0x100], 5
je 0x4af3c4
mov ebx, dword [esp + 0x100]
cmp bl, 4
jne 0x4af3c8
mov ecx, dword [esp + 0x38]
mov edx, dword [esp + 0x14]
push dword [esp + 0x18]
push dword [esp + 0x2c]
call fcn.0047962a
pop ecx
pop edx
test al, al
jne 0x4ae6c7
jmp 0x4af3da
mov esi, dword [esp + 4]
mov dword [esi + 0xfc], 1
mov eax, dword [esp + 0x4c]
mov dword [esi + 0x100], eax
mov eax, dword [esp + 0x48]
mov dword [esi + 0x104], eax
mov edx, dword [esp + 0x3c]
mov byte [esp + 0x100], cl
mov al, byte [esp + 0x52]
lea ecx, [esp + 0x104]
mov byte [ecx - 1], al
movzx eax, word [esp + 0x50]
mov word [ecx - 3], ax
mov eax, dword [esp + 0x30]
mov dword [esp + 0x104], eax
mov eax, dword [esp + 0x10]
mov dword [esp + 0x108], eax
mov eax, dword [esp + 0x340]
mov dword [ecx + 0x18], eax
movaps xmm0, xmmword [esp + 0x330]
movups xmmword [ecx + 8], xmm0
mov eax, dword [esp + 0x24]
mov dword [esp + 0x120], eax
mov eax, dword [esp + 0x78]
mov dword [esp + 0x124], eax
mov eax, dword [esp + 0x4c]
mov dword [esp + 0x128], eax
mov eax, dword [esp + 0x48]
mov dword [esp + 0x12c], eax
mov al, byte [esp + 0xb]
mov byte [esp + 0x130], al
mov eax, dword [esp + 0xf3]
mov dword [ecx + 0x30], eax
mov eax, dword [esp + 0xf0]
mov dword [ecx + 0x2d], eax
mov dword [esp + 0x138], edx
mov byte [esp + 0x13c], bh
mov al, byte [esp + 3]
mov byte [esp + 0x13d], al
mov byte [esp + 0x13e], bl
push 0x6d
lea eax, [esp + 0x354]
push eax
lea eax, [esp + 0x147]
push eax
call fcn.004f7e80
add esp, 0xc
mov eax, dword [esp + 0xa4]
mov dword [esp + 0x1ac], eax
mov eax, dword [esp + 0xa0]
mov dword [esp + 0x1b4], eax
mov eax, dword [esp + 0x9c]
mov dword [esp + 0x1b0], eax
mov ebx, dword [esp + 0x2c]
mov ecx, ebx
mov edx, edi
call fcn.0048395c
movzx ecx, al
mov edx, 0x53e4f0
push 0x53e500
push 0xd
call fcn.004797ad
pop eax
pop ecx
mov ecx, edi
mov edx, ebx
push dword [ebp + 8]
call fcn.0048321e
pop eax
cmp byte [esp + 0x100], 5
je 0x4af3e6
mov ebx, dword [esp + 0x100]
cmp bl, 4
jne 0x4af3f2
mov ecx, dword [esp + 0x38]
mov edx, dword [esp + 0x14]
push dword [esp + 0x18]
push dword [esp + 0x2c]
call fcn.0047962a
pop ecx
pop edx
mov eax, dword [esp + 0x30]
mov dword [esp + 0x44], eax
mov eax, dword [esp + 0x10]
mov dword [esp + 0x7c], eax
jmp 0x4ae6c7
mov ecx, dword [esp + 0x104]
mov edx, ebx
shrd edx, ecx, 8
shr ecx, 8
mov esi, eax
jmp 0x4af412
mov bl, 5
jmp 0x4af3dc
mov ecx, dword [esp + 0x104]
mov edx, ebx
shrd edx, ecx, 8
shr ecx, 8
jmp 0x4af412
mov bl, 4
mov ecx, dword [esp + 0x6c]
mov edx, dword [esp + 0x68]
jmp 0x4af412
mov bl, 5
mov ecx, dword [esp + 0x6c]
mov edx, dword [esp + 0x68]
jmp 0x4af402
mov ecx, dword [esp + 0x104]
mov edx, ebx
shrd edx, ecx, 8
shr ecx, 8
mov eax, dword [esp + 0x30]
mov dword [esp + 0x44], eax
mov eax, dword [esp + 0x10]
mov dword [esp + 0x7c], eax
cmp bl, 5
mov dword [esp + 0x6c], ecx
mov dword [esp + 0x68], edx
je 0x4af475
movzx eax, bl
cmp eax, 4
jne 0x4af467
mov eax, dword [ebp + 8]
mov eax, dword [eax]
mov ecx, dword [eax]
push dword [eax + 4]
call dword [ecx]
add esp, 4
mov ebx, eax
mov edi, edx
mov eax, dword [esi + 0xb0]
test eax, eax
je 0x4af450
push dword [esi + 0xb4]
call dword [eax + 0xc]
add esp, 4
mov dword [esi + 0xb0], ebx
mov dword [esi + 0xb4], edi
mov bl, 4
lea edi, [esp + 0x100]
jmp 0x4af475
mov dword [esp + 0x94], edx
mov dword [esp + 0x98], ecx
mov ecx, dword [esp + 0x34]
mov al, byte [esp + 2]
movzx edx, al
call fcn.0046a4ef
movzx edx, byte [esp + 0x43]
mov ecx, esi
call fcn.0046a4ef
cmp bl, 4
jne 0x4af782
mov eax, dword [esp + 0xa8]
cmp dword [eax], 0
mov eax, dword [esp + 0x18]
jne 0x4af4d4
cmp byte [eax + 0x23c], 0
jne 0x4af78a
cmp dword [eax + 0x218], 0
je 0x4af78a
cmp dword [eax + 0x21c], 0x7fffffff
je 0x4af78a
mov edx, dword [eax + 0x280]
add edx, 8
mov ecx, edi
call fcn.0042d2f6
mov ecx, edi
mov edx, 0x53e774
call fcn.0047990b
mov esi, dword [eax + 0x174]
movzx edx, dl
mov edi, dword [eax + 0x17c]
mov ecx, eax
call fcn.0046a4ef
or edi, esi
mov esi, dword [esp + 0x18]
lea edi, [esp + 0x100]
jne 0x4af78a
mov edx, dword [esi + 0x280]
add edx, 8
mov ecx, dword [esp + 0xac]
call fcn.004844b0
jmp 0x4adf28
mov edi, dword [esi + 0x27c]
mov bl, byte [esi + 0x279]
mov eax, dword [esp + 0xa8]
movsd xmm0, qword [eax + 0x10]
movups xmm1, xmmword [eax]
and dword [esi + 0x288], 0
and dword [esp + 0x1f8], 0
movsd qword [esp + 0x110], xmm0
and dword [esp + 0x1fc], 0
movaps xmmword [esp + 0x100], xmm1
and dword [esp + 0x200], 0
mov eax, dword [esp + 0x100]
mov dword [esp + 0x1f0], 0x53f62c
mov dword [esp + 0x1f4], str.OutOfRangeImpossibleNotEnoughInvalidTooShortTooLongBadFormat__NonexhaustiveEmpty
test eax, eax
je 0x4af5de
lea ecx, [esp + 0x3c0]
lea esi, [esp + 0x100]
mov edx, esi
call fcn.00417c4d
mov esi, dword [esi + 0x14]
lea ecx, [esp + 0x1f0]
call fcn.0043e6cb
jmp 0x4af5fc
lea ecx, [esp + 0x100]
push dword [esp + 0x1f4]
call fcn.004844e7
pop eax
jmp 0x4af792
mov esi, dword [esp + 0x200]
mov dword [esp + 0x3d0], esi
movups xmm0, xmmword [esp + 0x1f0]
movaps xmmword [esp + 0x3c0], xmm0
movaps xmm0, xmmword [esp + 0x3c0]
movaps xmmword [esp + 0x1f0], xmm0
lea ecx, [esp + 0x100]
call fcn.0043f89c
mov eax, esi
or eax, edi
je 0x4af648
test esi, esi
je 0x4af69e
movaps xmm0, xmmword [esp + 0x1f0]
movups xmmword [esp + 0x108], xmm0
mov word [esp + 0x100], 0x201
mov dword [esp + 0x104], esi
jmp 0x4af792
mov byte [esp + 0x100], 3
jmp 0x4af6da
mov al, byte [esp + 0xc]
mov byte [esp + 0x1f1], al
mov dword [esp + 0x1f4], edi
mov eax, dword [esp + 0x28]
mov dword [esp + 0x1f8], eax
mov dword [esp + 0x1fc], ecx
mov byte [esp + 0x1f0], 2
test edi, edi
je 0x4af6eb
lea ecx, [esp + 0x350]
mov esi, edx
lea edx, [esp + 0x1f4]
call fcn.00416aa0
mov edx, esi
jmp 0x4af6f3
mov byte [esp + 0x100], 1
mov byte [esp + 0x101], bl
mov dword [esp + 0x104], edi
mov dword [esp + 0x108], 0x53f62c
mov dword [esp + 0x10c], str.OutOfRangeImpossibleNotEnoughInvalidTooShortTooLongBadFormat__NonexhaustiveEmpty
and dword [esp + 0x110], 0
and dword [esp + 0x114], 0
lea ecx, [esp + 0x1f0]
call fcn.0043e6cb
jmp 0x4af792
and dword [esp + 0x350], 0
lea esi, [esp + 0x100]
mov al, byte [esp + 0xc]
mov byte [esp + 0x101], al
mov eax, dword [esp + 0x358]
lea ecx, [esp + 0x104]
mov dword [ecx + 8], eax
movsd xmm0, qword [esp + 0x350]
movsd qword [ecx], xmm0
mov al, 2
mov byte [esp + 0x100], al
mov ecx, ebx
push esi
call fcn.00479a61
pop eax
lea eax, [esp + 0x1f1]
movups xmm0, xmmword [eax]
movaps xmmword [esp + 0x3c0], xmm0
movsd xmm0, qword [eax + 0xf]
movsd qword [esp + 0x3cf], xmm0
movaps xmm0, xmmword [esp + 0x3c0]
movups xmmword [esp + 0x101], xmm0
movsd xmm0, qword [esp + 0x3cf]
movsd qword [esp + 0x110], xmm0
mov al, 2
mov byte [esp + 0x100], al
jmp 0x4af792
movzx eax, bl
cmp eax, 5
jne 0x4af801
mov byte [esp + 0x100], 4
lea esi, [esp + 0x478]
mov ecx, esi
call fcn.0047952c
mov ecx, esi
call fcn.0047953d
lea esi, [esp + 0x310]
mov ecx, esi
call fcn.0047952c
mov ecx, esi
call fcn.0047953d
movzx eax, byte [esp + 0x100]
cmp eax, 3
je 0x4af7da
cmp eax, 4
jne 0x4af7e6
mov eax, dword [esp + 0x84]
mov byte [eax], 6
jmp 0x4af7f9
mov eax, dword [esp + 0x84]
mov byte [eax], 5
jmp 0x4af7f9
lea edx, [esp + 0x100]
mov ecx, dword [esp + 0x84]
call fcn.0043307d
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
mov esi, dword [esp + 0x98]
mov edx, dword [esp + 0x94]
shld esi, edx, 8
shl edx, 8
or edx, eax
lea ecx, [esp + 0x100]
push esi
jmp 0x4af5d3
push 0x2b
pop edx
mov ecx, str.called__Option::unwrap____on_a__None__valueNoneSome
push 0x53e544
call fcn.00506cd0
pop eax
ud2