Function at 0x10004c90
Capabilities:
Contain obfuscated stackstrings

Disassembly:
sub esp, 0x974
mov eax, dword [0x1001f454]
xor eax, esp
mov dword [esp + 0x970], eax
mov eax, dword [esp + 0x97c]
mov ecx, dword [esp + 0x984]
mov edx, dword [esp + 0x980]
push ebx
push esi
push 0x3ff
mov dword [0x100214f8], eax
lea eax, [esp + 0x17d]
push 0
push eax
mov dword [0x100214f4], ecx
mov dword [0x100214f0], edx
mov byte [esp + 0x184], 0
call fcn.100062d0
push 0x3ff
lea ecx, [esp + 0x589]
push 0
push ecx
mov byte [esp + 0x590], 0
call fcn.100062d0
add esp, 0x18
lea edx, [esp + 0x178]
mov bl, 0x65
push edx
mov byte [esp + 0x169], 0x34
mov byte [esp + 0x165], 0x38
mov byte [esp + 0x15d], 0x62
mov byte [esp + 0x16c], bl
mov byte [esp + 0x163], 0x36
mov byte [esp + 0x16b], bl
mov byte [esp + 0x162], 0x30
call fcn.10005560
lea eax, [esp + 0x578]
push eax
call fcn.10005560
push 1
lea ecx, [esp + 0x28]
mov byte [esp + 0x15a], 0x64
mov byte [esp + 0x178], 0
mov byte [esp + 0x16d], 0x38
mov byte [esp + 0x15b], 0x36
mov byte [esp + 0x15e], bl
mov byte [esp + 0x16e], 0x38
mov byte [esp + 0x160], bl
mov byte [esp + 0x173], 0x38
mov byte [esp + 0x164], 0x33
mov byte [esp + 0x16a], 0x64
mov byte [esp + 0x176], 0x35
mov byte [esp + 0x177], bl
mov byte [esp + 0x161], 0x62
mov byte [esp + 0x15f], 0x35
call fcn.10004970
push 0x40
push 0x25
lea ecx, [esp + 0x180]
push ecx
lea ecx, [esp + 0x38]
call fcn.10004380
test eax, eax
jne 0x10004e0d
mov edx, dword [esp + 0x24]
mov ecx, dword [edx + 4]
mov eax, dword [esp + ecx + 0x2c]
lea ecx, [esp + ecx + 0x24]
or eax, 2
cmp dword [ecx + 0x28], 0
jne 0x10004e05
or eax, 4
push 0
push eax
call fcn.10003e20
mov al, 0x66
mov byte [esp + 0x16e], al
mov byte [esp + 0x155], al
mov eax, dword [esp + 0x24]
mov byte [esp + 0x162], 0x39
mov byte [esp + 0x158], bl
mov byte [esp + 0x154], bl
mov byte [esp + 0x170], 0x62
mov byte [esp + 0x164], 0x63
mov byte [esp + 0x16c], 0x64
mov byte [esp + 0x16d], 0x38
mov byte [esp + 0x163], bl
mov byte [esp + 0x171], 0x38
mov byte [esp + 0x16b], 0x35
mov eax, dword [eax + 4]
test byte [esp + eax + 0x2c], 6
jne 0x10004e9a
mov eax, dword [esp + eax + 0x4c]
mov edx, dword [eax]
mov edx, dword [edx + 0x24]
push 1
push 1
push 0
lea ecx, [esp + 0x18]
push ecx
mov ecx, eax
call edx
mov ecx, dword [esp + 0x14]
mov eax, dword [esp + 0xc]
jmp 0x10004ea5
mov eax, dword [0x1001a3c4]
xor ecx, ecx
mov dword [esp + 0x18], ecx
lea esi, [ecx + eax]
lea eax, [esi + 0x3e8]
push eax
call fcn.10006085
add esp, 4
push 0
push 0
lea ecx, [esp + 0x2c]
mov ebx, eax
call fcn.10004270
push esi
push 0xffffffffffffffff
push ebx
lea ecx, [esp + 0x30]
call fcn.10004b70
lea ecx, [esp + 0x2c]
call fcn.100037a0
test eax, eax
jne 0x10004f03
mov ecx, dword [esp + 0x24]
mov ecx, dword [ecx + 4]
mov eax, dword [esp + ecx + 0x2c]
lea ecx, [esp + ecx + 0x24]
or eax, 2
cmp dword [ecx + 0x28], 0
jne 0x10004efb
or eax, 4
push 0
push eax
call fcn.10003e20
lea edx, [esp + 0x154]
push edx
call fcn.10005150
push esi
push ebx
call fcn.10005220
xor ecx, ecx
add esp, 0xc
test al, al
setne cl
push 1
mov dword [esp + 0xc], ecx
lea ecx, [esp + 0xb4]
call fcn.10004a70
lea eax, [esp + 0x178]
mov dword [esp + 0x150], 0xf
mov dword [esp + 0x14c], 0
mov byte [esp + 0x13c], 0
lea edx, [eax + 1]
jmp 0x10004f60
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x10004f60
sub eax, edx
push eax
lea edx, [esp + 0x17c]
push edx
lea ecx, [esp + 0x140]
call fcn.10002860
mov ecx, 0x1001a340
lea eax, [esp + 0x578]
lea ebx, [ebx]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x10004fb0
test dl, dl
je 0x10004fac
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x10004fb0
add eax, 2
add ecx, 2
test dl, dl
jne 0x10004f90
xor eax, eax
jmp 0x10004fb5
sbb eax, eax
sbb eax, 0xffffffff
push 3
test eax, eax
jne 0x10004fcf
mov eax, dword [esp + 0x150]
push 0x1001a33c
push 3
add eax, 0xfffffffd
push eax
jmp 0x10004fe1
mov ecx, dword [esp + 0x150]
push 0x1001a338
push 3
add ecx, 0xfffffffd
push ecx
lea ecx, [esp + 0x148]
call fcn.10002ca0
cmp dword [esp + 0x150], 0x10
mov eax, dword [esp + 0x13c]
jae 0x10005005
lea eax, [esp + 0x13c]
push 0x40
push 0x26
push eax
lea ecx, [esp + 0xc0]
call fcn.10004380
test eax, eax
jne 0x10005046
mov edx, dword [esp + 0xb0]
mov ecx, dword [edx + 4]
mov eax, dword [esp + ecx + 0xb8]
lea ecx, [esp + ecx + 0xb0]
or eax, 2
cmp dword [ecx + 0x28], 0
jne 0x1000503e
or eax, 4
push 0
push eax
call fcn.10003e20
push esi
push ebx
lea ecx, [esp + 0xb8]
call fcn.10004860
lea ecx, [esp + 0xb4]
call fcn.100037a0
test eax, eax
jne 0x10005090
mov eax, dword [esp + 0xb0]
mov ecx, dword [eax + 4]
mov eax, dword [esp + ecx + 0xb8]
lea ecx, [esp + ecx + 0xb0]
or eax, 2
cmp dword [ecx + 0x28], 0
jne 0x10005088
or eax, 4
push 0
push eax
call fcn.10003e20
push ebx
call fcn.10006763
add esp, 4
cmp dword [esp + 8], 1
jne 0x100050a7
push 0x1001a334
jmp 0x100050ac
push str.fail
call fcn.100055b0
cmp dword [esp + 0x150], 0x10
jb 0x100050cb
mov ecx, dword [esp + 0x13c]
push ecx
call fcn.1000611b
add esp, 4
lea ecx, [esp + 0x104]
mov dword [esp + 0x150], 0xf
mov dword [esp + 0x14c], 0
mov byte [esp + 0x13c], 0
call fcn.10003bd0
lea edx, [esp + 0x104]
mov esi, vtable.std::ios_base.0
push edx
mov dword [esp + 0x108], esi
call fcn.10005bd5
add esp, 4
lea ecx, [esp + 0x7c]
call fcn.10004070
lea eax, [esp + 0x7c]
push eax
mov dword [esp + 0x80], esi
call fcn.10005bd5
mov ecx, dword [esp + 0x97c]
add esp, 4
pop esi
pop ebx
xor ecx, esp
call fcn.100061de
add esp, 0x974
ret