Function at 0x341fbf4a
Capabilities:
Access peb ldr_data
Resolve function by parsing pe exports

Disassembly:
push 0xffffffffffffffff
push 0x343a8abc
mov eax, dword fs:[0]
push eax
sub esp, 0x164
mov eax, dword [0x34234fcc]
xor eax, esp
mov dword [esp + 0x160], eax
push ebx
push ebp
push esi
push edi
mov eax, dword [0x34234fcc]
xor eax, esp
push eax
lea eax, [esp + 0x178]
mov dword fs:[0], eax
mov ebx, dword [esp + 0x188]
mov edx, dword [ebx + 0x10]
mov eax, dword [esp + 0x18c]
mov ebp, dword [esp + 0x19c]
mov edi, ecx
mov ecx, dword [esp + 0x194]
push edx
mov dword [esp + 0x24], edi
mov dword [esp + 0x58], eax
mov dword [esp + 0x30], ecx
mov dword [esp + 0x1c], ebp
mov dword [esp + 0x18], 0
call fcn.341fc3f8
mov esi, 0xfd8
sub esi, eax
mov eax, dword [ebx + 0xc]
push eax
call fcn.341fc410
mov ecx, dword [ebx + 0x10]
sub esi, eax
push ecx
mov dword [esp + 0x3c], esi
call fcn.341fc3f8
cmp eax, 0xffffffff
je 0x3421c40d
mov ecx, dword [edi + 4]
movzx esi, word [ecx + 0x25]
movzx eax, si
mov dword [esp + 0x1c], esi
test ax, ax
jl 0x3421c40d
mov eax, ecx
movzx edx, word [eax + 0x25]
movzx eax, word [eax + 0x21]
cmp dx, ax
jg 0x3421c40d
movzx eax, word [ecx + 0x21]
movzx ecx, ax
mov dword [esp + 0x28], eax
test cx, cx
jl 0x3421c40d
movzx eax, ax
mov edx, 0xff
cmp ax, dx
jg 0x3421c40d
mov ebp, dword [esp + 0x198]
test ebp, ebp
jl 0x3421c3fd
movzx eax, si
cwde
imul eax, eax, 0x19
cmp ebp, eax
jb 0x3421c3fd
mov ecx, dword [edi + 4]
movzx ecx, word [ecx + 0x25]
movzx eax, cx
movzx ecx, cx
cwde
movsx edx, cx
imul eax, eax, 0x19
add eax, dword [esp + 0x2c]
imul edx, edx, 0xffffffe7
movzx ecx, word [esp + 0x1c]
add ebp, edx
xor edi, edi
xor esi, esi
cmp di, cx
mov dword [esp + 0x30], eax
mov edx, eax
jge 0x341fc0d4
movzx ecx, word [esp + 0x1c]
movsx ecx, cx
mov dword [esp + 0x34], ecx
lea esp, [esp]
movzx ecx, byte [edx]
test ecx, ecx
jbe 0x3421c3f9
mov edi, ecx
and edi, 0xfffffffe
cmp edi, 0x80
ja 0x3421c3f9
lea edi, [ecx + 2]
cmp ebp, edi
jb 0x3421c3f9
mov edi, 0xfffffffe
sub edi, ecx
inc esi
add ebp, edi
cmp esi, dword [esp + 0x34]
lea edx, [edx + ecx + 2]
jl 0x341fc099
mov ecx, dword [esp + 0x1c]
movzx edx, cx
xor edi, edi
xor esi, esi
cmp di, dx
jge 0x341fc138
mov ebp, dword [esp + 0x2c]
movzx ecx, cx
movsx edi, cx
add ebp, 0x15
mov cl, byte [ebp - 0x15]
test cl, cl
jbe 0x3421c3f9
cmp cl, 0x13
jae 0x3421c3f9
test byte [ebp - 6], 1
jne 0x342012be
movzx ecx, word [ebp - 0x10]
movzx edx, cx
test dx, dx
jl 0x3421c3f9
movzx ecx, cx
mov edx, 0xfe
cmp cx, dx
jg 0x3421c3f9
inc esi
add ebp, 0x19
cmp esi, edi
jl 0x341fc0f1
movzx edx, word [esp + 0x28]
mov ebp, dword [esp + 0x20]
xor esi, esi
xor ecx, ecx
cmp si, dx
jge 0x341fc16c
lea edi, [ebx + 0x670]
lea edx, [ebx + 0xf4]
lea ecx, [ecx]
mov dword [edx], edi
mov esi, dword [ebp + 4]
movzx esi, word [esi + 0x21]
movsx esi, si
inc ecx
add edx, 4
cmp ecx, esi
jl 0x341fc158
mov ecx, dword [ebp + 4]
movzx ecx, word [ecx + 0x25]
xor edx, edx
cmp dx, cx
mov dword [esp + 0x14], 0
jge 0x341fc3ca
mov ebp, dword [esp + 0x2c]
add ebp, 0x11
mov edi, dword [esp + 0x18]
lea ecx, [ebp - 0x11]
mov dword [esp + 0x28], ecx
movzx ecx, word [eax]
movsx ecx, cx
mov dword [esp + 0x34], ecx
test ecx, ecx
jbe 0x3421c406
mov esi, ecx
shr esi, 1
cmp esi, 0x40
ja 0x3421c406
push ecx
add eax, 2
push eax
lea edx, [esp + 0xf8]
push edx
call sub.MSVCR90.dll_memcpy
xor eax, eax
add esp, 0xc
cmp dword [ebp - 0x10], 0x11a6
mov word [esp + esi*2 + 0xf0], ax
ja 0x342b959f
mov dword [esp + 0xd0], eax
mov dword [esp + 0xd4], eax
mov dword [esp + 0xd8], eax
mov dword [esp + 0xdc], eax
mov dword [esp + 0xe0], eax
mov dword [esp + 0xe4], eax
mov dword [esp + 0xe8], eax
mov dword [esp + 0xec], eax
mov ecx, 8
lea esi, [esp + 0xd0]
lea edi, [esp + 0x58]
rep movsd dword es:[edi], dword [esi]
mov esi, dword [esp + 0x6c]
mov cl, byte [ebp - 0x11]
mov dword [esp + 0x38], eax
mov al, byte [ebp - 1]
mov byte [esp + 0x58], cl
mov edx, esi
shr edx, 0x10
shr al, 6
xor dl, al
and dl, 1
mov ecx, esi
shr ecx, 0x10
xor dl, cl
mov byte [esp + 0x6e], dl
mov dl, byte [ebp]
and dl, 1
movzx eax, dl
push eax
lea ecx, [esp + 0x5c]
push ecx
lea ecx, [esp + 0x80]
call fcn.341fce97
lea edx, [esp + 0x28]
push edx
xor edi, edi
push 0x100
lea ecx, [esp + 0x44]
mov dword [esp + 0x188], edi
mov dword [esp + 0x30], edi
call fcn.342012e3
test byte [ebp - 1], 0x40
mov byte [esp + 0x180], 1
jne 0x342b941a
mov ecx, dword [esp + 0x38]
mov eax, dword [ebp - 6]
movzx esi, word [ebp + 6]
mov edi, dword [esp + 0x18]
push ecx
movzx ecx, byte [ebp - 1]
shr cl, 6
and cl, 1
movzx edx, cl
movzx ecx, byte [ebp - 2]
push edx
push edi
push eax
and cl, 1
movzx eax, si
cmp cl, 1
movzx ecx, byte [ebp - 0x11]
push eax
setne dl
movzx eax, dl
push eax
push ecx
push ebx
call fcn.341fcfcc
mov ecx, edi
mov esi, eax
call fcn.341f8f2a
cmp eax, 0xfffffa19
je 0x342b953a
test byte [edi], 8
jne 0x342b9600
mov edx, dword [esi]
lea eax, [ebp - 0x11]
push eax
mov eax, dword [edx + 0x58]
mov ecx, esi
call eax
movzx eax, word [ebp - 0xc]
movsx edi, ax
cmp edi, 0xfe
ja 0x342b961f
mov eax, dword [esp + 0x34]
test al, 1
jne 0x342b961f
push eax
mov eax, dword [esp + 0x34]
add eax, 2
push eax
lea ecx, [esi + 4]
call fcn.3420152e
test byte [esi + 0x22], 2
jne 0x3421c3e0
test byte [esi + 0x22], 4
jne 0x342b9597
push 0
push 0
push edi
lea ecx, [ebx + 0xe4]
call fcn.34201562
mov ecx, dword [esp + 0x30]
mov edx, dword [esp + 0x34]
mov dword [esi + 0x2c], 0
mov eax, dword [ebx + edi*4 + 0xf4]
mov dword [esi + 0x30], eax
lea eax, [ecx + edx + 2]
lea ecx, [esp + 0x3c]
mov dword [ebx + edi*4 + 0xf4], esi
mov dword [esp + 0x30], eax
call fcn.342015e1
lea ecx, [esp + 0x78]
mov dword [esp + 0x180], 0xffffffff
call fcn.341fd633
mov ecx, dword [esp + 0x20]
mov edx, dword [ecx + 4]
mov eax, dword [esp + 0x14]
movsx ecx, word [edx + 0x25]
inc eax
add ebp, 0x19
mov dword [esp + 0x14], eax
cmp eax, ecx
mov eax, dword [esp + 0x30]
jl 0x341fc18d
sub eax, dword [esp + 0x2c]
mov ecx, dword [esp + 0x178]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebp
pop ebx
mov ecx, dword [esp + 0x160]
xor ecx, esp
call fcn.341f1dd1
add esp, 0x170
ret 0x18
cmp cl, 1
je 0x341fc10f
movzx ecx, word [ebp]
movzx edx, word [ebp + 2]
movzx ecx, cx
add edx, ecx
cmp edx, dword [esp + 0x38]
jbe 0x341fc10f
jmp 0x3421c3f9
mov edx, dword [esi]
mov eax, dword [edx + 0x14]
mov ecx, esi
call eax
cmp al, 0x12
je 0x341fc348
mov dword [ebx + 0x5c], edi
jmp 0x341fc348
mov dword [esp + 0x14], esi
mov ecx, dword [esp + 0x18]
jmp 0x342b9632
mov ecx, edi
jmp 0x342b9632
mov ecx, ebp
jmp 0x342b9632
test byte [ebp], 1
jne 0x342b9531
mov esi, dword [esp + 0x4c]
sub esi, dword [esp + 0x48]
mov dword [esp + 0x1c], edi
sar esi, 1
jne 0x342b943a
call dword [sym.imp.MSVCR90.dll__invalid_parameter_noinfo]
mov edx, dword [esp + 0x48]
lea eax, [esp + 0x1c]
push eax
lea ecx, [esi + esi - 2]
mov esi, dword [esp + 0x58]
push ecx
push edx
push 0x342d92b4
lea eax, [esp + 0x100]
push eax
push esi
mov ecx, ebx
call fcn.34209822
push eax
push 0x34226578
mov ecx, esi
call fcn.342094c1
cmp eax, 0x3ee
jne 0x342b94cf
mov ecx, dword [esp + 0x4c]
sub ecx, dword [esp + 0x48]
mov eax, dword [esp + 0x1c]
sar ecx, 1
add ecx, ecx
cmp eax, ecx
jbe 0x342b94d7
shr eax, 1
inc eax
push edi
push eax
lea ecx, [esp + 0x44]
call fcn.3427804d
mov eax, dword [esp + 0x1c]
lea edx, [esp + 0x1c]
push edx
push eax
push edi
lea ecx, [esp + 0x48]
call fcn.34278123
push eax
push 0x342d92b4
lea ecx, [esp + 0x100]
push ecx
push esi
mov ecx, ebx
call fcn.34209822
push eax
push 0x34226578
mov ecx, esi
call fcn.342094c1
cmp eax, edi
jl 0x342b95f4
lea edx, [esp + 0x1c]
push edx
push 1
lea eax, [esp + 0x2f]
push eax
push 0x342d92cc
lea ecx, [esp + 0x100]
push ecx
push esi
mov ecx, ebx
call fcn.34209822
push eax
push 0x34226578
mov ecx, esi
call fcn.342094c1
cmp eax, edi
jl 0x342b95f4
movzx edx, byte [esp + 0x27]
movzx eax, byte [ebp - 0x11]
push edi
push edi
push edx
push eax
push edi
lea ecx, [esp + 0x50]
call fcn.34278123
push eax
lea ecx, [esp + 0x8c]
call fcn.3431ef45
lea ecx, [esp + 0x78]
jmp 0x341fc2a8
mov ecx, edi
call fcn.341f5f2f
push 0xc4
call fcn.341f21e0
mov esi, eax
add esp, 4
mov dword [esp + 0x28], esi
mov byte [esp + 0x180], 2
test esi, esi
je 0x342b956f
mov ecx, esi
call fcn.341fb5bf
mov dword [esi], 0x34227b8c
jmp 0x342b9571
xor esi, esi
mov byte [esp + 0x180], 1
test esi, esi
jne 0x342b958b
push 1
push 0xfffffc0d
mov ecx, edi
call fcn.341f8dac
and byte [ebx + 0xdd], 0xbf
jmp 0x341fc2f8
mov dword [ebx + 0x58], edi
jmp 0x341fc352
mov eax, dword [esp + 0x28]
mov ecx, dword [eax + 1]
push edi
push 0xc
lea edx, [esp + 0xd8]
push edx
push ecx
mov ecx, dword [ebx + 0x28]
call fcn.3432886c
test byte [edi], 8
mov ecx, edi
jne 0x342b95e4
push 1
lea edx, [esp + 0xf4]
push edx
lea eax, [esp + 0xd8]
push eax
push 0xffffdf60
push 0xfffffb45
call fcn.34214687
jmp 0x342b963e
call fcn.341f5f2f
push 1
push 0xfffffb45
mov ecx, edi
jmp 0x342b9639
push 1
push eax
mov ecx, dword [esp + 0x20]
call fcn.341f8dac
lea ecx, [esp + 0x3c]
call fcn.342015e1
lea ecx, [esp + 0x78]
mov dword [esp + 0x180], 0xffffffff
call fcn.341fd633
jmp 0x342b963e
mov edx, dword [esi]
mov eax, dword [edx]
push 1
mov ecx, esi
call eax
push 1
push 0xfffffb4a
jmp 0x342b95f7
push 1
push 0xfffffb4a
call fcn.341f8dac
xor ebp, ebp
cmp dword [esp + 0x14], ebp
jle 0x342b9690
mov ecx, dword [esp + 0x2c]
add ecx, 5
mov dword [esp + 0x20], ecx
mov edx, dword [esp + 0x20]
movsx esi, word [edx]
cmp esi, 0xfe
ja 0x342b9690
mov ecx, dword [ebx + esi*4 + 0xf4]
lea edi, [ebx + 0x670]
cmp ecx, edi
je 0x342b9684
test ecx, ecx
je 0x342b967d
mov eax, dword [ecx]
mov edx, dword [eax]
push 1
call edx
mov dword [ebx + esi*4 + 0xf4], edi
add dword [esp + 0x20], 0x19
inc ebp
cmp ebp, dword [esp + 0x14]
jl 0x342b9651
xor eax, eax
jmp 0x341fc3ce