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

Disassembly:
push 0xffffffffffffffff
push 0x434608
mov eax, dword fs:[0]
push eax
sub esp, 0x4c
mov eax, dword [0x44c054]
xor eax, esp
mov dword [esp + 0x48], eax
push ebx
push ebp
push esi
push edi
mov eax, dword [0x44c054]
xor eax, esp
push eax
lea eax, [esp + 0x60]
mov dword fs:[0], eax
mov edi, edx
mov eax, ecx
mov dword [esp + 0x18], eax
mov ebx, dword [esp + 0x70]
mov edx, dword [esp + 0x74]
mov dword [esp + 0x24], edx
lea esi, [ebx + 0x20]
cmp eax, edi
je 0x4226af
mov ecx, dword [edx + 0xc]
mov dword [esp + 0x20], ecx
mov ecx, dword [ebx + 8]
mov bh, byte [esp + 0x78]
xor ebp, ebp
mov dword [esp + 0x1c], ecx
test ecx, ecx
je 0x4221f1
lea ecx, [ecx]
mov bl, byte [esi]
mov edx, eax
test bl, bl
jne 0x422188
mov al, byte [eax]
test bh, bh
je 0x422172
mov ecx, dword [esp + 0x20]
movzx eax, al
mov ecx, dword [ecx]
mov al, byte [eax + ecx + 0x104]
mov ecx, dword [esp + 0x1c]
test al, al
je 0x42226c
lea ebx, [ebx]
inc esi
cmp byte [esi], 0
je 0x422180
jmp 0x4221e0
cmp edx, edi
je 0x4221d0
mov al, byte [edx]
test bh, bh
je 0x4221a2
mov ecx, dword [esp + 0x20]
movzx eax, al
mov ecx, dword [ecx]
mov al, byte [eax + ecx + 0x104]
cmp al, bl
jne 0x4221d0
mov bl, byte [esi + 1]
inc esi
inc edx
test bl, bl
jne 0x422188
mov eax, dword [esp + 0x70]
mov esi, dword [esp + 0x18]
cmp byte [eax + 0x1c], 0
jne 0x4226ad
cmp edx, esi
je 0x4226ac
mov esi, edx
jmp 0x4226ad
cmp byte [esi], 0
je 0x4221af
inc esi
cmp byte [esi], 0
jne 0x4221d5
mov ecx, dword [esp + 0x1c]
inc esi
mov eax, dword [esp + 0x18]
inc ebp
cmp ebp, ecx
jb 0x422150
mov edx, dword [esp + 0x24]
mov bl, byte [eax]
mov edi, dword [esp + 0x20]
mov byte [esp + 0x17], bl
test bh, bh
je 0x42220f
mov ecx, dword [edi]
movzx eax, bl
mov bl, byte [eax + ecx + 0x104]
mov byte [esp + 0x17], bl
mov ebp, dword [esp + 0x70]
mov byte [esp + 0x28], bl
mov eax, dword [ebp + 0xc]
test eax, eax
jne 0x422227
cmp dword [ebp + 0x10], eax
je 0x422609
mov dword [esp + 0x40], 0xf
mov dword [esp + 0x3c], 0
mov byte [esp + 0x2c], 0
mov dword [esp + 0x68], 0
test eax, eax
je 0x422437
test dword [edx + 0x14], 0x200000
jne 0x422283
mov byte [esp + 0x2c], bl
mov ebx, 1
mov dword [esp + 0x3c], ebx
mov byte [esp + 0x2d], 0
jmp 0x4222f5
mov eax, dword [esp + 0x70]
mov esi, dword [esp + 0x18]
cmp byte [eax + 0x1c], 0
jne 0x4226ad
jmp 0x4226ac
lea eax, [esp + 0x1d]
push eax
lea eax, [esp + 0x20]
push eax
lea eax, [esp + 0x4c]
push eax
mov ecx, edi
mov byte [esp + 0x28], bl
mov byte [esp + 0x29], 0
call fcn.00431540
mov edi, eax
lea eax, [esp + 0x2c]
cmp eax, edi
je 0x4222de
cmp dword [esp + 0x40], 0x10
jb 0x4222bf
push dword [esp + 0x2c]
call sub.MSVCR110.dll_void___cdecl_operator_delete_void__
add esp, 4
push edi
lea ecx, [esp + 0x30]
mov dword [esp + 0x44], 0xf
mov dword [esp + 0x40], 0
mov byte [esp + 0x30], 0
call fcn.00402667
cmp dword [esp + 0x58], 0x10
jb 0x4222f1
push dword [esp + 0x44]
call sub.MSVCR110.dll_void___cdecl_operator_delete_void__
add esp, 4
mov ebx, dword [esp + 0x3c]
mov eax, dword [esp + 0x70]
xor ebp, ebp
cmp dword [eax + 0xc], ebp
jbe 0x422435
cmp byte [esi], 0
jne 0x42232d
test ebx, ebx
je 0x422374
cmp ebx, 1
jne 0x422329
mov edx, dword [esp + 0x40]
mov ecx, dword [esp + 0x2c]
cmp edx, 0x10
lea eax, [esp + 0x2c]
cmovae eax, ecx
cmp byte [eax], 0
je 0x422380
xor edi, edi
jmp 0x42233b
mov edi, esi
lea ecx, [edi + 1]
mov al, byte [edi]
inc edi
test al, al
jne 0x422332
sub edi, ecx
cmp dword [esp + 0x40], 0x10
lea ecx, [esp + 0x2c]
cmovae ecx, dword [esp + 0x2c]
mov eax, edi
cmp ebx, edi
cmovb eax, ebx
push eax
push esi
push ecx
call fcn.00402667
add esp, 0xc
test eax, eax
jne 0x42236e
cmp ebx, edi
jb 0x422413
cmp ebx, edi
setne al
test eax, eax
js 0x422413
mov ecx, dword [esp + 0x2c]
mov edx, dword [esp + 0x40]
lea esp, [esp]
inc esi
cmp byte [esi], 0
jne 0x422380
inc esi
cmp byte [esi], 0
jne 0x4223a8
test ebx, ebx
je 0x4223e8
cmp ebx, 1
jne 0x4223a4
cmp edx, 0x10
lea eax, [esp + 0x2c]
cmovae eax, ecx
cmp byte [eax], 0
je 0x4223e8
xor edi, edi
jmp 0x4223b9
mov edi, esi
lea ecx, [edi + 1]
lea ecx, [ecx]
mov al, byte [edi]
inc edi
test al, al
jne 0x4223b0
sub edi, ecx
cmp edx, 0x10
lea ecx, [esp + 0x2c]
cmovae ecx, dword [esp + 0x2c]
mov eax, edi
cmp ebx, edi
cmovb eax, ebx
push eax
push esi
push ecx
call fcn.00402667
add esp, 0xc
test eax, eax
jne 0x4223e6
cmp ebx, edi
jb 0x4223e8
cmp ebx, edi
setne al
test eax, eax
jg 0x422420
mov eax, dword [esp + 0x70]
mov esi, dword [esp + 0x18]
cmp byte [eax + 0x1c], 0
jne 0x4223f7
inc esi
cmp dword [esp + 0x40], 0x10
jb 0x4226ad
push dword [esp + 0x2c]
call sub.MSVCR110.dll_void___cdecl_operator_delete_void__
add esp, 4
jmp 0x4226ad
inc esi
cmp byte [esi], 0
jne 0x422413
inc esi
lea ebx, [ebx]
inc esi
cmp byte [esi], 0
jne 0x422420
mov eax, dword [esp + 0x70]
inc ebp
inc esi
cmp ebp, dword [eax + 0xc]
jb 0x422304
mov ebp, eax
cmp dword [ebp + 0x10], 0
mov bl, byte [esp + 0x17]
je 0x4225f6
mov ecx, dword [esp + 0x20]
lea eax, [esp + 0x1d]
push eax
lea eax, [esp + 0x20]
push eax
lea eax, [esp + 0x4c]
push eax
mov byte [esp + 0x28], bl
mov byte [esp + 0x29], 0
call fcn.004315a0
mov edi, eax
lea eax, [esp + 0x2c]
cmp eax, edi
je 0x4224e1
cmp dword [esp + 0x40], 0x10
jb 0x422483
push dword [esp + 0x2c]
call sub.MSVCR110.dll_void___cdecl_operator_delete_void__
add esp, 4
mov dword [esp + 0x40], 0xf
mov dword [esp + 0x3c], 0
mov byte [esp + 0x2c], 0
cmp dword [edi + 0x14], 0x10
jae 0x4224b6
mov eax, dword [edi + 0x10]
inc eax
je 0x4224c2
push eax
lea eax, [esp + 0x30]
push edi
push eax
call dword [sym.imp.MSVCR110.dll_memmove]
add esp, 0xc
jmp 0x4224c2
mov eax, dword [edi]
mov dword [esp + 0x2c], eax
mov dword [edi], 0
mov eax, dword [edi + 0x10]
mov dword [esp + 0x3c], eax
mov eax, dword [edi + 0x14]
mov dword [esp + 0x40], eax
mov dword [edi + 0x14], 0xf
mov dword [edi + 0x10], 0
mov byte [edi], 0
cmp dword [esp + 0x58], 0x10
jb 0x4224f4
push dword [esp + 0x44]
call sub.MSVCR110.dll_void___cdecl_operator_delete_void__
add esp, 4
cmp dword [ebp + 0x10], 0
mov dword [esp + 0x24], 0
jbe 0x4225f6
mov ebp, dword [esp + 0x3c]
lea ebx, [ebx]
cmp byte [esi], 0
jne 0x42253d
test ebp, ebp
je 0x4223e8
cmp ebp, 1
jne 0x422539
cmp dword [esp + 0x40], 0x10
lea eax, [esp + 0x2c]
cmovae eax, dword [esp + 0x2c]
cmp byte [eax], 0
je 0x4223e8
xor edx, edx
jmp 0x42254b
mov edx, esi
lea ecx, [edx + 1]
mov al, byte [edx]
inc edx
test al, al
jne 0x422542
sub edx, ecx
cmp dword [esp + 0x40], 0x10
lea edi, [esp + 0x2c]
cmovae edi, dword [esp + 0x2c]
cmp ebp, edx
mov ecx, edx
cmovb ecx, ebp
test ecx, ecx
je 0x4225c0
mov ebx, esi
sub ecx, 4
jb 0x422581
jmp 0x422570
mov eax, dword [edi]
cmp eax, dword [ebx]
jne 0x422586
add edi, 4
add ebx, 4
sub ecx, 4
jae 0x422570
cmp ecx, 0xfffffffc
je 0x4225ba
mov al, byte [edi]
cmp al, byte [ebx]
jne 0x4225b3
cmp ecx, 0xfffffffd
je 0x4225ba
mov al, byte [edi + 1]
cmp al, byte [ebx + 1]
jne 0x4225b3
cmp ecx, 0xfffffffe
je 0x4225ba
mov al, byte [edi + 2]
cmp al, byte [ebx + 2]
jne 0x4225b3
cmp ecx, 0xffffffff
je 0x4225ba
mov al, byte [edi + 3]
cmp al, byte [ebx + 3]
je 0x4225ba
sbb eax, eax
or eax, 1
jmp 0x4225bc
xor eax, eax
test eax, eax
jne 0x4225d3
cmp ebp, edx
jb 0x4225d3
xor eax, eax
cmp ebp, edx
setne al
test eax, eax
je 0x4223e8
inc esi
cmp byte [esi], 0
jne 0x4225d3
mov eax, dword [esp + 0x24]
mov ecx, dword [esp + 0x70]
inc eax
inc esi
mov dword [esp + 0x24], eax
cmp eax, dword [ecx + 0x10]
jb 0x422510
mov bl, byte [esp + 0x17]
mov ebp, ecx
cmp dword [esp + 0x40], 0x10
jb 0x422609
push dword [esp + 0x2c]
call sub.MSVCR110.dll_void___cdecl_operator_delete_void__
add esp, 4
mov edx, dword [ebp + 0x14]
mov edi, dword [esp + 0x20]
test edx, 0x3ff
je 0x42262e
mov eax, dword [edi]
movzx ecx, bl
movzx eax, word [eax + ecx*2 + 0x204]
and eax, edx
test eax, 0x3ff
jne 0x422682
test edx, 0x400
je 0x42263b
cmp bl, 0x5f
je 0x422682
test edx, 0x2000
je 0x422657
cmp bl, 0xa
je 0x422682
cmp bl, 0xd
je 0x422682
cmp bl, 0xc
je 0x422682
cmp bl, 0xb
je 0x422682
mov esi, dword [esp + 0x28]
test edx, 0x1000
je 0x42268e
push 8
push esi
mov ecx, edi
call fcn.0042aa80
test al, al
je 0x42268e
push 0x2000
push esi
mov ecx, edi
call fcn.0042aa80
test al, al
jne 0x42268e
cmp byte [ebp + 0x1c], 0
mov esi, dword [esp + 0x18]
jne 0x4226ad
jmp 0x4226ac
mov eax, dword [ebp + 0x18]
test eax, eax
je 0x4226a2
push eax
push esi
mov ecx, edi
call fcn.0042aa80
test al, al
je 0x422682
cmp byte [ebp + 0x1c], 0
mov esi, dword [esp + 0x18]
je 0x4226ad
inc esi
mov eax, esi
mov ecx, dword [esp + 0x60]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebp
pop ebx
mov ecx, dword [esp + 0x48]
xor ecx, esp
call fcn.0041d508
add esp, 0x58
ret 0xc