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

Disassembly:
push 0xffffffffffffffff
push 0x343a48f4
mov eax, dword fs:[0]
push eax
sub esp, 0x6c
push ebx
push ebp
push esi
push edi
mov eax, dword [0x34234fcc]
xor eax, esp
push eax
lea eax, [esp + 0x80]
mov dword fs:[0], eax
mov esi, ecx
mov eax, dword [esi + 0x178]
xor ebp, ebp
mov ecx, 0xff
mov ebx, 8
mov edi, 0x1fe
mov dword [esp + 0x1c], ebp
mov dword [esp + 0x28], ebp
mov dword [esp + 0x64], ebp
mov dword [esp + 0x68], ebp
mov dword [esp + 0x70], ecx
mov dword [esp + 0x74], ebx
mov dword [esp + 0x78], ecx
mov dword [esp + 0x7c], ebp
lea edx, [edi + 1]
cmp eax, ebp
jne 0x342ac3af
mov dword [esp + 0x88], ebp
xor ebp, ebp
mov dword [esp + 0x24], 0
mov dword [esp + 0x20], 0
mov dword [esp + 0x2c], 0
mov dword [esp + 0x48], ebp
mov dword [esp + 0x4c], ebp
mov dword [esp + 0x54], ecx
mov dword [esp + 0x58], ebx
mov dword [esp + 0x5c], ecx
mov dword [esp + 0x60], ebp
cmp eax, ebp
jne 0x342ac3c8
mov edi, dword [esp + 0x90]
mov eax, dword [esi]
mov edx, dword [eax + 0x3c]
xor ebp, ebp
push edi
push ebp
mov ecx, esi
mov byte [esp + 0x90], 1
mov dword [esp + 0x20], ebp
mov dword [esp + 0x1c], ebp
call edx
mov ecx, eax
call fcn.34201e2d
test byte [edi], 8
jne 0x342849b6
mov ecx, dword [esi + 0x20]
mov eax, dword [ecx]
mov edx, dword [eax + 0xc]
push edi
call edx
mov dword [esp + 0x90], eax
mov edx, eax
mov ecx, dword [edi]
and ecx, ebx
jne 0x3420ff0e
mov eax, dword [esp + 0x7c]
test eax, eax
jne 0x342ac3e1
mov eax, edx
shr eax, 8
mov dword [esp + 0x1c], eax
mov eax, dword [esp + 0x78]
and eax, edx
mov dword [esp + 0x28], eax
mov eax, dword [esi + 0xc]
mov eax, dword [eax + 0x34]
cmp eax, 9
je 0x342ac3ef
test ecx, ecx
jne 0x3420ff4b
cmp dword [esi + 0x1c8], 0
mov eax, dword [esi + 0x28]
lea ecx, [esp + 0x14]
push ecx
jne 0x3422441e
mov edx, dword [esp + 0x20]
push ebp
push eax
push edi
push edx
lea ecx, [esp + 0x78]
push ecx
mov ecx, dword [eax + 8]
call fcn.341f5ba8
test byte [edi], 8
jne 0x342849c2
mov eax, dword [esp + 0x14]
cmp eax, 1
je 0x34224442
cmp eax, 2
je 0x34224442
cmp eax, 3
je 0x34224442
test byte [edi], 8
jne 0x342849c2
mov eax, dword [esp + 0x68]
movzx eax, word [eax]
mov ecx, 0x109
cmp ax, cx
je 0x342ac3fd
test byte [edi], 8
jne 0x342849c2
mov eax, dword [esp + 0x90]
lea edx, [esp + 0x30]
push edx
push eax
lea ecx, [esp + 0x6c]
call fcn.341faa3c
sub eax, 1
je 0x342203ec
sub eax, 1
je 0x342ac457
sub eax, 1
je 0x342ac410
mov ebx, dword [esp + 0x24]
test byte [edi], 8
jne 0x3420ffe1
mov eax, dword [esi + 0x34]
cmp dword [eax + 0x24], 0
jne 0x34224453
cmp dword [esi + 0x2c], 1
je 0x342243c1
test byte [edi], 8
jne 0x3421004e
cmp dword [esi + 0x1c8], 0
jne 0x3422448e
mov eax, dword [esi + 0x34]
mov ecx, dword [eax + 4]
mov eax, dword [eax]
push ecx
mov ecx, dword [esp + 0x94]
push eax
push ecx
lea ecx, [esp + 0x70]
call fcn.34210085
mov ebp, eax
test ebx, ebx
jne 0x342204b9
test ebp, ebp
je 0x3422555f
mov eax, dword [esi + 0x34]
cmp dword [eax + 0x24], 0
jne 0x34224534
test byte [edi], 8
jne 0x3421004e
mov ecx, dword [esp + 0x64]
test ecx, ecx
je 0x3421004e
mov eax, dword [esp + 0x68]
push eax
call fcn.341f5f83
mov eax, dword [esp + 0x48]
test eax, eax
jne 0x3422063d
mov eax, dword [esp + 0x64]
test eax, eax
je 0x3421006c
add eax, 0x6c
or edx, 0xffffffff
lock xadd dword [eax], edx
mov ecx, dword [esp + 0x80]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x78
ret 4
mov eax, dword [esp + 0x60]
mov ecx, dword [esp + 0x30]
mov ebx, dword [ecx]
test eax, eax
jne 0x342ac460
mov eax, ebx
shr eax, 8
mov edx, dword [esp + 0x5c]
mov ecx, dword [esi + 0x28]
and edx, ebx
cmp dword [esi + 0x1c8], 0
mov dword [esp + 0x20], eax
mov dword [esp + 0x2c], edx
je 0x3422047a
lea ebp, [esp + 0x14]
push ebp
mov ebp, dword [esp + 0x1c]
push 1
push ebp
push ecx
mov ecx, dword [ecx + 8]
push edi
push edx
push eax
lea eax, [esp + 0x64]
push eax
call fcn.3422282d
test byte [edi], 8
jne 0x3420ffe1
mov eax, dword [esp + 0x14]
cmp eax, 1
je 0x34220451
cmp eax, 2
jne 0x34220492
mov ecx, dword [esi + 8]
push ecx
mov ecx, dword [esi + 0xc]
call fcn.3420465d
test byte [edi], 8
jne 0x3420ffe1
lea edx, [esp + 0x30]
push edx
push ebx
lea ecx, [esp + 0x50]
call fcn.341faa3c
jmp 0x3420ffcf
lea edx, [esp + 0x14]
push edx
push ebp
push ecx
mov ecx, dword [ecx + 8]
push edi
push eax
lea eax, [esp + 0x5c]
push eax
call fcn.341f5ba8
jmp 0x3422043a
cmp eax, 3
jne 0x3422045d
jmp 0x34220451
test ebp, ebp
jne 0x34295f14
cmp dword [esi + 0x1c8], ebp
je 0x342205f7
mov ecx, dword [esp + 0x5c]
push edi
lea edx, [esp + 0x28]
push edx
lea eax, [esp + 0x30]
and ecx, ebx
push eax
push ecx
lea ecx, [esp + 0x58]
call fcn.34224564
test byte [edi], 8
jne 0x3421004e
mov edx, dword [esi + 0x34]
mov eax, dword [edx + 4]
cmp dword [esp + 0x28], eax
jne 0x342ac567
mov eax, dword [esi + 0x34]
mov eax, dword [eax + 4]
push eax
push ebx
lea ecx, [esp + 0x50]
call fcn.342244b1
test eax, eax
jne 0x342ac580
mov eax, dword [esi + 0x34]
mov ecx, dword [eax + 4]
cmp dword [esp + 0x28], ecx
jne 0x342ac580
mov eax, dword [eax]
push ecx
push eax
push ebx
lea ecx, [esp + 0x54]
call fcn.34210085
mov ebp, eax
test ebp, ebp
je 0x342ac582
lea ecx, [esp + 0x48]
call fcn.3421e5eb
test eax, eax
jne 0x34294913
lea ecx, [esp + 0x48]
call fcn.34220602
test eax, eax
jne 0x34294913
mov ecx, dword [esi + 0x34]
mov eax, dword [ecx + 4]
push edi
push eax
lea ecx, [esp + 0x50]
call fcn.341f59a8
test eax, eax
je 0x342205ba
mov dword [esp + 0x30], 1
mov dword [esp + 0x44], 0
mov eax, dword [esp + 0x20]
push 1
lea edx, [esp + 0x34]
push edx
push eax
mov ecx, esi
mov byte [esp + 0x94], 3
call fcn.342260d2
test dword [esp + 0x30], 0xfffffffe
mov byte [esp + 0x88], 1
jne 0x342ac5cb
mov eax, dword [esp + 0x48]
test eax, eax
je 0x34210022
mov ecx, dword [eax + 0x18]
mov edx, dword [eax + ecx*8 + 0x1c]
lea eax, [eax + ecx*8 + 0x1c]
and edx, 0xffffff4f
or edx, 0x40
mov dword [eax], edx
mov ecx, dword [esp + 0x48]
test ecx, ecx
je 0x34210022
mov eax, dword [esp + 0x4c]
push eax
call fcn.341f5f83
jmp 0x34210022
mov eax, dword [esi + 0x34]
mov ecx, dword [eax + 4]
jmp 0x3422052a
add eax, 0x6c
or ecx, 0xffffffff
lock xadd dword [eax], ecx
jmp 0x3421005a
test byte [edi], 8
jne 0x3421004e
push edi
mov ecx, esi
call fcn.342243de
jmp 0x3420ffeb
mov edx, dword [esp + 0x2c]
mov ecx, dword [esp + 0x20]
push 1
push ebp
push eax
push edi
push edx
push ecx
mov ecx, dword [eax + 8]
lea edx, [esp + 0x80]
push edx
call fcn.3422282d
jmp 0x3420ff4b
mov edx, dword [esi + 8]
mov ecx, dword [esi + 0xc]
push edx
call fcn.3420465d
jmp 0x3420ff73
mov ecx, dword [esp + 0x90]
mov edx, dword [esp + 0x38]
mov eax, dword [esp + 0x34]
push edi
push ecx
mov ecx, dword [esp + 0x38]
push edx
push eax
push ecx
mov ecx, esi
mov dword [esi + 0x188], 0
call fcn.34222b2d
cmp dword [esi + 0x188], 0
je 0x3420ffe1
jmp 0x342ac423
mov edx, dword [esi + 0x34]
mov eax, dword [edx + 4]
push eax
mov eax, dword [esp + 0x94]
push eax
lea ecx, [esp + 0x6c]
call fcn.342244b1
test eax, eax
je 0x34224527
xor ebp, ebp
jmp 0x3421001a
test ebx, ebx
je 0x3420fffd
jmp 0x342244aa
xor edx, edx
lea ecx, [eax + 0x48]
cmp dword [eax], ecx
push edi
setne dl
dec edx
and edx, 0xfdc
mov ecx, edx
mov edx, dword [esp + 0x94]
push edx
mov edx, dword [eax]
push ecx
mov ecx, dword [eax + 4]
push ecx
push edx
mov ecx, esi
call fcn.34203141
jmp 0x34210037
cmp dword [esi + 0x1c8], ebp
je 0x342849a6
mov ecx, dword [esp + 0x90]
push 1
push edi
push ecx
push 1
mov ecx, esi
call fcn.34202dc1
test byte [edi], 8
mov ebx, eax
jne 0x3421004e
cmp dword [esi + 0x2c], 2
jne 0x342255f4
push ebx
lea ecx, [esp + 0x68]
call fcn.3421aa48
mov edx, dword [esp + 0x78]
mov ecx, dword [esi + 0x28]
and edx, ebx
cmp dword [esi + 0x1c8], 0
je 0x342849d9
lea ebp, [esp + 0x14]
push ebp
mov ebp, dword [esp + 0x1c]
push ebp
push edi
push edx
push eax
call fcn.342256de
test byte [edi], 8
jne 0x342255f4
mov eax, dword [esp + 0x14]
cmp eax, 1
je 0x342ac5d9
cmp eax, 2
je 0x342ac5d9
cmp eax, 3
je 0x342ac5d9
mov ebp, dword [esi + 0x78]
test ebp, ebp
jne 0x342ac5ea
mov dword [esi + 0x78], ebx
cmp dword [esi + 0x1c8], 0
push ebx
je 0x342849ef
mov eax, dword [esp + 0x94]
push eax
lea ecx, [esp + 0x6c]
call fcn.34225703
mov ebp, eax
test ebp, ebp
jne 0x34210037
jmp 0x342ac67b
mov edx, dword [esp + 0x90]
push 0
push edi
push edx
jmp 0x34225576
mov edx, dword [esp + 0x90]
jmp 0x3420fee9
mov ebx, dword [esp + 0x24]
jmp 0x3420ffe1
test byte [edi], 8
je 0x34220501
jmp 0x3421004e
lea edx, [esp + 0x14]
push edx
mov edx, dword [esp + 0x1c]
push edx
push edi
push eax
call fcn.342203ac
jmp 0x342255c2
mov ecx, dword [esp + 0x94]
push ecx
lea ecx, [esp + 0x6c]
call fcn.34284a20
mov edx, dword [esi + 0x34]
mov ebp, eax
mov eax, dword [edx + 4]
push edi
push eax
lea ecx, [esp + 0x6c]
call fcn.341f59a8
test eax, eax
je 0x34225615
jmp 0x342ac661
mov dword [esp + 0x30], 1
mov dword [esp + 0x44], 0
mov edx, dword [esp + 0x4c]
mov ebx, dword [esp + 0x20]
lea eax, [esp + 0x30]
mov ecx, 0x109
push eax
mov word [edx], cx
push ebx
mov ecx, esi
mov byte [esp + 0x90], 2
call fcn.34223430
test byte [esp + 0x30], 8
jne 0x342205a4
push 0
lea ecx, [esp + 0x34]
push ecx
push ebx
lea ecx, [esi + 0xa4]
call fcn.34221189
test byte [esp + 0x30], 8
jne 0x342205a4
mov eax, dword [esi + 4]
mov ecx, dword [eax + 0x40]
lea edx, [esp + 0x30]
push edx
push 1
push ebx
call fcn.3421fe44
jmp 0x342205a4
mov eax, dword [esi + 0x78]
test eax, eax
je 0x34295f41
mov ecx, dword [esp + 0x7c]
test ecx, ecx
jne 0x342ac5bf
shr eax, 8
mov ecx, dword [esi + 0x28]
push 0
push ecx
mov ecx, dword [ecx + 8]
push edi
push eax
call fcn.342102e5
mov dword [esi + 0x78], 0
push ebx
lea ecx, [esp + 0x4c]
call fcn.3421e395
jmp 0x34220542
mov dword [esp + 0x70], edi
mov dword [esp + 0x74], 9
mov dword [esp + 0x78], edx
mov dword [esp + 0x7c], eax
jmp 0x3420fe60
mov dword [esp + 0x54], edi
mov dword [esp + 0x58], 9
mov dword [esp + 0x5c], edx
mov dword [esp + 0x60], eax
jmp 0x3420fea1
mov ebx, edx
shr ebx, 9
lea eax, [ebx + eax - 1]
jmp 0x3420ff00
mov ebp, 0x40
mov dword [esp + 0x18], ebp
jmp 0x3420ff1d
push 1
push 0xfffffc07
mov ecx, edi
call fcn.341f8dac
jmp 0x3420ff91
push 1
push 0xfffffc07
mov ecx, edi
call fcn.341f8dac
jmp 0x3420ffcb
test byte [edi], 8
jne 0x3420ffe1
cmp dword [esi + 0x1c8], 0
mov ecx, dword [esi + 0x28]
lea edx, [esp + 0x14]
push edx
je 0x342ac46e
mov eax, dword [esp + 0x2c]
mov edx, dword [esp + 0x20]
push 1
push ebp
push edi
push eax
push edx
lea eax, [esp + 0x7c]
push eax
call fcn.34326851
jmp 0x342ac47f
push 1
push 0xfffffbeb
jmp 0x342ac417
mov edx, ebx
shr edx, 9
lea eax, [edx + eax - 1]
jmp 0x34220403
mov eax, dword [esp + 0x20]
push ebp
push edi
push eax
lea edx, [esp + 0x74]
push edx
call fcn.3431e4b4
test byte [edi], 8
jne 0x3420ffe1
mov eax, dword [esp + 0x14]
cmp eax, 1
je 0x342ac49b
cmp eax, 2
je 0x342ac49b
cmp eax, 3
jne 0x342ac4a7
mov eax, dword [esi + 8]
mov ecx, dword [esi + 0xc]
push eax
call fcn.3420465d
mov edx, dword [esp + 0x90]
lea ecx, [esp + 0x30]
push ecx
push edx
lea ecx, [esp + 0x6c]
call fcn.341faa3c
sub eax, 1
jne 0x342ac550
mov eax, dword [esp + 0x30]
mov ebx, dword [eax]
push ebx
lea ecx, [esp + 0x4c]
call fcn.3421aa48
mov edx, dword [esp + 0x5c]
mov ecx, dword [esi + 0x28]
and edx, ebx
cmp dword [esi + 0x1c8], 0
mov dword [esp + 0x20], eax
mov dword [esp + 0x2c], edx
je 0x342ac50b
lea ebp, [esp + 0x14]
push ebp
mov ebp, dword [esp + 0x1c]
push 1
push ebp
push edi
push edx
push eax
lea edx, [esp + 0x60]
push edx
call fcn.34326851
jmp 0x342ac51d
lea edx, [esp + 0x14]
push edx
push ebp
push edi
push eax
lea eax, [esp + 0x58]
push eax
call fcn.3431e4b4
test byte [edi], 8
jne 0x342ac550
mov eax, dword [esp + 0x14]
cmp eax, 1
je 0x342ac535
cmp eax, 2
je 0x342ac535
cmp eax, 3
jne 0x342ac541
mov ecx, dword [esi + 8]
push ecx
mov ecx, dword [esi + 0xc]
call fcn.3420465d
lea edx, [esp + 0x30]
push edx
push ebx
lea ecx, [esp + 0x50]
call fcn.341faa3c
mov eax, dword [esp + 0x34]
mov ecx, dword [esp + 0x30]
push eax
push ecx
mov ecx, dword [esi + 0x34]
call fcn.343268a0
jmp 0x3420ffe1
cmp dword [esi + 0x194], ebp
jbe 0x34220501
push edi
mov ecx, esi
call fcn.343270c3
jmp 0x342849cb
xor ebp, ebp
cmp dword [esi + 0x1c8], 0
je 0x34295f41
mov edx, dword [esp + 0x18]
mov eax, dword [esp + 0x2c]
mov ecx, dword [esi + 0x28]
push 0
push 2
push edx
mov edx, dword [esp + 0x2c]
push edi
push eax
push edx
lea eax, [esp + 0x60]
push eax
call fcn.34326851
push ebx
lea ecx, [esp + 0x4c]
call fcn.34222aa9
jmp 0x34220542
shr eax, 9
lea eax, [ecx + eax - 1]
jmp 0x34295f2a
lea ecx, [esp + 0x30]
call fcn.341ffba8
jmp 0x342205ba
mov eax, dword [esi + 8]
mov ecx, dword [esi + 0xc]
push eax
call fcn.3420465d
jmp 0x342255e6
mov dword [esp + 0x30], 1
mov dword [esp + 0x44], 0
push ebp
lea ecx, [esp + 0x68]
mov byte [esp + 0x8c], 4
call fcn.3421aa48
mov edx, dword [esp + 0x78]
mov ecx, dword [esi + 0x28]
and edx, ebp
cmp dword [esi + 0x1c8], 0
push 0
je 0x342ac62e
lea ebp, [esp + 0x34]
push ebp
push edx
push eax
call fcn.34326880
jmp 0x342ac63d
push ecx
mov ecx, dword [ecx + 8]
lea edx, [esp + 0x38]
push edx
push eax
call fcn.342102e5
test dword [esp + 0x30], 0xfffffffe
mov byte [esp + 0x88], 1
je 0x342255f1
lea ecx, [esp + 0x30]
call fcn.341ffba8
jmp 0x342255f1
push 1
push edi
push ebp
lea ecx, [esp + 0x70]
call fcn.3421aa48
push eax
mov ecx, esi
call fcn.342260d2
jmp 0x34225615
push 1
push 0xfffffc0c
mov ecx, edi
call fcn.341f8dac
jmp 0x34210037