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

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff8
sub esp, 0x500
mov al, byte [ecx + 0x61]
mov ebx, ecx
or al, byte [ecx + 0x62]
jne 0x411315
mov ecx, ebx
call fcn.0040dd03
test al, al
jne 0x4123fa
mov ecx, ebx
mov byte [0x58ba20], 1
call fcn.0040b916
and dword [esp + 0x74], 0
xor edi, edi
and dword [esp + 0x20], 0
lea esi, [esp + 0xf0]
mov edx, 0x51afb0
inc edi
mov ecx, esi
mov dword [esp + 0x78], edi
mov dword [esp + 0x24], edi
and dword [esp + 0x7c], 0
and dword [esp + 0x28], 0
call fcn.0042158e
cmp byte [esi + 0xc], 2
jne 0x411368
mov byte [esp + 0x3d4], 2
jmp 0x411432
lea esi, [esp + 0x178]
mov edx, 0x51afc0
mov dword [esp + 4], ebx
mov dword [esp + 0x1c], edi
mov ecx, esi
call fcn.0042158e
lea ecx, [esp + 0x188]
mov edx, 0x51afd0
call fcn.0042158e
lea ecx, [esp + 0x198]
mov edx, 0x51afe0
call fcn.0042158e
lea ecx, [esp + 0x1a8]
mov edx, 0x51aff0
call fcn.0042158e
lea ecx, [esp + 0x388]
mov edx, 0x51b000
call fcn.0042158e
lea ecx, [esp + 0x398]
mov edx, 0x51b010
call fcn.0042158e
lea ecx, [esp + 0x3a8]
mov edx, 0x51b020
call fcn.0042158e
lea ebx, [esp + 0x3b8]
mov edx, 0x51b030
mov ecx, ebx
call fcn.0042158e
mov edx, esi
push 0x13
pop ecx
lea eax, [esp + 0x338]
mov edi, eax
rep movsd dword es:[edi], dword [esi]
mov byte [eax + 0x4c], 2
movsd xmm0, qword [esp + 0xf0]
movsd xmm1, qword [esp + 0xf8]
movsd qword [ebx + 0x18], xmm1
movsd qword [ebx + 0x10], xmm0
cmp byte [ebx + 0x1c], 2
jne 0x411451
xor esi, esi
xor edi, edi
xor ecx, ecx
inc edi
mov edx, edi
call fcn.0043e31d
mov ecx, esi
mov edx, edi
call fcn.0043e31d
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
push 0xa0
push eax
push edx
call fcn.005010b0
add esp, 0xc
lea eax, [esp + 0x1a8]
xor ecx, ecx
cmp byte [eax + 0xc], 2
mov edx, dword [eax + 8]
je 0x411479
mov ecx, dword [esp + 0x1ac]
push 0x514894
call fcn.0040327c
pop ecx
mov ecx, eax
call fcn.004d47c0
mov ecx, eax
push 0x5148a4
call fcn.0040327c
pop ecx
mov ecx, edx
mov ebx, eax
mov edi, edx
call fcn.00441781
mov dword [esp], eax
mov esi, edx
push edi
push ebx
push edx
call fcn.005010b0
add esp, 0xc
add edi, esi
lea ebx, [esp + 0x20]
mov ecx, ebx
mov edx, edi
push esi
call fcn.00419104
pop eax
mov ecx, dword [esp]
mov edx, esi
call fcn.0043e31d
mov eax, 0x556e9c
lea edx, [0x556e9d]
mov ecx, ebx
push eax
call fcn.00419104
pop eax
lea esi, [esp + 0xf0]
mov edx, 0x5148b4
mov ecx, esi
push 0xe
call fcn.004127c2
pop eax
mov edi, dword [esi + 4]
mov edx, dword [esi + 8]
mov ecx, ebx
add edx, edi
push edi
call fcn.00419104
pop eax
mov ecx, dword [esi]
mov edx, edi
call fcn.0043e31d
lea esi, [esp + 0x188]
mov ecx, dword [esi + 0x80]
mov edx, dword [esi + 0x84]
call fcn.0043e31d
lea ecx, [esp + 0x178]
call fcn.0048b555
mov ecx, esi
call fcn.0048b555
lea ecx, [esp + 0x198]
call fcn.0048b555
lea ecx, [esp + 0x1a8]
call fcn.0048b555
lea ecx, [esp + 0x1b8]
call fcn.0048b555
lea ecx, [esp + 0x1c8]
call fcn.0048b555
lea ecx, [esp + 0x1d8]
call fcn.0048b555
lea ecx, [esp + 0x1e8]
call fcn.0048b555
lea ecx, [esp + 0x1f8]
call fcn.0048b555
mov eax, dword [esp + 4]
cmp byte [eax + 0x56], 0
jne 0x4117b6
cmp byte [eax + 0x4d], 0
jne 0x4117b6
cmp byte [eax + 0x57], 0
jne 0x4117b6
xor eax, eax
lea ebx, [esp + 0x80]
lea edi, [esp + 0x338]
cmp eax, 3
je 0x411ffb
and dword [esp + 0x7c], 0
mov dword [esp], eax
mov dword [esp + 0xb0], eax
mov ecx, ebx
mov edx, 0x5148c2
push 0x2c
call fcn.004127c2
pop eax
lea ecx, [esp + 0x50]
lea edx, [esp + 0xb0]
call fcn.0040224c
lea ecx, [esp + 0x5c]
mov edx, 0x514058
push 0x17
call fcn.004127c2
pop eax
mov esi, edi
lea edi, [esp + 0x178]
mov ecx, edi
call fcn.0048e311
mov ecx, esi
mov edx, edi
call fcn.0048e2a2
mov byte [esp + 0x4e1], 0
push 0x1c0
push esi
push edi
call fcn.005010b0
add esp, 0xc
mov ecx, esi
mov edx, edi
call fcn.0048dd27
lea ebx, [esp + 0x90]
mov edx, esi
mov ecx, ebx
push 0x5148f0
call fcn.004034c5
pop eax
lea eax, [esp + 0x80]
mov ecx, edi
mov edx, ebx
push eax
call fcn.00403d4d
pop eax
lea ebx, [esp + 0xf0]
mov edx, edi
mov ecx, ebx
call fcn.0048e9d4
mov eax, dword [esp + 0x108]
xor eax, 3
or eax, dword [esp + 0x10c]
jne 0x4116aa
push 0x3e8
call dword [sym.imp.kernel32.dll_Sleep]
mov ecx, ebx
call fcn.004023d3
lea edi, [esp + 0x338]
jmp 0x411707
push 0x20
pop ecx
mov esi, ebx
lea ebx, [esp + 0x178]
rep movsd dword es:[edi], dword [esi]
lea edi, [esp + 0x338]
mov edx, ebx
mov ecx, edi
push 0x514900
call fcn.00403380
pop eax
lea esi, [esp + 0x80]
lea eax, [esp + 0x74]
mov edx, edi
mov ecx, esi
push eax
call fcn.00401664
pop eax
mov ecx, edi
call fcn.0040274a
cmp dword [esp + 0x80], 0
je 0x41173d
push 0x3e8
call dword [sym.imp.kernel32.dll_Sleep]
mov ecx, esi
call fcn.004028ff
lea ecx, [esp + 0xa0]
call fcn.0040292d
mov ecx, dword [esp + 0x5c]
mov edx, dword [esp + 0x60]
call fcn.0043e31d
mov ecx, dword [esp + 0x50]
mov edx, dword [esp + 0x54]
call fcn.0043e31d
mov eax, dword [esp]
lea ebx, [esp + 0x80]
inc eax
jmp 0x4115c3
mov edx, edi
mov edi, dword [esp + 0x7c]
mov ecx, ebx
mov dword [esp + 0x338], edi
call fcn.004019b8
cmp edi, 4
ja 0x41208b
push 0x3e8
call dword [sym.imp.kernel32.dll_Sleep]
mov ecx, dword [esp + 0x178]
mov edx, dword [esp + 0x17c]
call fcn.0043e31d
lea ecx, [esp + 0x80]
call fcn.004028ff
lea ecx, [esp + 0xa0]
call fcn.0040292d
mov ecx, dword [esp + 0x5c]
mov edx, dword [esp + 0x60]
call fcn.0043e31d
mov ecx, dword [esp + 0x50]
mov edx, dword [esp + 0x54]
call fcn.0043e31d
lea edi, [esp + 0x338]
jmp 0x41172d
lea ebx, [esp + 0xd8]
mov edx, 0x5144ab
mov ecx, ebx
push 5
call fcn.004127c2
pop eax
push 4
pop eax
lea ecx, [esp + 0xbc]
mov edx, 0x514910
push eax
call fcn.004127c2
pop eax
mov ecx, ebx
xor edx, edx
xor edi, edi
call fcn.004037b4
mov edx, dword [ebx + 4]
lea esi, [esp + 0xc8]
mov ecx, esi
mov dword [esp + 8], edx
push dword [ebx + 8]
call fcn.004124bf
pop eax
lea ecx, [esp + 0xe4]
mov edx, 0x514914
push 4
pop eax
push eax
call fcn.004127c2
pop eax
lea ecx, [esp + 0xb0]
mov edx, 0x514918
push 4
pop eax
push eax
call fcn.004127c2
pop eax
lea eax, [esp + 0xbc]
lea ebx, [esp + 0x178]
mov edx, dword [eax + 4]
mov ecx, ebx
push dword [eax + 8]
call fcn.004124bf
pop eax
mov ecx, dword [esi]
mov edx, dword [esi + 4]
call fcn.004024be
mov eax, dword [ebx + 8]
lea ecx, [esp + 0xf0]
lea edx, [esp + 0xb0]
movsd xmm0, qword [ebx]
mov ebx, dword [esp + 0x24]
and dword [ecx], 0
mov dword [ecx + 4], 1
and dword [ecx + 8], 0
mov ecx, dword [edx + 8]
mov dword [esi + 8], eax
mov eax, dword [edx + 4]
movsd qword [esi], xmm0
mov esi, dword [esp + 0x28]
add ecx, eax
mov dword [esp + 4], eax
lea eax, [esp + 0xe4]
mov dword [esp + 0x18], esi
mov edx, dword [eax + 4]
mov dword [esp + 0xc], ecx
lea ecx, [esp + 0x178]
mov dword [esp + 0x30], edx
push esi
mov dword [esp + 4], ebx
push ebx
push dword [eax + 8]
call fcn.00417d40
add esp, 0xc
lea ecx, [esp + 0x338]
lea edx, [esp + 0x178]
call fcn.0040418b
cmp dword [esp + 0x338], 0
je 0x41191a
mov eax, dword [esp]
mov edx, dword [esp + 0x33c]
mov esi, dword [esp + 0x340]
lea ebx, [esp + 0xf0]
mov ecx, ebx
add edi, eax
add edx, eax
push edi
call fcn.00419104
pop eax
mov edx, dword [esp + 0xc]
mov ecx, ebx
push dword [esp + 4]
call fcn.00419104
pop eax
mov edi, esi
jmp 0x4118c4
mov ebx, dword [esp]
mov edx, dword [esp + 0x18]
lea esi, [esp + 0xf0]
mov ecx, esi
add edi, ebx
add edx, ebx
push edi
call fcn.00419104
pop eax
mov ecx, dword [esp + 0x20]
mov edx, ebx
call fcn.0043e31d
mov eax, dword [esi + 8]
movsd xmm0, qword [esi]
lea ecx, [esp + 0x50]
mov edx, 0x5148c2
mov dword [esp + 0x28], eax
movsd qword [esp + 0x20], xmm0
push 0x2c
call fcn.004127c2
pop eax
lea esi, [esp + 0x338]
mov ecx, esi
call fcn.004caf60
lea edi, [esp + 0x178]
mov edx, esi
mov ecx, edi
push 0x51491c
call fcn.004033f3
pop eax
mov eax, dword [edi]
mov edx, dword [edi + 4]
mov ecx, dword [edi + 8]
cmp byte [edi + 0xc], 0
mov dword [esp + 0x14], eax
mov dword [esp + 0x18], edx
mov dword [esp + 0x34], ecx
jne 0x411a16
cmp dword [esp + 0x34], 0
je 0x411a16
mov esi, dword [esp + 0x18]
mov ecx, dword [esp + 0x34]
lea eax, [esp + 0x185]
add ecx, esi
mov bl, byte [esi]
lea edx, [esi + 1]
test bl, bl
jns 0x411a10
cmp bl, 0xe0
jae 0x4119d0
add esi, 2
cmp edx, ecx
cmovne edx, esi
jmp 0x411a10
cmp bl, 0xed
jne 0x4119f1
cmp edx, ecx
je 0x411a16
lea edx, [esi + 2]
cmp edx, ecx
je 0x411a16
cmp byte [esi + 1], 0xa0
jae 0x412443
add esi, 3
mov edx, esi
jmp 0x411a10
add esi, 2
cmp edx, ecx
cmove esi, edx
xor edx, edx
cmp esi, ecx
setne dl
add edx, esi
cmp bl, 0xf0
jb 0x411a10
xor ebx, ebx
cmp edx, ecx
setne bl
add edx, ebx
cmp edx, ecx
mov esi, edx
jne 0x4119b8
push 0
call dword [sym.imp.ole32.dll_CoInitialize]
lea esi, [esp + 0x178]
mov edx, eax
mov ecx, esi
call fcn.00403e7a
mov ecx, dword [esi]
mov edx, dword [esi + 8]
call fcn.00402921
lea eax, [0x514884]
mov dword [esi], eax
mov eax, str.00021401_0000_0000_C000_000000000046Format_Factory
mov dword [esi + 4], eax
lea esi, [esp + 0x178]
mov ecx, esi
call fcn.004eccae
mov ecx, esi
mov dword [esp + 0x44], eax
call fcn.004eccae
mov ecx, esi
mov dword [esp + 0x4c], eax
call fcn.004eccae
mov ecx, esi
mov dword [esp + 0x40], eax
call fcn.004eccae
mov ecx, esi
mov dword [esp + 0x48], eax
call fcn.004eccae
mov ecx, esi
mov dword [esp + 0xac], eax
call fcn.004eccae
mov ecx, esi
mov edi, eax
call fcn.004eccae
mov ecx, esi
mov dword [esp + 0xc], eax
call fcn.004eccae
mov ecx, esi
mov dword [esp + 0xa8], eax
call fcn.00401026
and al, 1
mov ebx, edx
mov edx, 0x580630
movzx ecx, al
call fcn.00444867
cmp bl, 0x2d
jne 0x412401
lea esi, [esp + 0x178]
mov ecx, esi
call fcn.004eccae
mov ecx, esi
mov word [esp + 0x3c], ax
call fcn.004eccae
mov ecx, esi
mov word [esp + 0x72], ax
call fcn.004eccae
mov ecx, esi
mov word [esp + 0x70], ax
call fcn.004eccae
mov ecx, esi
mov word [esp + 0x6e], ax
call fcn.00401026
and al, 1
mov ebx, edx
mov edx, 0x580650
movzx ecx, al
call fcn.00444867
cmp bl, 0x2d
jne 0x412410
lea esi, [esp + 0x178]
mov ecx, esi
call fcn.004eccae
mov ecx, esi
mov word [esp + 0x38], ax
call fcn.004eccae
mov ecx, esi
mov word [esp + 0x6c], ax
call fcn.004eccae
mov ecx, esi
mov word [esp + 0x6a], ax
call fcn.004eccae
mov ecx, esi
mov word [esp + 0x68], ax
call fcn.00401026
and al, 1
mov ebx, edx
mov edx, 0x580670
movzx ecx, al
call fcn.00444867
cmp bl, 0x2d
jne 0x41241f
lea esi, [esp + 0x178]
mov ecx, esi
call fcn.004eccb7
mov ecx, esi
mov bh, al
call fcn.004eccb7
mov ecx, esi
mov byte [esp + 0x13], al
call fcn.004eccb7
mov ecx, esi
mov byte [esp], al
call fcn.004eccb7
mov ecx, esi
mov byte [esp + 0x12], al
call fcn.00401026
and al, 1
mov bl, dl
mov edx, 0x580690
movzx ecx, al
call fcn.00444867
cmp bl, 0x2d
jne 0x41242e
movzx eax, word [esp + 0x38]
movzx ecx, word [esp + 0x6c]
mov edx, dword [esp + 0x40]
shl edi, 8
mov esi, dword [esp + 0xc]
shl bh, 4
add bh, byte [esp + 0x13]
shl eax, 0xc
shl ecx, 8
shl edx, 0x14
shl esi, 4
or ecx, eax
movzx eax, word [esp + 0x6a]
shl eax, 4
or eax, ecx
movzx ecx, word [esp + 0x68]
or ecx, eax
movzx eax, word [esp + 0x3c]
mov dword [esp + 0x38], ecx
movzx ecx, word [esp + 0x72]
shl eax, 0xc
shl ecx, 8
or ecx, eax
movzx eax, word [esp + 0x70]
shl eax, 4
or eax, ecx
movzx ecx, word [esp + 0x6e]
or ecx, eax
mov eax, dword [esp + 0x4c]
mov dword [esp + 0x3c], ecx
mov ecx, dword [esp + 0x44]
mov byte [esp + 0x44], bh
shl eax, 0x18
shl ecx, 0x1c
or eax, ecx
mov ecx, dword [esp + 0x48]
shl ecx, 0x10
or ecx, edx
or ecx, eax
mov eax, dword [esp + 0xac]
shl eax, 0xc
or edi, eax
mov al, byte [esp]
or edi, ecx
or esi, edi
lea edi, [esp + 0x178]
add esi, dword [esp + 0xa8]
mov ecx, edi
shl al, 4
add al, byte [esp + 0x12]
mov byte [esp], al
call fcn.004eccb7
mov ebx, eax
mov ecx, edi
shl bl, 4
call fcn.004eccb7
or al, bl
mov ecx, edi
mov byte [esp + 0xc], al
call fcn.004eccb7
mov ebx, eax
mov ecx, edi
shl bl, 4
call fcn.004eccb7
or al, bl
mov ecx, edi
mov byte [esp + 0x4c], al
call fcn.004eccb7
mov ebx, eax
mov ecx, edi
shl bl, 4
call fcn.004eccb7
or al, bl
mov ecx, edi
mov byte [esp + 0x48], al
call fcn.004eccb7
mov ebx, eax
mov ecx, edi
shl bl, 4
call fcn.004eccb7
or al, bl
mov ecx, edi
mov byte [esp + 0x40], al
call fcn.004eccb7
mov bh, al
mov ecx, edi
shl bh, 4
call fcn.004eccb7
mov bl, al
mov ecx, edi
or bl, bh
call fcn.004eccb7
mov bh, al
mov ecx, edi
shl bh, 4
call fcn.004eccb7
mov ecx, dword [esp + 0x3c]
mov dword [esp + 0xf0], esi
or al, bh
movzx edx, byte [esp + 0x40]
movzx esi, byte [esp + 0x44]
mov dword [edi], 3
and dword [edi + 4], 0
and dword [esp + 0x338], 0
movzx eax, al
shl eax, 0x18
mov word [esp + 0xf4], cx
mov ecx, dword [esp + 0x38]
shl edx, 8
mov word [esp + 0xf6], cx
movzx ecx, bl
shl ecx, 0x10
or ecx, eax
movzx eax, byte [esp + 0x48]
or edx, ecx
movzx ecx, byte [esp + 0x4c]
or eax, edx
movzx edx, byte [esp + 0xc]
shl ecx, 0x18
mov dword [esp + 0xfc], eax
shl edx, 0x10
or edx, ecx
movzx ecx, byte [esp]
shl ecx, 8
or ecx, edx
or esi, ecx
lea ecx, [esp + 0x178]
mov dword [esp + 0xf8], esi
call fcn.004ec3cc
lea ecx, [esp + 0x338]
push ecx
push 0x511c3c
push 1
push eax
lea eax, [esp + 0x100]
push eax
call dword [sym.imp.ole32.dll_CoCreateInstance]
mov ebx, dword [esp + 0x338]
test eax, eax
js 0x41201b
mov edi, dword [esp + 0x30]
test ebx, ebx
je 0x41207e
mov edx, dword [esp + 0x54]
lea esi, [esp + 0x5c]
mov ecx, esi
push dword [esp + 0x58]
call fcn.004124bf
pop eax
mov dword [esp + 8], ebx
mov ebx, dword [esi + 4]
lea edi, [esp + 0x338]
mov eax, dword [esp + 8]
mov ecx, edi
mov eax, dword [eax]
mov esi, dword [eax + 0x50]
xor eax, eax
inc eax
mov dword [edi], eax
mov dword [edi + 4], ebx
call fcn.004ec3cc
push eax
push dword [esp + 0xc]
call esi
xor esi, esi
lea ecx, [esp + 0x178]
mov edx, eax
inc esi
call fcn.00403e7a
mov edx, ebx
mov ebx, dword [esp + 8]
mov ecx, esi
call fcn.004ecd07
lea eax, [esp + 0x178]
mov ecx, dword [eax]
mov edx, dword [eax + 8]
call fcn.00402921
mov eax, dword [ebx]
lea ecx, [esp + 0x338]
mov eax, dword [eax + 0x1c]
mov dword [esp + 0x30], eax
lea eax, [0x514892]
mov dword [edi], eax
mov eax, 0x514884
mov dword [edi + 4], eax
and word [edi + 8], 0
mov dword [edi + 0xc], esi
call fcn.004ec03e
test ax, ax
je 0x412154
lea edi, [esp + 0x178]
mov word [esp + 4], dx
lea edx, [esp + 0x338]
mov ecx, edi
call fcn.004ec11c
mov edi, dword [edi]
xor eax, eax
dec eax
inc edi
cmove edi, eax
cmp edi, 5
push 4
pop eax
cmovb edi, eax
xor ebx, ebx
cmp edi, 0x40000000
setb al
jae 0x4124ad
mov dword [esp], edi
add edi, edi
js 0x4124ad
mov bl, al
mov ecx, edi
add ebx, ebx
mov edx, ebx
call fcn.00420dff
test eax, eax
je 0x4124b4
movzx ecx, word [esp + 4]
mov word [eax], cx
lea ecx, [esp + 0x178]
movsd xmm0, qword [esp + 0x338]
movsd xmm1, qword [esp + 0x340]
movsd qword [ecx + 8], xmm1
movsd qword [ecx], xmm0
push 0xfffffffffffffffe
pop ecx
mov edi, eax
mov dword [esp + 4], ecx
lea ecx, [esp + 0x178]
call fcn.004ec03e
cmp ax, 1
jne 0x412042
cmp esi, dword [esp]
mov ebx, edx
jne 0x411fec
lea ecx, [esp + 0x90]
lea edx, [esp + 0x178]
call fcn.004ec11c
mov ecx, dword [esp + 0x90]
mov eax, dword [esp]
mov edx, 0xffffffff
inc ecx
cmove ecx, edx
xor edx, edx
add ecx, eax
jb 0x411fe7
mov dword [esp + 0x1c], esi
lea esi, [eax + eax]
mov dword [esp + 0xc], edi
cmp esi, ecx
cmova ecx, esi
cmp ecx, 5
mov edi, ecx
jae 0x411f73
push 4
pop edi
mov ecx, dword [esp + 0xc]
xor eax, eax
cmp edi, 0x40000000
lea edx, [edi + edi]
setb al
add eax, eax
mov dword [esp + 0x90], ecx
mov dword [esp + 0x94], esi
lea ecx, [esp + 0x80]
lea esi, [esp + 0x90]
mov dword [esp + 0x98], 2
push esi
push eax
call fcn.00418140
pop eax
pop ecx
cmp dword [esp + 0x80], 0
mov ecx, dword [esp + 0x84]
je 0x411fd9
mov edx, dword [esp + 0x88]
mov esi, dword [esp + 0x1c]
mov edi, dword [esp + 0xc]
jmp 0x411fe7
mov esi, dword [esp + 0x1c]
mov dword [esp], edi
mov edi, ecx
mov edx, 0x80000001
call fcn.00403850
add dword [esp + 4], 0xfffffffe
mov word [edi + esi*2], bx
inc esi
jmp 0x411f08
mov eax, dword [esp + 4]
mov ecx, dword [eax]
call fcn.004079e9
mov ecx, dword [esp + 0x20]
mov edx, dword [esp + 0x24]
mov esi, dword [esp + 0x74]
mov edi, dword [esp + 0x78]
jmp 0x41143b
mov ecx, eax
call fcn.004ec5e6
mov edi, dword [esp + 0x30]
mov esi, edx
test ebx, ebx
je 0x412032
mov eax, dword [ebx]
push ebx
call dword [eax + 8]
mov ebx, dword [esp + 0x14]
test esi, esi
je 0x412082
mov eax, dword [esi]
push esi
call dword [eax + 8]
jmp 0x412082
mov edx, dword [esp]
cmp edx, esi
jbe 0x412075
mov ebx, dword [esp + 4]
add edx, edx
neg ebx
push 2
pop esi
mov ecx, edi
push esi
push ebx
push esi
call fcn.004ec364
add esp, 0xc
test eax, eax
mov edx, 0x80000001
mov ecx, ebx
cmove edx, esi
cmovne edi, eax
call fcn.00403850
mov ebx, dword [esp + 8]
jmp 0x412157
mov ebx, dword [esp + 0x14]
mov esi, dword [esp + 4]
jmp 0x412340
lea eax, [esp + 0x178]
mov ecx, dword [eax]
mov edx, dword [eax + 4]
call fcn.0043e31d
lea ecx, [esp + 0x80]
call fcn.004028ff
lea ecx, [esp + 0xa0]
call fcn.0040292d
mov ecx, dword [esp + 0x5c]
mov edx, dword [esp + 0x60]
call fcn.0043e31d
mov ecx, dword [esp + 0x50]
mov edx, dword [esp + 0x54]
call fcn.0043e31d
lea esi, [esp + 0xd8]
mov edx, 0x5144ab
mov ecx, esi
push 5
call fcn.004127c2
pop eax
lea ecx, [esp + 0xbc]
mov edx, 0x514910
push 4
call fcn.004127c2
pop eax
mov ecx, esi
xor edx, edx
call fcn.004037b4
mov edx, dword [esi + 4]
lea ecx, [esp + 0xc8]
mov dword [esp + 8], edx
push dword [esi + 8]
call fcn.004124bf
pop eax
mov ebx, dword [esp + 0x24]
mov esi, dword [esp + 0x28]
mov eax, dword [esp + 0x78]
lea ecx, [esp + 0x178]
mov edx, ebx
push edi
mov dword [esp + 0x20], eax
push eax
push esi
call fcn.00401450
add esp, 0xc
lea ecx, [esp + 0x178]
mov edx, 0x51493c
call fcn.004033c0
mov eax, ebx
jmp 0x41237c
push 2
pop edi
lea ecx, [esp + 0x338]
mov dword [ecx], 2
mov dword [ecx + 4], edi
call fcn.004ec3cc
push eax
push ebx
call dword [esp + 0x38]
lea esi, [esp + 0x178]
mov edx, eax
mov ecx, esi
call fcn.00403e7a
push 2
pop ecx
mov edx, edi
call fcn.004ecd07
mov ecx, dword [esi]
mov edx, dword [esi + 8]
call fcn.00402921
mov edx, dword [esp + 0x18]
lea esi, [esp + 0x90]
mov ecx, esi
push dword [esp + 0x34]
call fcn.004124bf
pop eax
mov eax, dword [ebx]
mov edi, dword [esi + 4]
mov esi, ebx
lea ecx, [esp + 0x338]
mov ebx, dword [eax + 0x44]
lea eax, [esp + 0x338]
mov dword [eax], 1
mov dword [eax + 4], edi
call fcn.004ec3cc
push 0
push eax
push esi
call ebx
lea ebx, [esp + 0x178]
mov edx, eax
mov ecx, ebx
call fcn.00403e7a
xor ecx, ecx
mov edx, edi
inc ecx
call fcn.004ecd07
mov ecx, dword [ebx]
mov edx, dword [ebx + 8]
call fcn.00402921
and dword [ebx], 0
mov eax, dword [esi]
push ebx
push 0x511c2c
push esi
call dword [eax]
mov ebx, dword [ebx]
test eax, eax
mov dword [esp], edi
js 0x4122d4
test ebx, ebx
je 0x4122e9
mov edx, dword [esp + 0x24]
lea esi, [esp + 0x338]
mov ecx, esi
push dword [esp + 0x28]
call fcn.004124bf
pop eax
mov eax, dword [ebx]
mov edx, dword [esi + 4]
xor esi, esi
lea ecx, [esp + 0x170]
inc esi
mov eax, dword [eax + 0x18]
mov dword [ecx], esi
mov dword [esp + 4], edx
mov dword [ecx + 4], edx
mov dword [esp + 0xc], eax
call fcn.004ec3cc
lea ecx, [esp + 0x80]
mov edi, eax
mov dword [ecx + 4], esi
mov dword [ecx], esi
call fcn.004ec3cc
push eax
push edi
push ebx
call dword [esp + 0x18]
lea edi, [esp + 0x178]
mov edx, eax
mov ecx, edi
call fcn.00403e7a
mov ecx, esi
mov esi, dword [esp + 4]
mov edx, esi
call fcn.004ecd07
mov ecx, dword [edi]
mov edx, dword [edi + 8]
call fcn.00402921
lea eax, [esp + 0x338]
mov edx, esi
mov ecx, dword [eax]
call fcn.004024be
mov eax, dword [ebx]
push ebx
call dword [eax + 8]
mov ecx, dword [esp + 0x90]
mov edx, dword [esp]
call fcn.004024be
mov ecx, dword [esp + 0x5c]
mov edx, dword [esp + 0x60]
call fcn.004024be
mov ebx, dword [esp + 0x14]
jmp 0x412315
mov ecx, eax
call fcn.004ec5e6
mov edi, edx
test ebx, ebx
je 0x4122eb
mov eax, dword [ebx]
push ebx
call dword [eax + 8]
jmp 0x4122eb
xor edi, edi
mov ecx, dword [esp + 0x90]
mov edx, dword [esp]
mov ebx, dword [esp + 0x14]
call fcn.004024be
mov ecx, dword [esp + 0x5c]
mov edx, dword [esp + 0x60]
call fcn.004024be
test edi, edi
je 0x412315
mov eax, dword [edi]
push edi
call dword [eax + 8]
mov ecx, dword [esp + 8]
mov eax, dword [ecx]
push ecx
call dword [eax + 8]
mov eax, dword [esp + 0xdc]
mov ecx, dword [esp + 0x78]
mov esi, dword [esp + 0xb4]
mov edi, dword [esp + 0xe8]
mov dword [esp + 8], eax
mov dword [esp + 0x1c], ecx
mov edx, dword [esp + 0x18]
mov ecx, ebx
call fcn.0043e31d
mov ecx, dword [esp + 0x50]
mov edx, dword [esp + 0x54]
call fcn.0043e31d
mov ecx, dword [esp + 0xb0]
mov edx, esi
call fcn.0043e31d
mov ecx, dword [esp + 0xe4]
mov edx, edi
call fcn.0043e31d
mov eax, dword [esp + 0x24]
mov esi, dword [esp + 0x28]
mov edi, dword [esp + 0xcc]
lea ebx, [esp + 0x178]
mov edx, eax
mov dword [esp], eax
mov ecx, ebx
push esi
call fcn.004124bf
pop eax
mov esi, dword [ebx + 4]
mov ecx, edi
mov edx, esi
push 0
call fcn.00404021
pop ecx
mov ecx, dword [ebx]
mov edx, esi
call fcn.004024be
mov ecx, dword [esp + 0xc8]
mov edx, edi
call fcn.004024be
mov ecx, dword [esp + 0xbc]
mov edx, dword [esp + 0xc0]
call fcn.0043e31d
mov ecx, dword [esp + 0xd8]
mov edx, dword [esp + 8]
call fcn.0043e31d
mov ecx, dword [esp + 0x20]
mov edx, dword [esp]
call fcn.0043e31d
mov ecx, dword [esp + 0x74]
mov edx, dword [esp + 0x1c]
jmp 0x411444
call fcn.004d0a70
ud2
push 0x13
pop edx
mov ecx, 0x5805c7
push 0x580640
jmp 0x41243b
push 0x13
pop edx
mov ecx, 0x5805c7
push 0x580660
jmp 0x41243b
push 0x13
pop edx
mov ecx, 0x5805c7
push 0x580680
jmp 0x41243b
push 0x13
pop edx
mov ecx, 0x5805c7
push 0x5806a0
call fcn.00510bb4
pop eax
ud2
mov cl, byte [eax + 2]
movzx eax, word [eax]
mov edx, dword [esp + 0x14]
mov esi, dword [esp + 0x18]
mov byte [esp + 0x187], cl
mov word [esp + 0x185], ax
mov dword [esp + 0x178], edx
mov edx, dword [esp + 0x34]
mov dword [esp + 0x17c], esi
mov byte [esp + 0x33a], cl
mov word [esp + 0x338], ax
mov dword [esp + 0x180], edx
mov byte [esp + 0x184], 0
push 0x2b
pop edx
mov ecx, str.called__Result::unwrap____on_an__Err__value
push 0x51492c
push 0x511a4c
push edi
call fcn.0050d740
add esp, 0xc
ud2
call fcn.00416990
ud2
mov ecx, edi
mov edx, ebx
call fcn.0050d210
ud2