Function at 0x4212a8
Capabilities:
Authenticate hmac

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x78
mov dword [ebp - 0x4c], ecx
mov eax, edx
mov byte [ebp - 0x50], al
mov dword [ebp - 0x24], str.normalizePathEnd
mov dword [ebp - 0x1c], 0x494d88
mov dword [ebp - 0x20], 0
mov word [ebp - 0x18], 0
lea eax, [ebp - 0x28]
mov dword [esp], eax
call sym._nimFrame_19
mov dword [ebp - 0x20], 0x35
mov dword [ebp - 0x1c], 0x494d88
mov eax, dword [ebp - 0x4c]
mov eax, dword [eax]
test eax, eax
je 0x421672
nop
mov dword [ebp - 0x20], 0x36
mov eax, dword [ebp - 0x4c]
mov eax, dword [eax]
mov dword [ebp - 0xc], eax
mov dword [ebp - 0x20], 0x37
cmp dword [ebp - 0xc], 0
jle 0x421567
mov dword [ebp - 0x20], 0x38
mov edx, 0
mov eax, dword [ebp - 0xc]
sub eax, 1
jno 0x421331
mov edx, 1
mov ecx, eax
lea eax, [ebp - 0x2c]
mov dword [eax], ecx
mov eax, edx
and eax, 1
test al, al
je 0x42134b
call sym._raiseOverflow
jmp 0x421673
mov eax, dword [ebp - 0x2c]
test eax, eax
js 0x42135e
mov eax, dword [ebp - 0x4c]
mov edx, dword [eax]
mov eax, dword [ebp - 0x2c]
cmp edx, eax
jg 0x42137a
mov eax, dword [ebp - 0x4c]
mov eax, dword [eax]
lea edx, [eax - 1]
mov eax, dword [ebp - 0x2c]
mov dword [esp + 4], edx
mov dword [esp], eax
call sym._raiseIndexError2
jmp 0x421673
mov eax, dword [ebp - 0x4c]
mov edx, dword [eax + 4]
mov eax, dword [ebp - 0x2c]
movzx eax, byte [edx + eax + 4]
cmp al, 0x5c
je 0x42139e
mov eax, dword [ebp - 0x4c]
mov edx, dword [eax + 4]
mov eax, dword [ebp - 0x2c]
movzx eax, byte [edx + eax + 4]
cmp al, 0x2f
jne 0x4213d5
mov edx, 0
mov eax, dword [ebp - 0xc]
sub eax, 1
jno 0x4213b0
mov edx, 1
mov ecx, eax
lea eax, [ebp - 0x30]
mov dword [eax], ecx
mov eax, edx
and eax, 1
test al, al
je 0x4213ca
call sym._raiseOverflow
jmp 0x421673
mov eax, dword [ebp - 0x30]
mov dword [ebp - 0xc], eax
jmp 0x421562
nop
mov dword [ebp - 0x20], 0x39
mov byte [ebp - 0xd], 0
mov byte [ebp - 0xe], 0
mov edx, 0
mov eax, dword [ebp - 0xc]
sub eax, 1
jno 0x4213f7
mov edx, 1
mov ecx, eax
lea eax, [ebp - 0x34]
mov dword [eax], ecx
mov eax, edx
and eax, 1
test al, al
je 0x421411
call sym._raiseOverflow
jmp 0x421673
mov eax, dword [ebp - 0x34]
test eax, eax
js 0x421424
mov eax, dword [ebp - 0x4c]
mov edx, dword [eax]
mov eax, dword [ebp - 0x34]
cmp edx, eax
jg 0x421440
mov eax, dword [ebp - 0x4c]
mov eax, dword [eax]
lea edx, [eax - 1]
mov eax, dword [ebp - 0x34]
mov dword [esp + 4], edx
mov dword [esp], eax
call sym._raiseIndexError2
jmp 0x421673
mov eax, dword [ebp - 0x4c]
mov edx, dword [eax + 4]
mov eax, dword [ebp - 0x34]
movzx eax, byte [edx + eax + 4]
cmp al, 0x2e
sete al
mov byte [ebp - 0xe], al
movzx eax, byte [ebp - 0xe]
xor eax, 1
test al, al
jne 0x42146d
cmp dword [ebp - 0xc], 1
setg al
mov byte [ebp - 0xe], al
jmp 0x42146e
nop
movzx eax, byte [ebp - 0xe]
mov byte [ebp - 0xd], al
movzx eax, byte [ebp - 0xd]
xor eax, 1
test al, al
jne 0x421518
mov edx, 0
mov eax, dword [ebp - 0xc]
sub eax, 2
jno 0x421496
mov edx, 1
mov ecx, eax
lea eax, [ebp - 0x38]
mov dword [eax], ecx
mov eax, edx
and eax, 1
test al, al
je 0x4214b0
call sym._raiseOverflow
jmp 0x421673
mov eax, dword [ebp - 0x38]
test eax, eax
js 0x4214c3
mov eax, dword [ebp - 0x4c]
mov edx, dword [eax]
mov eax, dword [ebp - 0x38]
cmp edx, eax
jg 0x4214df
mov eax, dword [ebp - 0x4c]
mov eax, dword [eax]
lea edx, [eax - 1]
mov eax, dword [ebp - 0x38]
mov dword [esp + 4], edx
mov dword [esp], eax
call sym._raiseIndexError2
jmp 0x421673
mov eax, dword [ebp - 0x4c]
mov edx, dword [eax + 4]
mov eax, dword [ebp - 0x38]
movzx eax, byte [edx + eax + 4]
cmp al, 0x5c
je 0x421503
mov eax, dword [ebp - 0x4c]
mov edx, dword [eax + 4]
mov eax, dword [ebp - 0x38]
movzx eax, byte [edx + eax + 4]
cmp al, 0x2f
jne 0x42150a
mov eax, 1
jmp 0x42150f
mov eax, 0
mov byte [ebp - 0xd], al
and byte [ebp - 0xd], 1
jmp 0x421519
nop
movzx eax, byte [ebp - 0xd]
xor eax, 1
test al, al
jne 0x421558
mov edx, 0
mov eax, dword [ebp - 0xc]
sub eax, 1
jno 0x421536
mov edx, 1
mov ecx, eax
lea eax, [ebp - 0x3c]
mov dword [eax], ecx
mov eax, edx
and eax, 1
test al, al
je 0x421550
call sym._raiseOverflow
jmp 0x421673
mov eax, dword [ebp - 0x3c]
mov dword [ebp - 0xc], eax
jmp 0x421562
nop
mov dword [ebp - 0x20], 0x3a
jmp 0x421568
jmp 0x42130e
nop
mov dword [ebp - 0x20], 0x3b
movzx eax, byte [ebp - 0x50]
xor eax, 1
test al, al
jne 0x4215e8
mov dword [ebp - 0x20], 0x3d
cmp dword [ebp - 0xc], 0
jns 0x4215bc
mov eax, dword [ebp - 0xc]
cdq
mov dword [esp + 0x10], 0x7fffffff
mov dword [esp + 0x14], 0
mov dword [esp + 8], 0
mov dword [esp + 0xc], 0
mov dword [esp], eax
mov dword [esp + 4], edx
call sym._raiseRangeErrorI
jmp 0x421673
mov edx, dword [ebp - 0xc]
mov eax, dword [ebp - 0x4c]
mov ecx, eax
call sym._setLengthStrV2_8
mov dword [ebp - 0x20], 0x3f
mov dword [esp + 4], 0x5c
mov eax, dword [ebp - 0x4c]
mov dword [esp], eax
call sym._nimAddCharV1_6
jmp 0x421673
nop
mov dword [ebp - 0x20], 0x40
cmp dword [ebp - 0xc], 0
jle 0x421644
mov dword [ebp - 0x20], 0x42
cmp dword [ebp - 0xc], 0
jns 0x421635
mov eax, dword [ebp - 0xc]
cdq
mov dword [esp + 0x10], 0x7fffffff
mov dword [esp + 0x14], 0
mov dword [esp + 8], 0
mov dword [esp + 0xc], 0
mov dword [esp], eax
mov dword [esp + 4], edx
call sym._raiseRangeErrorI
jmp 0x421673
mov edx, dword [ebp - 0xc]
mov eax, dword [ebp - 0x4c]
mov ecx, eax
call sym._setLengthStrV2_8
jmp 0x421673
nop
mov dword [ebp - 0x20], 0x19
mov dword [ebp - 0x1c], 0x494dc8
mov ecx, dword [ebp - 0x4c]
mov eax, dword [0x494b88]
mov edx, dword [0x494b8c]
mov dword [esp], eax
mov dword [esp + 4], edx
call sym._eqsink___stdZassertions_u36_12
sub esp, 8
jmp 0x421673
nop
call sym._popFrame_19
nop
leave
ret